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支持的选项,执行前会打印完整命令。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务