I just assembled a Satellite1 from futureproofhomes.com. I’m trying to redirect the response to a media player on my whole house speaker system. I’ve hit a wall. I thought it would be a no brainer, but I can’t figure it out. Has anyone been successful doing this?
It would be more accurate to say that the voice_assistant component for ESPHome is designed to play the answer file by itself. But the developers leave the option to use a link to the generated file for your own needs.
If the developers had left the voice pipeline events inside HA, it would have been more convenient and there would have been no need to make changes to the satellite configuration. But this decision was abandoned.
You can get the url value and pass it to the HA or play it on a mediaplayer. This is used in many third-party projects
on_tts_end (Optional, Automation): An automation to perform when the voice assistant has finished text-to-speech.A URL containing the audio response is available to automations as the variable x.
This is text from the esphome documentation, see the voice_assistant article.
If you google it, you’ll get some examples. Also look at the ReSpeacker-Lite config file, in this project values are passed as events.
Or you can use a ESP32-S3 Box and put some custom firmware on it which has an “External Speaker” option so you can route all audio and responses to any Media Player (even Amazon devices).
LINK:
You can also do something similar with the M5Atom stack little unit.