
dustynv/wyoming-openwakeword容器 镜像 运行 构建
Home Assistant 插件,通过 wyoming协议 使用 openWakeWord(huggingface演示)在 NVIDIA Jetson 设备上进行唤醒词检测。感谢 @ms1design 贡献了这些Home Assistant和Wyoming容器!
home-assistant-core 容器以及不同主机上的Home Assistant兼容OPENWAKEWORD_PRELOAD_MODEL传递模型名称以预加载自定义模型。例如,/share/openwakeword模型目录中包含jetson(jets_un)唤醒词模型*.tflite CPU 唤醒词模型*.onnx CUDA 唤醒词模型 [开发中]要求 Home Assistant
2023.9或更高版本。
docker-compose 示例如果要在 Jetson 设备上使用docker compose运行启用cuda的Home Assistant Core 语音助手管道,可参考完整示例 docker-compose.yaml。
yamlname: home-assistant-jetson version: "3.9" services: homeassistant: image: dustynv/homeassistant-core:latest-r36.2.0 restart: unless-stopped init: false privileged: true network_mode: host container_name: homeassistant hostname: homeassistant ports: - "8123:8123" volumes: - ha-config:/config - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro openwakeword: image: dustynv/wyoming-openwakeword:latest-r36.2.0 restart: unless-stopped runtime: nvidia network_mode: host container_name: openwakeword hostname: openwakeword init: false ports: - "***:***/tcp" volumes: - ha-openwakeword-custom-models:/share/openwakeword - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro environment: OPENWAKEWORD_CUSTOM_MODEL_DIR: /share/openwakeword OPENWAKEWORD_PRELOAD_MODEL: ok_nabu volumes: ha-config: ha-openwakeword-custom-models:
| 变量 | 类型 | 默认值 | 描述 |
|---|---|---|---|
OPENWAKEWORD_PORT | str | *** | 主机上使用的端口号 |
OPENWAKEWORD_THRESHOLD | float | 0.5 | 唤醒词模型阈值(0.0-1.0),值越高误激活越少 |
OPENWAKEWORD_TRIGGER_LEVEL | int | 1 | 注册检测前的激活次数,值越高误检测越少 |
OPENWAKEWORD_PRELOAD_MODEL | str | ok_nabu | 预加载的唤醒词模型名称或路径。模型名称应与自定义唤醒词模型训练时使用的名称一致。更改此值时,建议为wyoming-assist-microphone容器设置相同的WAKEWORD_NAME变量 |
OPENWAKEWORD_CUSTOM_MODEL_DIR | str | /share/openwakeword | 自定义唤醒词模型所在目录路径(末尾不要加斜杠/) |
OPENWAKEWORD_DEBUG | bool | true | 记录DEBUG级别的日志 |
有关wyoming-openwakeword的配置详情,请参考官方文档:
[!NOTE] 自定义模型目录(
/share/openwakeword)中包含一个已训练的示例jetson(jets_un)唤醒词模型。要使用它,需在相应容器中将WAKEWORD_NAME设置为jets_un。
Home Assistant社区已训练了多个唤醒词模型,详情可参考该GitHub仓库。这些模型专为CPU设计。
若要训练新的CPU(*.tflite)或cuda(*.onnx)唤醒词模型,可参考@dscripka的文档,或直接使用唤醒词训练环境。
gpu的onnxruntime容器从源码构建openWakeWord(目前openWakeWord仍使用tflite模型而非onnx)如有问题,可通过以下途径获取帮助:
/r/homeassistantjetson-containers漏洞,请在GitHub上提交issue[!NOTE] 本项目由Jetson AI Lab研究组创建。
wyoming-openwakeword:latest | |
|---|---|
| 别名 | wyoming-openwakeword |
| 要求 | L4T ['>=34.1.0'] |
| 依赖 | build-essential homeassistant-base python:3.11 |
| Dockerfile | Dockerfile |
| 镜像 | dustynv/wyoming-openwakeword:latest-r36.2.0 (2024-04-30, 0.3GB) |
| 说明 | 使用wyoming协议的openWakeWord,适用于Home Assistant。基于[***]和[***] |
启动容器可使用jetson-containers run和autotag,或手动编写docker run命令:
bash# 自动拉取或构建兼容的容器镜像 jetson-containers run $(autotag openwakeword) # 或使用'docker run'(需指定镜像、挂载等) sudo docker run --runtime nvidia -it --rm --network=host openwakeword:35.2.1
jetson-containers run会将参数转发给docker run,并添加一些默认配置(如--runtime nvidia、挂载/data缓存、检测设备)
autotag会查找与JetPack/L4T版本兼容的容器镜像——本地镜像、仓库拉取的镜像或构建的镜像均可
要将主机目录挂载到容器中,使用-v或--volume标志:
bashjetson-containers run -v /主机路径:/容器路径 $(autotag openwakeword)
要启动容器并运行命令(而非交互式shell):
bashjetson-containers run $(autotag openwakeword) my_app --abc xyz
可传递任何docker run支持的选项,执行前会打印完整命令。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务