我想要一个快速离线语音识别器(例如 vosk 或 sphinx)作为 Google 语音识别的唤醒词,这样它就不会总是听到我们说的话。
想要唤醒词:
def takeCommand():
# mic input
r = sr.Recognizer()
with sr.Microphone() as source:
print("Hearing...")
# r.pause_threshold = 1
r.chunk_size = 2048
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
try:
print("Recognizing....")
query = r.recognize_google(audio, language='en-in')
print(f"You said: {query}\n")
except Exception as e:
print(e)
print("Say that again please...")
return "None"
return query
最佳答案
Vosk 对于快速唤醒词应该很有效。选择一个被其语言模型覆盖并且在正常对话中不经常出现的唤醒词/短语。然后使用 partial
回调返回低延迟匹配。
只需浏览 https://ccoreilly.github.io/vosk-browser/,您就可以快速了解其工作效果如何。并通过基于网络的演示尝试一些示例唤醒词。
如果您的状态管理中有单独的“唤醒”和“ sleep ”模式,您可能可以非常自由地为唤醒词添加同音异义词和足够接近的匹配。例如。如果您的唤醒词是“wake up”,您还可以接受“way up”等短语作为唤醒词。
您应该在大多数平台上获得亚秒级的匹配,尽管硬件差异可能会显着改变这一点。
关于python - 如何使用 Vosk 离线语音识别(或任何其他快速离线语音识别器)为虚拟助手设置唤醒词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69173800/