OSError:没有可用的默认输入设备

我正在尝试使用 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。


郎朗坤
浏览 681回答 2
2回答

慕娘9325324

首先(对于 Linux 用户),检查以下链接并使用给定的存储库更新您的 Pyaudio 和 Portaudio,因为 Anaconda 的 Pyaudio 和 Portaudio 库中存在错误。现在,如果它有效,但终端卡在“Speak anything..”上,那么这意味着库检测到的噪音太多,您可以通过在with语句后添加以下行来过滤掉它们。r.adjust_for_ambient_noise(source)例如:with sr.Microphone(device_index=2) as source:&nbsp; &nbsp; r.adjust_for_ambient_noise(source)&nbsp; &nbsp; print("Speak Anything :")&nbsp; &nbsp; audio = r.listen(source)请注意r这里是speech_recognition.Microphone() 的实例。此外,我建议您开始传递要使用的设备的索引,就像我在上面的示例中所做的那样(像这样device_index=2),并且您可以尝试使用范围为 0 到 4 的索引(可能或多或少,取决于关于你有多少输入)。

qq_笑_17

使用以下命令。我解决了这个问题conda 安装 nwani::portaudio nwani::pyaudio
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python