当我运行这个程序时,如果我使用耳机或外接麦克风,语音将被识别。 但是,如果我使用笔记本电脑麦克风(麦克风阵列(Realtek(R)Audio)),则无法识别语音。 这就像程序挂在audio=r.listen(source)
行上,如果我说了一些话,然后插入耳机,程序就会工作。 笔记本电脑里的麦克风工作得很好。
import speech_recognition as sr
import pyaudio
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening......")
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language='en-in')
print(f"USER: {query}\n")
except Exception:
print("Did not catch that")
为什么会发生这种事? 有人能帮帮我吗?
谢谢。
r.adjust_for_ambient_noise(source)
我使用了这个函数,它现在可以工作了。 这增加了识别音频的范围。
谢谢大家。
我会猜的。
可能它使用外部麦克风作为默认设备,你必须手动设置其他设备。
在文档中,您可以看到
Microphone(device_index = None)
和
A device index is an integer between 0 and pyaudio.get_device_count() - 1
你也可以看到
import speech_recognition as sr
for index, name in enumerate(sr.Microphone.list_microphone_names()):
print("Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))
顺便说一句:你也可以阅读疑难解答--也许它给出了更多的想法。