问题描述
我最近在我创建的个人助理中实施了 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)
让我知道它是否有效:)