rhasspy / wyoming-satellite

Remote voice satellite using Wyoming protocol
MIT License
463 stars 68 forks source link

Everything is running but nothing happens when I say the wake word #164

Open pop-vapor opened 1 month ago

pop-vapor commented 1 month ago

I've set the satellite and accompanying containers up using docker compose, my compose.yaml is:

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:
    container_name: wyoming-microphone
    build: https://github.com/rhasspy/wyoming-snd-external.git
    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:
    container_name: wyoming-playback
    build: https://github.com/rhasspy/wyoming-snd-external.git
    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:
    container_name: wyoming-satellite
    build: https://github.com/rhasspy/wyoming-satellite.git
    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://localhost:10600"
      - "--snd-uri"
      - "tcp://localhost:10601"
      - "--debug"
      - "--wake-uri"
      - "tcp://localhost:10400"
      - "--wake-word-name"
      - "hey_jarvis"
      - "--awake-wav"
      - "sounds/awake.wav"
      - "--done-wav"
      - "sounds/done.wav"

I know my mic and speaker are working from their respective containers, because I can arecord and aplay while inside the mic and snd containers. However my issue is that no matter how many times, what way or cadence I say the wake word, nothing happens. The awake or done sounds don't play, and although I can add the satellite in home assistant the "assist in progress" sensor never changes state. What am I missing here?

pop-vapor commented 1 month ago

I was able to "fix" this issue by using https://github.com/sker65/wyoming-satellite with the following compose.yaml:

  wyoming-satellite:
    container_name: wyoming-satellite
    image: sker65/wyoming-satellite
    devices:
      - /dev/snd:/dev/snd
    volumes:
      - /opt/stacks/hass/wyoming-alsa-config/asound.conf:/etc/asound.conf
    ports:
      - "10700:10700"
    command:
      - "--name"
      - "test 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"
      - "--debug"
      - "--wake-uri"
      - "tcp://192.168.50.3:10400"
      - "--wake-word-name"
      - "hey_jarvis"