Open joshmsamuels opened 4 months ago
My issue looked similar to #113 so I checked my HA logs and found many instances of this one error. It sounds like it could be related but I am not sure if it's the cause of my issue
Log details (ERROR)
Logger: homeassistant
Source: components/assist_pipeline/pipeline.py:1447
First occurred: 9:28:49 AM (16 occurrences)
Last logged: 1:15:49 PM
Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/__init__.py", line 123, in async_pipeline_from_audio_stream
await pipeline_input.validate()
File "/usr/src/homeassistant/homeassistant/components/assist_pipeline/pipeline.py", line 1447, in validate
raise PipelineRunValidationError(
homeassistant.components.assist_pipeline.pipeline.PipelineRunValidationError: the pipeline does not support speech-to-text
I modified my setup a little bit, following this "wyoming-enhancements" tutorial, which lets me use my Wyoming satellite to also play music. I am still seeing the same core issue, however, for completeness will paste the new logs
enhanced-wyoming-satellite.service
-- Journal begins at Tue 2024-03-12 01:13:58 GMT. --
Jul 01 03:21:13 raspberrypi run[2973]: INFO:root:Ready
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Detected IP: 192.168.2.17
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Zeroconf discovery enabled (name=b827eb6281eb, host=None)
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Connecting to mic service: ['parecord', '--property=media.role=phone', '--rate=16000', '--channels=1', '--format=s16le', '--raw', '--latency-msec', '10']
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Connecting to snd service: ['paplay', '--property=media.role=announce', '--rate=44100', '--channels=1', '--format=s16le', '--raw', '--latency-msec', '10']
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Connecting to wake service: tcp://127.0.0.1:10400
Jul 01 03:21:14 raspberrypi run[2973]: INFO:root:Connected to services
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Using webrtc audio enhancements
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Connected to mic service
Jul 01 03:21:14 raspberrypi run[2973]: DEBUG:root:Connected to wake service
Jul 01 03:21:21 raspberrypi run[2973]: DEBUG:root:Server set: 2396338320539
Jul 01 03:21:21 raspberrypi run[2973]: INFO:root:Connected to server
Jul 01 03:21:21 raspberrypi run[2973]: INFO:root:Waiting for wake word
Jul 01 03:21:23 raspberrypi run[2973]: DEBUG:root:Ping enabled
Jul 01 03:22:20 raspberrypi run[2973]: DEBUG:root:Detection(name='ok_nabu_v0.1', timestamp=2455442727772, speaker=None)
Jul 01 03:22:20 raspberrypi run[2973]: DEBUG:root:Streaming audio
Jul 01 03:22:20 raspberrypi run[2973]: DEBUG:root:Event(type='run-pipeline', data={'start_stage': 'asr', 'end_stage': 'tts', 'restart_on_end': False, 'snd_format': {'rate': 44100, 'width': 2, 'channels': 1}}, payload=None)
Jul 01 03:22:20 raspberrypi run[2973]: DEBUG:root:Running ['/home/pi/wyoming-enhancements/snapcast/scripts/awake.sh']
Jul 01 03:22:20 raspberrypi run[2983]: Mon 1 Jul 03:22:20 BST 2024 [awake.sh] ...Starting awake.sh script
Jul 01 03:22:20 raspberrypi run[2983]: Mon 1 Jul 03:22:20 BST 2024 [awake.sh] ...Starting silence
Jul 01 03:22:20 raspberrypi run[2973]: DEBUG:root:Muting microphone for 0.8995918367346939 second(s)
Jul 01 03:22:20 raspberrypi run[2973]: DEBUG:root:Connected to snd service
Jul 01 03:22:21 raspberrypi run[2973]: DEBUG:root:Unmuted microphone
^C
pi@raspberrypi:~ $ date # Added date here to see how long I let it sit at the `Unmuted microphone` log line
Mon 1 Jul 03:27:07 BST 2024
I also realized I forgot to share my service config, so here is the enhanced-wyoming-satellite.service
file
[Unit]
Description=Wyoming Satellite
Wants=network-online.target
After=network-online.target
Requires=wyoming-openwakeword.service
Requires=pulseaudio.service
[Service]
Type=simple
ExecStart=/home/pi/wyoming-satellite/script/run \
--name 'my Satellite' \
--uri 'tcp://0.0.0.0:10700' \
--mic-command 'parecord --property=media.role=phone --rate=16000 --channels=1 --format=s16le --raw --latency-msec 10' --snd-command 'paplay --property=media.role=announce --rate=44100 --channels=1 --format=s16le --raw --latency-msec 10' \
--snd-volume-multiplier 0.1 \
--mic-auto-gain 7 \
--mic-noise-suppression 3 \
--wake-uri 'tcp://127.0.0.1:10400' \
--wake-word-name 'ok_nabu' \
--awake-wav sounds/awake.wav \
--done-wav sounds/done.wav \
--snd-command-rate 44100 \
--debug --detection-command '/home/pi/wyoming-enhancements/snapcast/scripts/awake.sh' --tts-stop-command '/home/pi/wyoming-enhancements/snapcast/scripts/done.sh'
WorkingDirectory=/home/pi/wyoming-satellite
Restart=always
RestartSec=1
[Install]
WantedBy=default.target
I am facing a similar issue, but I don't have the sounds configured yet (I know it is happening by watching the logs). I will try it tomorrow with the sounds. In the meantime, it seems like we are not alone if you look at this thread: https://github.com/rhasspy/wyoming-satellite/issues/154
It must be related to OpenWakeWord. When I switch to Porcupine everything is working as intended.
are you sure? Just tried it also with porcupine and it's also only triggered once and never returned...
I currently have two satellites on a pi3 using different porcupine wakewords and it works quite okay. Feel free to check https://github.com/kirel/pi/tree/master/roles/mic-satellite for other differences you can spot. 🤔
i've got it running with both systems: here was a good hint: missing configurations for whole "assist" pipeline in home assistant. After adding the conversation agent, as well as speech-to-text, it worked.
Are you running VAD in this scenario? In the config without VAD, WakeStreamingSatellite event_from_mic() was getting stuck for me.
Hey, I tried setting up wyoming satellite on a Raspberry Pi 3 with an Anker Powerconf as the Mic & Speaker.
I followed the raspberry pi tutorial, so I made sure the mic and speaker are working with the raspberry pi.
I finished the installation successfully, however, when I go to use my wake word "Ok Nabu" I hear the awake sound play once ... and then nothing. I don't hear the finish sound and when I say "Ok Nabu" again I don't hear the awake sound unless I restart
wyoming-satellite
, in which case I hear it one more time.I ran wyoming-satellite and wyoming-openwakeword in debug mode which leads me to believe that wyoming-satellite hears my wake word but never stops listening to process the command.
Here are the logs for: wyoming-satellite
wyoming-openwakeword (you can see me disconnecting and reconnecting wyoming satellite a few times)