我正在尝试使用 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并且:将语音识别导入为 srsr.Microphone.list_microphone_names()输出: [ ]我哪里出错了?另外,为什么它显示“OSError”?,我看到了其他相关查询,但所有查询都将其作为 IOError。
2 回答

慕娘9325324
TA贡献1783条经验 获得超4个赞
首先(对于 Linux 用户),检查以下链接并使用给定的存储库更新您的 Pyaudio 和 Portaudio,因为 Anaconda 的 Pyaudio 和 Portaudio 库中存在错误。
现在,如果它有效,但终端卡在“Speak anything..”上,那么这意味着库检测到的噪音太多,您可以通过在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 的索引(可能或多或少,取决于关于你有多少输入)。
添加回答
举报
0/150
提交
取消