提问者:小点点

无法通过python speechRecognition模块中的麦克风识别语音


当我运行这个程序时,如果我使用耳机或外接麦克风,语音将被识别。 但是,如果我使用笔记本电脑麦克风(麦克风阵列(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")  

为什么会发生这种事? 有人能帮帮我吗?

谢谢。


共2个答案

匿名用户

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))

顺便说一句:你也可以阅读疑难解答--也许它给出了更多的想法。