-
-
Notifications
You must be signed in to change notification settings - Fork 29.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wyoming ignores second assistant's wake word. #101942
Comments
Hey there @balloob, @synesthesiam, mind taking a look at this issue as it has been labeled with an integration ( Code owner commandsCode owners of
(message by CodeOwnersMention) wyoming documentation |
Ok, after some digging, I can refine the behaviour. So it seems multiple assistants are not supported in wyoming, and they can be supported in OpenWakeWord via this work-around of favourite-switching I will also post this to home-assistant/addons#3259 as I think it clarifies some behaviour. |
homeassistant-satellite only runs one pipeline at the moment (you can change it with |
That may well be true, but I don't think it's the (only) 'issue' here, as as the error demonstrates, the second wake work does reach Wyoming, but is ignored by it. |
It’s ignored because it doesn’t match the pipeline it’s pointing to |
Ok, but I don't see how home assistant satellite could or should knows which pipeline(s) it is supporting - it's just sending audio data back and forth - surely it could only be told by wyoming. Why can't home assistant satellite and Openwakeword be pipeline agnostic and just let Wyoming decide which wake word corresponds to which pipeline? (Unless there's a desire for different devices to have different pipelines with the same wake-word - in which case Wyoming could still make this decision based on source device meta-data) If what you are saying is that decisions have already been made that supported pipeline(s) should be specified in homeassistant satellite or the wake-word engine and that Wyoming would work correctly if they supported multiple pipelines then this isn't a Wyoming issue and I'll close it. If a decision hasn't been made then it seems, |
Possibly fixed inhttps://github.com/home-assistant/addons/pull/3260, untested |
I’m just pointing out that your question was answered pretty clearly: it’s not supported yet. I’d guess this is more on the listener side, as (if I understand correctly,) the audio needs to come in and be forked to multiple pipelines. to be honest Im a bit confused as well: if the endpoint is just streaming audio, then how is the second word detected at all? Ill have to dig in to things later today. I got something similar working with Porcupine streaming to a server and handing off to HA, then found Openwakeword was released so Im starting over. Not sure if I should just write a streamer esp firmware and corresponding listener that sends to multiple pipelines, or if I should wait for this to be implemented. |
In case it helps, here's some info I was able to track down using some help from ChatGPT this morning: Component location:https://github.com/esphome/esphome/tree/dev/esphome/components/voice_assistant How the ESP Device Knows to Stream to the Home Assistant URL:The ESP device uses a UDP socket to send audio data. The destination address and port are set when the Home Assistant server sends a "start streaming" message to the ESP device. How the ESP Device Knows Which Pipeline It's Streaming To:The ESP device doesn't seem to be aware of which pipeline it's streaming to. It simply starts or stops streaming based on commands from the Home Assistant server. Other Relevant Information:The code uses different states to manage the voice assistant's behavior, such as IDLE, START_MICROPHONE, STREAMING_MICROPHONE, etc. Thoughts:So far it does sound like this needs to be sorted out on the listening end. Not sure if that'd be done in wyoming, ha core, or somewhere else. What I might start with is running vanilla OpenWakeWord on another virtual machine, and using it to kick Whisper off. I've got most of the code working to do that already from my Picovoice/Porcupine implementation. That'll get me up and running until
BTW I love your profile description HarvsG |
Started a feature request: |
Closing issue as this is a feature request which can be tracked here: |
The problem
I have two voice assistants - a completely HA/NabuCasa assistant that uses 'hey rhasspy' and a ChatGPT/NabuCasas voice assistant that is 'hey jarvis'.
My hope is to ask rhasspy to control the house and Jarvis when I want facts and information.
I run a home-assistant satellite on raspberry pi 3.
Whichever of the two is favourited works well. However if I make a 'hey jarvis' command whilst 'hey rhasspy' is favourited 'jarvis' ignores me. And vice versa if I switch the favourites.
What version of Home Assistant Core has the issue?
2023.10.2
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Wyoming
Link to integration documentation on our website
https://www.home-assistant.io/integrations/wyoming
Diagnostics information
No diagnostics information
![image](https://private-user-images.githubusercontent.com/11440490/274930188-fe5aafc0-1549-4f47-b13d-2cae4eb996a9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwMzMxMDUsIm5iZiI6MTcyMjAzMjgwNSwicGF0aCI6Ii8xMTQ0MDQ5MC8yNzQ5MzAxODgtZmU1YWFmYzAtMTU0OS00ZjQ3LWIxM2QtMmNhZTRlYjk5NmE5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI2VDIyMjY0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA3YTdjZDYyYTNhOGExYjQ1ZDI2Zjk4MTI5ZDU0ZTQzYzk5ZjcwZTk4MDk1NWU2MGI4MDczNTU5MDJlZDA5YzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.YokYP0BbDycF57TC8d-gEaffGQcmUuOn6B85Tz5qL5A)
No additional log output when I enable debugging
Example YAML snippet
No YAML
Anything in the logs that might be useful for us?
Additional information
I think the wyoming may be the route cause of these issues I believed to be to do with OpenWakeWord and home-assistant satellite.
home-assistant/addons#3259 see in this issue that the wake word is detected by OpenWakeWord, however the trigger information in the log is duplicated several times.
synesthesiam/homeassistant-satellite#13
The text was updated successfully, but these errors were encountered: