Skip to content

glossary

verified July 2026

Streaming text-to-speech

Streaming TTS returns audio incrementally — the first chunk while the rest is still being synthesized — instead of one complete file at the end. It is the difference between an agent that starts speaking and an agent that buffers.

01

Why agents cannot batch

A four-second sentence synthesized as one file arrives after the whole four seconds are rendered. Streamed, the first chunk can arrive in about a hundred milliseconds and playback overlaps synthesis. Same model, same audio — the caller’s wait drops by an order of magnitude.

Fig. — The same four-second sentence, batched vs streamed

Batched — wait for the file

~4,000 ms of silence

Streamed — wait for the first chunk

~107 ms of silence

Playback then overlaps the remaining synthesis — the caller never hears the render finish.

02

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 your telephony stack’s sample rate, 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.
  • Which transports carry the stream, and what each assumes about your infrastructure — worked through on the SSE vs WebSocket page.

See also

Related sheets.

Every term on this page is measurable on a live call — watch the readout while your own script synthesizes.

See the measured figures live