synthesizeStream emits AudioChunk values as they are produced, so playback starts on the
first chunk instead of the last.
Signature
When it is worth it
For a sentence,speak is simpler and the difference is invisible. For a paragraph, or for a
model reply being streamed as it generates, streaming synthesis is what keeps the gap between
“the model finished” and “the user hears something” short.
Pairing it with a streaming completion
Speak each sentence as the model finishes it:AudioPlaybackManager
@runanywhere/core exports AudioPlaybackManager, which wraps the native playback path the
voice session uses. Prefer it over hand-rolling a player from chunks: it already handles the
audio session and the scheduling.