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

时间:2018-10-30 06:40:21

标签: python speech-recognition

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

2 个答案:

答案 0 :(得分:0)

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

现在,如果它可以工作,但是终端卡在“说什么..”上,则表明该库检测到太多的噪声,可以通过在{{1}之后添加以下行来过滤掉它们}。

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) 是Speech_recognition.Microphone()的实例。

此外,我建议您像上面的示例一样开始传递要使用的设备的索引(例如r),并且可以尝试使用范围为0到4的索引(可能或多或少,取决于您有多少输入)。

答案 1 :(得分:0)

使用以下命令。我在此之后解决了这个问题

  

conda安装nwani :: portaudio nwani :: pyaudio