I’m running the dockerized version of home assistant on a raspberry pi 4b 8gb with containers for Piper, Whisper, Openwakeword, Wyoming-Satellite, Wyoming-external-mic, and wyoming-external-snd
My compose.yaml looks like this:
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /opt/stacks/hass/hass-config:/config
- /etc/localtime:/etc/localtime:ro
devices:
- /dev/snd
restart: unless-stopped
privileged: true
network_mode: host
nodered:
container_name: nodered
image: nodered/node-red
ports:
- 1880:1880
volumes:
- /opt/stacks/hass/nodered:/data
depends_on:
- homeassistant
- mosquitto
environment:
- TZ=America/New_York
restart: unless-stopped
mosquitto:
image: eclipse-mosquitto
container_name: mosquitto
restart: unless-stopped
ports:
- 1883:1883
- 9001:9001
volumes:
- "/opt/stacks/hass/mosquitto/config:/mosquitto/config"
- "/opt/stacks/hass/mosquitto/data:/mosquitto/data"
- "/opt/stacks/hass/mosquitto/log:/mosquitto/log"
environment:
- TZ=America/New_York
user: "1000:1000"
hass-configurator:
image: "causticlab/hass-configurator-docker:latest"
restart: always
ports:
- "3218:3218/tcp"
volumes:
- "/opt/stacks/hass/configurator-config:/config"
- "/opt/stacks/hass/hass-config:/hass-config"
whisper:
container_name: whisper
image: rhasspy/wyoming-whisper
command: --model tiny-int8 --language en
volumes:
- /opt/stacks/hass/whisper:/data
environment:
- TZ=America\New_York
restart: unless-stopped
ports:
- 10300:10300
piper:
container_name: piper
image: rhasspy/wyoming-piper
command: --voice en_US-lessac-medium
volumes:
- /opt/stacks/hass/piper:/data
environment:
- TZ=America\New_York
restart: unless-stopped
ports:
- 10200:10200
openwakeword:
container_name: openwakeword
image: rhasspy/wyoming-openwakeword
volumes:
- /opt/stacks/hass/openwakeword/custom:/custom
- /opt/stacks/hass/openwakeword/config:/config
- /opt/stacks/hass/openwakeword/data:/data
environment:
TZ: "America/New_York"
depends_on:
- homeassistant
ports:
- 10400:10400
- 10400:10400/udp
command: --preload-model 'hey_jarvis' --custom-model-dir /custom
restart: unless-stopped
wyoming-microphone:
build: url-removed-automod-wouldn't-let-me-post
ports:
- "10600:10600"
devices:
- /dev/snd:/dev/snd
volumes:
- /opt/stacks/hass/wyoming-alsa-config/asound.conf:/etc/asound.conf
group_add:
- audio
command:
- "--device"
- "sysdefault"
- --debug
wyoming-playback:
build: url-removed-automod-wouldn't-let-me-post
ports:
- "10601:10601"
devices:
- /dev/snd:/dev/snd
volumes:
- /opt/stacks/hass/wyoming-alsa-config/asound.conf:/etc/asound.conf
group_add:
- audio
command:
- "--device"
- "sysdefault"
- "--debug"
wyoming-satellite:
build: url-removed-automod-wouldn't-let-me-post
ports:
- "10700:10700"
command:
- "--name"
- "my satellite"
- "--uri"
- "tcp://0.0.0.0:10700"
- "--mic-command"
- "arecord -r 16000 -c 1 -f S16_LE -t raw"
- "--snd-command"
- "aplay -r 22050 -c 1 -f S16_LE -t raw"
- "--mic-uri"
- "tcp://192.168.50.3:10600"
- "--snd-uri"
- "tcp://192.168.50.3:10601"
- "--debug"
- "--wake-uri"
- "tcp://192.168.50.3:10400"
- "--wake-word-name"
- "hey_jarvis"
- "--awake-wav"
- "sounds/awake.wav"
- "--done-wav"
- "sounds/done.wav"
The assistant I created:
This assistant works fine from the web console. I can use chat, sst works with the little microphone button to the right of the chat box, and tts works as the assistant replies to me.
The issue is with the wyoming satellite. From the playback container I can speaker-test or aplay and I hear it from the USB speakers plugged into the pi. From the mic container, I can arecord output.wav, then playback the output.wav and I heard it.
However with everything running as shown above, if I say my wake word nothing happens.
I know I’m missing a piece of the puzzle I just can’t figure out what – if anyone could help I would be very appreciative.