唤醒词助手

唤醒词是特殊的单词或短语,用于告诉语音助手即将要发出命令。设备随后从被动监听切换到主动监听。示例包括:嘿 Google、嘿 Siri 或 Alexa。Home Assistant 支持自己定义的唤醒词,例如嘿 Nabu。

如果您想了解更多关于此主题的信息,请查看 Home Assistant 对唤醒词的处理方式

启用唤醒词

本教程展示了如何在 Home Assistant 中启用唤醒词。它不描述如何使用唤醒词。

使用唤醒词,您需要一些额外的硬件。一个低成本的选择是 M5Stack ATOM Echo 开发套件。要进行设置,请参阅 为 Home Assistant 定制的 $13 语音助手

启用唤醒词包括两个步骤:

  1. 安装 openWakeWord 附加组件。
  2. 为特定的语音助手启用唤醒词。

先决条件

安装 openWakeWord 附加组件

  1. 转到 设置 > 附加组件 > openWakeWord 并选择 安装
  2. 启动 附加组件。
  3. 转到 设置 > 设备与服务
    • 发现 下,您现在应该看到 Wyoming 集成的 openWakeWord 组件。
    • 选择 配置提交
    • 结果:您已成功安装 openWakeWord 附加组件和 Wyoming 集成。

为您的语音助手启用唤醒词

  1. 转到 设置 > 语音助手
  2. 选择助手:
    • 要为现有助手启用唤醒词,请选择该助手并继续第 6 步。
    • 要创建新的助手:选择 添加助手
  3. 为您的助手命名,例如您将要使用的唤醒词。
  4. 选择您将用于与 Home Assistant 对话的语言。
    • 如果 文本转语音语音转文本 部分没有提供语言选择器,则意味着您没有设置 Assist 管道。
    • 设置 Home Assistant Cloud 或手动配置的 Assist 管道
  5. 文本转语音 下,选择您希望 Home Assistant 在与您交谈时使用的语言和声音。
  6. 要定义唤醒词引擎,在对话框的右上角,选择三个点 菜单并选择 添加流式唤醒词
    • 故障排除:如果您看不到三个点 菜单,请转到 设置 > 设备与服务 并确保 Wyoming 集成的 openWakeWord 组件已添加。
    • 结果:在页面底部,您现在看到一个新部分 流式唤醒词引擎
    • 选择 openwakeword,然后选择 ok nabu
    • 如果您创建了一个新的助手,请选择 创建
    • 如果您编辑了一个现有助手,请选择 更新
    • 结果:您现在有一个可以监听唤醒词的语音助手。
  7. 对于第一次运行,建议使用 ok nabu,仅以测试设置。
    • 一旦您将其全部设置好,就可以创建自己的唤醒词。

试试吧!

现在,有两种简单的选择可以开始使用唤醒词:

  • 按照 $13 语音助手的指南。此教程使用小型 ATOM Echo,通过 openWakeWord 检测唤醒词。
  • 按照 设置 ESP32-S3-BOX-3 语音助手的指南。此教程使用较大的 S3-BOX-3 设备,具有显示屏。它可以通过 openWakeWord 检测唤醒词。但它也可以使用 microWakeWord 进行设备上的唤醒词检测。

创建你自己的唤醒词

您现在可以创建自己的唤醒词以便与 Home Assistant 一起使用。以下程序将指导您训练模型。该模型使用我们本地神经文本到语音系统 Piper 生成的语音片段进行训练。

想了解更多关于这一切是如何工作的?请查看 David Scripka 的 openWakeWord 项目。

根据词语的不同,为您的唤醒词训练模型可能需要几次迭代和一些调整。此指南将逐步引导您完成该过程。

先决条件

