我正在嘗試使用 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
提交
取消