如何使用 SpeechRecognition 搜索某个关键字

问题描述

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

我想这可以通过在说出某个关键字时将音频静音,以类似于 Amazon Alexa、Google Home、Siri 等的方式解决。问题在于,据我所知,SpeechRecognition 无法做到这一点。

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)

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

您可以更改持续时间值。

第二...在某种程度上忽略背景噪音...为此...只需添加以下行

r.adjust_for_ambient_noise(source)

之前

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

让我知道它是否有效:)