要创建自己的唤醒词

  1. 想一个唤醒词。

    • 一个常用的单词或短语(3-4 音节),以避免意外触发 Assist。
    • 目前只支持英语的唤醒词。
  2. 打开 唤醒词训练环境

  3. 在第 1 节中,在 target_word 字段中输入您的唤醒词。 在目标字段中输入唤醒词

  4. target_word 旁边的代码部分,选择播放按钮。第一次可能需要多达 30 秒。

    • 如果播放按钮未出现,请确保光标放在 target_word 字段中。 选择播放按钮

    • 如果仍然没有显示,请在文档右上角确保显示 已连接

      • 如果未连接,请选择 连接到托管运行时连接到托管运行时
    • 结果:您的唤醒词的发音正在创建中。

      • 一旦完成,在该部分底部,您会看到一个音频文件。听一下。

      收听您的唤醒词示例

  5. 如果这个词听起来不正确:

    • 按照文档中的说明调整单词的拼写,然后再按一次播放。
    • 这个词应该与您发音的方式相符。
  6. 当您对结果感到满意时,在屏幕顶部的菜单中,选择 Runtime > Run all

    • 这将需要大约一个小时。可以做其他事情,但请确保保留浏览器选项卡打开。 运行时:运行所有
    • 结果:完成此过程后,您应该在下载文件夹中有两个文件:
      • .tflite.onnx 文件(仅使用 .tflite
  7. 恭喜!您刚刚应用机器学习创建了自己的唤醒词模型!

    • 下一步是将其添加到 Home Assistant。

将您的个人唤醒词添加到 Home Assistant

  1. 确保您已安装 Samba 附加组件
  2. 在计算机上,通过 Samba 访问您的 Home Assistant 服务器。
    • 打开 share 文件夹并创建一个新文件夹 openwakeword,因此您将拥有 /share/openwakeword
  3. 将您全新的唤醒词模型文件(.tflite)放入该文件夹中。
  4. 转到 设置 > 语音助手
    • 可以创建新的助手并选择 添加助手
    • 或者,编辑现有助手。
  5. 唤醒词 下,选择 openwakeword
  6. 在您的 ATOM Echo 设备上启用这个新助手。
    • 转到 设置 > 设备与服务 并选择 ESPHome 集成。

      • M5Stack ATOM Echo 下,选择 1 设备
    • 配置 部分,确保启用 使用唤醒词

    • 选择您带有唤醒词的助手。

      选择带有唤醒词的助手

  7. 测试您的新唤醒词。
    • 说出您的唤醒词,然后跟随一个命令,例如 “打开厨房的灯”。
    • 当 ATOM Echo 检测到唤醒词时,它开始闪烁蓝色。

故障排除

故障排除唤醒词识别

  1. 如果 ATOM Echo 在您说出唤醒词时没有开始闪烁蓝色,您可以尝试以下几项。
  2. 转到 设置 > 设备与服务 并选择 ESPHome 集成。
    • M5Stack ATOM Echo 下,选择 1 设备
    • 控件 下,确保启用 使用唤醒词
  3. 如果这不是问题,您可能需要调整唤醒词模型。
    • 返回 唤醒词训练环境
    • 在文档的第 3 节中,按照说明调整设置并创建新模型。

故障排除训练环境的性能问题

Colab 空间上的环境运行在 Google 提供的资源上。这些资源旨在供小规模、非商业性个人使用。无法保证资源始终可用。 如果许多人同时使用该环境,或者请求本身需要大量资源,则执行可能会非常缓慢,或者根本无法运行。

运行完成可能需要 30-60 分钟。这是预期行为。

如果执行非常缓慢,您可以尝试以下几项:

  1. 免费解决方案:该环境已适用于所有被训练以创建和测试此过程的唤醒词模型。很有可能它对您也有效。如果没有,请尝试在另一个时间训练您的模型。可能现在有很多人正在使用它。
  2. 您可以支付更多计算资源:在右上角,选择 RAM | 磁盘图标。
    • 选择链接 升级到 Colab Pro
    • 选择您的价格计划并按照屏幕上的说明进行操作。 连接到托管运行时