Hi folks,
Where can I find the documentation about streaming TTS that will be released on HA 2025.7? I have the beta version running, but I don’t know what I need to enable to streaming TTS between Piper, Wyoming and HA.
Thanks!
Hi folks,
Where can I find the documentation about streaming TTS that will be released on HA 2025.7? I have the beta version running, but I don’t know what I need to enable to streaming TTS between Piper, Wyoming and HA.
Thanks!
Hmmm… Interesting… I’m running Piper 1.6.0, so do I need to wait to Piper 1.6.1? I thought the feature was already enabled… And you mean “key”, you mean that toggle in the configuration of the add-on, right?
Besides that, everything is done, I just not noticed any significant changes like I saw using the streaming TTS proxy.
I forgot to clarify that you need to install the latest ha beta or wait for the release in two days.
I’m running 2025.7.0b4.
Maybe I’m just doing the wrong set of tests, I don’t know.
The diagram shows the expected behavior of the system. Try making a request in the web interface window first . There’s nothing new here compared to the previous version of HA, you’re just checking if Piper is running in streaming mode.
If everything works, repeat on the satellite. With new updates, it works in an identical way…
I will do that. I just received Piper 1.6.2 update.
Sorry, could you be more specific about how to do that? That would be typing the question or using the microphone on the PC?
You must have configured access to the server via https, after which voice input will be available in the browser on your PC, tablet, or phone.
It should also work through the companion app without https, but on the current pre-release version I have bugs with this.
I think I got it. I used my Nabu Casa URL since I don’t have SSL from my local network.
I could click in the right superior corner to activate Assist and click in the microphone and then ask a simple question.
How would I know it’s in streaming mode? I don’t know for sure if it’s in streaming mode since I’m just doing simple, local-processing questions, like “what time is it?”, and “turn on/off air conditioner”.
Streaming is primarily implemented for interaction with LLM (especially with local ones that do not have high token generation speeds). Ask the LLM agent to tell you something long and you will see that the voice response begins during the token creation process (see the diagram above).
Streaming is not enabled for short phrases (less than 60 characters).
Is streaming TTS expected to work via companion apps configured as android voice agents? I can see TTS streaming working on long responses on the browser via Voice but not when using my android devices (here I see the first response once the tokens are done generating). I use SSL for all the connections. Using OLLAMA as the LLM endpoint with Piper from Hassio addons (streaming enabled)
2025.5.3
- does not support streaming
2025.6.6 beta
- It doesn’t work for me at all, it freezes at the first voice request.
I would also be interested in this. Especially how to verify the streaming on the client side.
I can see the TTS Server is responding properly to the new SynthesizeChunk
, etc. events.
but on the s3-box3 I can only see one flac file.
it’s triggering the new on_intent_progress
callback with the URL of the flac file, but I am not sure if something is really streaming there with only one file URL?
One file is fine, it is dynamically filled with data. To check the streaming, you will need a slow llm and a long response. After you request this response, immediately go to the debugging menu of your assist agent.
If the voice on the satellite starts before the response text appears, then everything is working.
great thanks, I’ll try that.
the test works really well. I can see the difference when comparing the old and the new version
I feel like I’m missing something fundamental here. I run Piper TTS on unraid using the linuxserver.io docker container. There’s no obvious option for proving any configuration options other than a limit set of env variables that don’t include streaming support. When I add piper to Home Assistant, I simply enter the location of my piper instance (in my case, the hostname of the piper container as they both run on the same docker network) and Home Assistant adds piper as a wyming device. Am I doing this in a completely incompatible way? I can tell from the length of time it takes to read the responses that streaming isn’t working. I’m running latest everything and testing from multiple voice devices, such as latest Home Assistance Voice Preview device, an up-to-date respeaker/esphome custom device and also from within the browser. Thanks in advance for anything that can point me in the right direction.
Most likely the --streaming key is missing in the container launch configuration
You can see how this was implemented in another dockerfile here Add support for streaming (introduced in wyoming-piper 1.6.0) (#33) · slackr31337/wyoming-piper-gpu@88549de · GitHub
The easiest way is to use the image from the original repository and run it with the required options