Skip to content

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