在Python中,SpeechRecogniton模块速度太慢

2022-04-02 00:00:00 python speech-recognition

问题描述

我试图对我的Deep Learning聊天机器人使用语音识别,以便从用户那里获得输入。实际上我的语音识别功能代码是这样的:

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)。 哦,我忘了提了,你还需要在你的机器里建立一个视频音频来使用语音识别。我已经做了所有的事情,即使这个离线API也有同样的问题……早上recognize.sphinix()认出了我说的2-3倍,但现在,它甚至没有反应!

注意:我使用任务管理器监视我的PC,其中只有语音识别功能在运行,而Python只占用9MB的RAM和0.3%的CPU使用率。因此,计算能力有限是没有问题的。

有人能解决这个问题吗?如果你解决了这个令人头痛的问题,我会很高兴的。提前感谢!


解决方案

参数现在已弃用。引用StackOverflow question。
请改用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

这完全可以正常工作。

相关文章