
dustynv/wyoming-assist-microphone容器 镜像 运行 构建
Home Assistant 附加组件,使用 wyoming-satellite 在 NVIDIA Jetson 设备上通过 wyoming协议 实现远程语音卫星功能。感谢 @ms1design 贡献这些 Home Assistant 和 Wyoming 容器!
home-assistant-core 容器以及不同主机上的 Home Assistant 兼容wyoming-openwakeword 容器进行唤醒词检测wyoming-whisper 容器处理语音转文本(STT)wyoming-piper 容器处理文本转语音(TTS)要求 Home Assistant
2023.9或更高版本。
docker-compose 示例若要在启用 cuda 的 Jetson 设备上使用 docker compose 运行 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 assist-microphone: image: dustynv/wyoming-assist-microphone:latest-r36.2.0 restart: unless-stopped network_mode: host container_name: assist-microphone hostname: assist-microphone runtime: nvidia init: false ports: - "***:***/tcp" devices: - /dev/snd:/dev/snd - /dev/bus/usb volumes: - ha-assist-microphone:/share - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro environment: SATELLITE_AUDIO_DEVICE: "plughw:CARD=S330,DEV=0" SATELLITE_SND_VOLUME_MULTIPLIER: 0.3 WAKEWORD_NAME: "ok_nabu" ASSIST_PIPELINE_NAME: "Home Assistant" volumes: ha-config: ha-assist-microphone:
| 变量 | 类型 | 默认值 | 描述 |
|---|---|---|---|
SATELLITE_NAME | str | assist microphone | 卫星名称 |
SATELLITE_AUDIO_DEVICE | str | plughw:CARD=S330,DEV=0 | 选择的音频设备,详见下文 |
SATELLITE_PORT | str | *** | 卫星服务端口 |
SATELLITE_SOUND_ENABLED | bool | true | 启用或禁用连接的扬声器 |
SATELLITE_AWAKE_WAV | str | /usr/src/sounds/awake.wav | 检测到唤醒词时播放的WAV文件 |
SATELLITE_DONE_WAV | str | /usr/src/sounds/done.wav | 语音命令完成时播放的WAV文件 |
ASSIST_PIPELINE_NAME | str | Home Assistant | 要运行的Home Assistant语音助手管道名称 |
WAKEWORD_SERVICE_URI | str | tcp://127.0.0.1:*** | Wyoming唤醒词检测服务的URI |
WAKEWORD_NAME | str | ok_nabu | 要监听的唤醒词名称 |
SATELLITE_SND_VOLUME_MULTIPLIER | float | 1.0 | 扬声器音量乘数 |
SATELLITE_MIC_VOLUME_MULTIPLIER | float | 1.0 | 麦克风音量乘数 |
SATELLITE_MIC_AUTO_GAIN | int | 0 | 麦克风自动增益 |
SATELLITE_MIC_NOISE_SUPPRESSION | int | 0 | 麦克风噪声抑制(0-4) |
SATELLITE_DEBUG | bool | true | 记录DEBUG级别的日志 |
有关 wyoming-assist-microphone 的详细配置方法,请参考 官方文档。
选择正确的麦克风/扬声器设备对卫星功能至关重要。
列出可用麦克风:
basharecord -L
列出可用扬声器:
bashaplay -L
两个命令的输出应类似如下:
bashplughw:CARD=seeed2micvoicec,DEV=0 seeed-2mic-voicecard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0 Hardware device with all software conversions
建议选择以 plughw: 开头的设备,或在不确定时使用 default。推荐选择标注有“Hardware device with all software conversions”的麦克风和扬声器。将环境变量 SATELLITE_AUDIO_DEVICE 设置为:
bashplughw:CARD=seeed2micvoicec,DEV=0
wyoming-assist-microphone使用同一设备作为麦克风和扬声器。
ASSIST_PIPELINE_NAME 指定对话管道名称时,用户是否应在Home Assistant Assist聊天弹窗中看到语音命令和响应的转录文本。SATELLITE_AUDIO_DEVICE 拆分为 SATELLITE_MIC_DEVICE 和 SATELLITE_SND_DEVICE,以支持选择不同的音频硬件组合。有问题?您可以通过以下方式获取帮助:
/r/homeassistantjetson-containers bug,请在GitHub上提交issue[!NOTE] 本项目由 Jetson AI Lab研究组 创建。
wyoming-assist-microphone:latest | |
|---|---|
| 别名 | wyoming-assist-microphone |
| 要求 | L4T ['>=34.1.0'] |
| 依赖 | build-essential homeassistant-base python:3.11 |
| Dockerfile | Dockerfile |
| 镜像 | dustynv/wyoming-assist-microphone:latest-r35.4.1 (2024-04-30, 5.1GB)dustynv/wyoming-assist-microphone:latest-r36.2.0 (2024-04-30, 0.3GB) |
| 说明 | 使用wyoming协议的assist-microphone,用于Home Assistant。基于[***] |
要启动容器,可以使用 jetson-containers run 和 autotag,或手动构建 docker run 命令:
bash# 自动拉取或构建兼容的容器镜像 jetson-containers run $(autotag assist-microphone) # 或使用'docker run'(指定镜像和挂载等) sudo docker run --runtime nvidia -it --rm --network=host assist-microphone:35.2.1
jetson-containers run将参数转发给docker run,并添加一些默认值(如--runtime nvidia、挂载/data缓存、检测设备)
autotag查找与您的JetPack/L4T版本兼容的容器镜像——本地镜像、从仓库拉取的镜像或构建的镜像。
要将主机目录挂载到容器中,使用 -v 或 --volume 标志:
bashjetson-containers run -v /主机路径:/容器路径 $(autotag assist-microphone)
要启动容器运行命令(而非交互式shell):
bashjetson-containers run $(autotag assist-microphone) my_app --abc xyz
您可以传递任何 docker run 支持的选项,它会在执行前打印出完整命令。
如果如上所示使用 autotag,必要时会提示您构建容器。要手动构建,请先完成系统设置,然后运行:
bashjetson-containers build assist-microphone
上述依赖项将被构建到容器中,并在构建过程中进行测试。运行时添加 --help 可查看构建选项。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务