6

我正在尝试使用 python 中的 SpeechRecognition 包进行语音识别,并在尝试使用麦克风时遇到问题。

我测试了耳机的麦克风,它工作正常并且被我的计算机检测到,但我的脚本抛出错误,好像没有连接麦克风。当我在安装 pyAudio 后运行以下脚本时

$python -m speech_recognition

我收到以下错误:

  Traceback (most recent call last):

   File "/home/harshita/anaconda3/lib/python3.6/runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)

    File "/home/harshita/anaconda3/lib/python3.6/runpy.py", line 85, in _run_code
        exec(code, run_globals)

    File "/home/harshita/anaconda3/lib/python3.6/site-packages/speech_recognition/__main__.py", line 4, in <module>
        m = sr.Microphone()

    File "/home/harshita/anaconda3/lib/python3.6/site-packages/speech_recognition/__init__.py", line 86, in __init__
        device_info = audio.get_device_info_by_index(device_index) if device_index is not None else audio.get_default_input_device_info()

    File "/home/harshita/anaconda3/lib/python3.6/site-packages/pyaudio.py", line 949, in get_default_input_device_info
        device_index = pa.get_default_input_device()

    OSError: No Default Input Device Available

并且:

将语音识别导入为 sr

sr.Microphone.list_microphone_names()

输出: [ ]

我哪里错了?

另外为什么它显示'OSError'?,我看到了其他相关的查询,但他们都把它作为IOError。

4

2 回答 2

1

首先(对于 Linux 用户),检查以下链接并使用给定的存储库更新您的 Pyaudio 和 Portaudio,因为 Anaconda 的 Pyaudio 和 Portaudio 库中有一个错误。

现在如果它工作了,但终端卡在“Speak any..”,那么这意味着库检测到太多噪音,您可以通过在with语句后添加以下行来过滤掉它们。

r.adjust_for_ambient_noise(source)

例如:

with sr.Microphone(device_index=2) as source:
    r.adjust_for_ambient_noise(source)
    print("Speak Anything :")
    audio = r.listen(source)

请注意r这里是 Speech_recognition.Microphone() 的实例。

另外,我建议您开始传递要使用的设备的索引,就像我在上面的示例中所做的那样(像这样device_index=2),您可以尝试使用范围为 0 到 4 的索引(可能或多或少,取决于关于你有多少输入)。

于 2019-05-13T00:22:13.827 回答
1

使用以下命令。我解决了这个问题

康达安装 nwani::portaudio nwani::pyaudio

于 2019-10-29T12:37:56.437 回答