Skip to content

Pi3 Wyoming Satellite reacts to two wake words but never to custom word #41

@MrGlasspoole

Description

@MrGlasspoole

I’m trying to set a custom wake word (Hey Dallas).

I have wyoming-openwakeword and wyoming-satellite running on a Pi 3B+

Setting “–preload-model ‘hey_dallas’” in the openwakeword service and " --wake-word-name ‘hey_dallas’" in the satellite service does not work.

The Pi still reacts to “OK Nabu”.

So I tried setting “hey_jarvis” and now the Pi reacts to Nabu and Jarvis?

What I am missing here?

If I run the wake word directly on the satellite, do I have to “Add streaming wake word” in “Setting > Voice assistants > Home Assistant Cloud” or not?

~ $ nano /etc/systemd/system/wyoming-openwakeword.service
[Unit]
Description=Wyoming openWakeWord

[Service]
Type=simple
ExecStart=/home/haegarthehorrible/opt/wyoming-openwakeword/script/run
  --uri 'tcp://127.0.0.1:10400' \
  --preload-model 'hey_dallas'
WorkingDirectory=/home/haegarthehorrible/opt/wyoming-openwakeword
Restart=always
RestartSec=1

[Install]
WantedBy=default.target
~ $ nano /etc/systemd/system/wyoming-satellite.service
[Unit]
Description=Wyoming Satellite
Wants=network-online.target
After=network-online.target
Requires=wyoming-openwakeword.service
Requires=2mic_leds.service

[Service]
Type=simple
ExecStart=/home/haegarthehorrible/opt/wyoming-satellite/script/run \
  --debug \
  --name 'my satellite' \
  --uri 'tcp://0.0.0.0:10700' \
  --wake-word-name 'hey_dallas' \
  --mic-command 'arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw' \
  --snd-command 'aplay -D plughw:CARD=seeed2micvoicec,DEV=0 -r 22050 -c 1 -f S16_LE -t raw' \
  --event-uri 'tcp://127.0.0.1:10500'
WorkingDirectory=/home/haegarthehorrible/opt/wyoming-satellite
Restart=always
RestartSec=1

[Install]
WantedBy=default.target
~ $ nano /etc/systemd/system/2mic_leds.service
[Unit]
Description=2Mic LEDs

[Service]
Type=simple
ExecStart=/home/haegarthehorrible/opt/wyoming-satellite/examples/.venv/bin/python3 2mic_service.py --uri 'tcp://127.0.0.1:10500' --led-brightness 1
WorkingDirectory=/home/haegarthehorrible/opt/wyoming-satellite/examples
Restart=always
RestartSec=1

[Install]
WantedBy=default.target
~ $ sudo systemctl status wyoming-openwakeword
● wyoming-openwakeword.service - Wyoming openWakeWord
     Loaded: loaded (/etc/systemd/system/wyoming-openwakeword.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-03-02 11:33:16 CET; 4min 49s ago
   Main PID: 447 (python3)
      Tasks: 7 (limit: 779)
        CPU: 2.221s
     CGroup: /system.slice/wyoming-openwakeword.service
             ├─447 python3 /home/haegarthehorrible/opt/wyoming-openwakeword/script/run
             └─537 /home/haegarthehorrible/opt/wyoming-openwakeword/.venv/bin/python3 -m wyoming_openwakeword

Mar 02 11:33:20 Dallas run[537]: KeyError: '0 is not registered'
Mar 02 11:33:20 Dallas run[537]: During handling of the above exception, another exception occurred:
Mar 02 11:33:20 Dallas run[537]: Traceback (most recent call last):
Mar 02 11:33:20 Dallas run[537]:   File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
Mar 02 11:33:20 Dallas run[537]:     self._context.run(self._callback, *self._args)
Mar 02 11:33:20 Dallas run[537]:   File "/usr/lib/python3.9/asyncio/selector_events.py", line 263, in _add_reader
Mar 02 11:33:20 Dallas run[537]:     self._selector.register(fd, selectors.EVENT_READ,
Mar 02 11:33:20 Dallas run[537]:   File "/usr/lib/python3.9/selectors.py", line 360, in register
Mar 02 11:33:20 Dallas run[537]:     self._selector.register(key.fd, poller_events)
Mar 02 11:33:20 Dallas run[537]: PermissionError: [Errno 1] Operation not permitted
~ $ sudo systemctl status wyoming-satellite
● wyoming-satellite.service - Wyoming Satellite
     Loaded: loaded (/etc/systemd/system/wyoming-satellite.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-03-02 14:22:00 CET; 3min 8s ago
   Main PID: 703 (python3)
      Tasks: 4 (limit: 779)
        CPU: 7.439s
     CGroup: /system.slice/wyoming-satellite.service
             ├─703 python3 /home/haegarthehorrible/opt/wyoming-satellite/script/run --debug --name my satellite --uri tcp://0.0.0.0:10700 --wake-word-name hey_dallas --mic-command arecord >
             ├─707 /home/haegarthehorrible/opt/wyoming-satellite/.venv/bin/python3 -m wyoming_satellite --debug --name my satellite --uri tcp://0.0.0.0:10700 --wake-word-name hey_dallas -->
             └─709 arecord -D plughw:CARD=seeed2micvoicec,DEV=0 -r 16000 -c 1 -f S16_LE -t raw

Mar 02 14:22:02 Dallas run[707]: DEBUG:root:Connecting to event service: tcp://127.0.0.1:10500
Mar 02 14:22:02 Dallas run[707]: INFO:root:Connected to services
Mar 02 14:22:02 Dallas run[707]: DEBUG:root:Connected to mic service
Mar 02 14:22:02 Dallas run[709]: Recording raw data 'stdin' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Mar 02 14:22:13 Dallas run[707]: DEBUG:root:Server set: 31165172904
Mar 02 14:22:13 Dallas run[707]: INFO:root:Connected to server
Mar 02 14:22:13 Dallas run[707]: INFO:root:Streaming audio
Mar 02 14:22:13 Dallas run[707]: DEBUG:root:Event(type='run-pipeline', data={'start_stage': 'wake', 'end_stage': 'tts', 'restart_on_end': True, 'snd_format': {'rate': 22050, 'width': 2, 'c>
Mar 02 14:22:13 Dallas run[707]: DEBUG:root:Connected to event service
Mar 02 14:22:15 Dallas run[707]: DEBUG:root:Ping enabled
~ $ ls /home/haegarthehorrible/opt/wyoming-openwakeword/wyoming_openwakeword/models
alexa_v0.1.tflite  embedding_model.tflite  hey_dallas_v0.1.tflite  hey_jarvis_v0.1.tflite  hey_mycroft_v0.1.tflite  hey_rhasspy_v0.1.tflite  melspectrogram.tflite  ok_nabu_v0.1.tflite

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions