Python 如何使用SpeechRecognition搜索特定关键字

Python 如何使用SpeechRecognition搜索特定关键字,python,python-3.x,speech-recognition,speech-to-text,Python,Python 3.x,Speech Recognition,Speech To Text,我最近在我正在创建的个人助理中实现了SpeechRecognition,但我面临一个问题。每当我通过扬声器播放音乐时,它都会继续听我说话,尽管它听到了我的声音,但它不会停止,因为通过扬声器的声音使它保持激活状态 我想这可以用类似于Amazon Alexa、Google Home、Siri等的方式来修复,当说出某个关键字时,可以将音频静音。据我所知,这个问题的关键是,言语识别不能做到这一点 def takeCommand(): r=sr.Recognizer() with sr.M

我最近在我正在创建的个人助理中实现了SpeechRecognition,但我面临一个问题。每当我通过扬声器播放音乐时,它都会继续听我说话,尽管它听到了我的声音,但它不会停止,因为通过扬声器的声音使它保持激活状态

我想这可以用类似于Amazon Alexa、Google Home、Siri等的方式来修复,当说出某个关键字时,可以将音频静音。据我所知,这个问题的关键是,言语识别不能做到这一点

def takeCommand():
    r=sr.Recognizer()
    with sr.Microphone() as source:
        print("Listening...")
        audio=r.listen(source)
        try:
            statement=r.recognize_google(audio,language='en-in')
            print(f"user said: {statement}\n")

        except Exception as e:
            return "None"
        return statement

给定此代码^,我只能在完成子句后处理单词。我可能会尝试实现第二个脚本来搜索这个关键字,但我的python技能相当初级,我想看看是否能够简洁地完成所有工作。如果你知道我该怎么做,请告诉我

您实际上可以尝试以下操作:

首先…设置你的私人助理听的持续时间…这样做..只需替换

audio=r.listen(source)

您可以更改持续时间值

第二…在某种程度上忽略背景噪音…而且…只需添加以下行

r.adjust_for_ambient_noise(source)
以前

audio=r.record(source, duration=4)
让我知道它是否有效:)

audio=r.record(source, duration=4)