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 可查看构建选项。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
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 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务