簡體   English   中英

python中的SpeechRecogniton模塊太慢

[英]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_limittimeout

這是使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM