python - 如何使用 Vosk 离线语音识别(或任何其他快速离线语音识别器)为虚拟助手设置唤醒词

标签 python artificial-intelligence speech-recognition vosk

我想要一个快速离线语音识别器(例如 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/

相关文章:

c++ - Kinect + SpCreateDefaultObjectFromCategoryId = SPERR_NOT_FOUND

machine-learning - 增加训练数据并不能减少 CNN 的过度拟合

php - 如何在 Windows 8 上安装 php 的 python 扩展?

python - 使用 MySQL Connector 和 Python 3 在 Django 中运行 inspectdb 时出错

python - 同时过滤两个列表

c# - 如何让敌人在 XNA 中全屏跟随玩家?

python - 调用 process.extract 时出现 TypeError : ('expected string or bytes-like object' , 'occurred at index 0' )

artificial-intelligence - 如何应用梳子法?

machine-learning - Q混淆学习教程

android - 安卓语音识别