Streaming text-to-speech
Streaming
the first chunk arrives while the rest renders, playback overlaps synthesis
Synthesis that hands back the first chunk of audio while the rest is still being made. Your listener hears speech start immediately.
Why live playback cannot batch
A four-second sentence synthesized as one file arrives after all four seconds are rendered. Streamed, the first chunk arrives while the rest is still being made. Same model, same audio, the wait drops by an order of magnitude.
fig.
The same four-second sentence, batched vs streamed
Fig
Batched, wait for the file
~4,000 ms of silence
Streamed, wait for the first chunk
a fraction of a second of silence
Playback then overlaps the remaining synthesis, the listener never hears the render finish.
What to check in a streaming API
- Time to first chunk under load, not just on an idle box, ask for the percentile pair at your concurrency.
- Raw PCM output at the sample rate your playback path wants, so no transcode sits in the hot path.
- A clean end-of-stream signal with timing metadata, ours reports ttfa_ms and audio_ms per utterance.
Every term on this page is measurable. Take a key and read the numbers off your own requests.
Get a key and measure it yourself