wyoming-satellite: Local Wakeword Detection not working

I’m running a Raspberry Pi 4 with openwakeword.

As soon as i add the options

      - "tcp://openwakeword:10400"
      - "--wake-word"
      - "ok_nabu"

to my docker container config the wakeword detection stops working.

If i remove it and use the remote one on the server, all is fine.

here’s my docker config for these:

services:
  satellite:
    container_name: satellite
    depends_on:
      - openwakeword
    build:
      context: ./satellite/wyoming-satellite
      dockerfile: Dockerfile
    ports:
      - "10700:10700"
    devices:
      - /dev/snd:/dev/snd
    environment:
      - "PULSE_SERVER=tcp:10.0.1.243:4713"
    restart: unless-stopped
    command:
      - "--name"
      - "my satellite"
      - "--uri"
      - "tcp://0.0.0.0:10700"
      - "--mic-command"
      - "arecord -D plughw:CARD=OSM09,DEV=0 -r 16000 -c 1 -f S16_LE -t raw"
      - "--snd-command"
      - "paplay --device=alsa_output.platform-soc_sound.stereo-fallback --format=s16le --rate=22050 --channels=1 --raw"
      - "--awake-wav"
      - "./sounds/awake.wav"
      - "--detection-command"
      - "./get_loopback.sh module-loopback.c 0%"
      - "--tts-stop-command"
      - "./get_loopback.sh module-loopback.c 100%"
      - "--wake-uri"
      - "tcp://openwakeword:10400"
      - "--wake-word"
      - "ok_nabu"
      - "--debug"
      
openwakeword:
    container_name: openwakeword
    image: rhasspy/wyoming-openwakeword
    volumes:
      - ./wakeword/config:/data
      - ./wakeword/config:/custom
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      - TZ=America/Los_Angeles
    command: --preload-model "ok_nabu" --debug
    restart: unless-stopped
    expose:
      - 10400/tcp

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Comments: 16 (3 by maintainers)

Most upvoted comments

I’ve discovered that the newest version of the wyoming-openwakeword library is needed for this feature. I’m not sure what exactly the change is - but all is well after updating.

@synesthesiam i’ve submitted the MR above in wyoming addons that resolves this for me.

thanks for the help everyone!

Did some more testing, and local openwakeword works for me. But it is imperative that I specify the wake-word on the satellite with --wake-word-name for it to work properly. Otherwise, it will still detect the wake-word, but will repeatedly trigger the awake-wav sound and listen for a command until I kill the satellite connection to openwakeword. using that flag, it works without issue.

However, I guess we could say it is almost ‘continuous conversation’ in that the satellite immediately listens for commands again without a wake-word? 😄

Unfortunately, as soon as i specify --wake-word-name i get no detection. Very strange. Can you post your whole command?

Remove just this from the command and see if it works --wake-word-name 'ok_nabu …, i had the same problem ,after removing the wake word command it will use the wake word from the wake uri , for now its a work arround until its fixed !!