Voice replies from Home Assistant should start sooner on satellites that need their audio converted. On 14 October 2026 Michael Hansen merged a change, reviewed by Paulus Schoutsen, that alters how Home Assistant passes streamed speech to ffmpeg. In Hansen's test the first converted audio arrived after 0.10 seconds instead of 2.90.

Where the delay came from

Streaming text-to-speech engines such as Wyoming and Home Assistant Cloud send a WAV header followed by chunks of raw PCM audio. When a voice satellite needs a different format, Home Assistant converts the stream with ffmpeg. ffmpeg first buffers part of the input to inspect it, and when speech is generated only slightly faster than real time, that buffering adds seconds before anything is played.

An earlier pull request, #178709, found the cause and reduced the wait with the -probesize 32 option. Hansen's change goes further: Home Assistant reads the WAV header itself and feeds ffmpeg the bare samples, so there is no container left for ffmpeg to inspect. The -probesize 32 setting is still included, because without it the raw input is buffered just as long.

The numbers

Hansen measured the time to the first converted byte for a simulated three-second utterance at 22,050 Hz, converted to 16 kHz mono FLAC, best of three runs:

Speech generated at Before With #178709 With this change
1.05x real time 2.90 s 1.40 s 0.10 s
1.2x real time 2.53 s 1.23 s 0.09 s
2.0x real time 1.52 s 0.73 s 0.10 s

These numbers cover only the conversion step, not the whole time from a spoken request to the answer. The important part is that the new path no longer depends on how slowly speech is generated: the result stays around 0.1 seconds.

What does not change

The header is unwrapped only when it clearly describes a stream: the data size is a streaming placeholder, the format is PCM and the bit depth maps to a format ffmpeg understands. Anything else falls back to the old behaviour, so engines that return complete WAV files work as before. Wyoming and Cloud benefit without any change in their own integrations.

The change is in the development branch, so it should reach users with Home Assistant 2026.11.