[英]SpeechRecogniton module is too slow in python
我試圖為我的深度學習聊天機器人使用語音識別來獲取用戶的輸入。 其實我的語音識別功能代碼是這樣的:
def get_audio():
r = sr.Recognizer()
with sr.Microphone() as source:
r.pause_threshold = 1
r.adjust_for_ambient_noise(source, duration=1)
audio = r.listen(source)
said = ""
try:
print("Listening...")
said = r.recognize_google(audio)
print("You said: " + said)
except Exception as e:
print("Exception: " + str(e))
return said.lower()
好吧,沒有錯誤,這是最大的錯誤! 我的互聯網連接沒有問題,因為我可以同時流式傳輸高質量的視頻,這甚至不是視頻,它是一個字符串,那么可能是什么問題? 我必須等待近 15 分鍾才能收到短信。
嗯,我還嘗試了一個離線 API: recognize_sphinix()
方法。 您需要構建pocketsphinix 的二進制安裝文件(whl)。 哦,我忘了說,您還需要在您的機器中構建pyaudio才能使用speech_recognition。 我已經完成了所有這些工作,即使這個離線 API 也存在同樣的問題......早上來說, recognize.sphinix()
識別了我所說的 2-3 倍,但現在,它甚至沒有響應!
注意:我用任務管理器監控我的電腦,只運行語音識別功能,而 Python 只占用了 9MB 的內存和 0.3% 的 CPU 使用率。 所以計算能力有限是沒有問題的。
任何人都可以解決這個問題嗎? 如果你解決了這個頭痛問題,你會讓我開心的。 提前致謝!
持續時間參數現已棄用。 參考StackOverflow 問題。
而是使用phrase_time_limit
或timeout
。
這是使用phrase_time_limit
時間限制的代碼塊:
import speech_recognition as sr
def myCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
audio = r.listen(source, phrase_time_limit = 5)
try:
command = r.recognize_google(audio).lower()
print("you said: " + command)
except sr.UnknownValueError:
print("Sorry, Cant understand, Please say again")
command = myCommand()
return command
這工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.