Flux TTS Feature Overview

A matrix of Flux TTS (/v2/speak) capabilities — the streaming-first, voice-agent-first text-to-speech surface.

This page summarizes what the Flux TTS /v2/speak WebSocket supports. For the full wire protocol, see Client Messages and Server Messages.

Model Selection

FeatureValue
Endpoint/v2/speak (WebSocket and REST)
Model formatflux-{voice}-{language} (e.g. flux-haley-en)
Model stringRequired on every connection

Media Output Settings (streaming)

The streaming WebSocket emits raw audio (no container), so it supports raw PCM and G711 encodings only:

FeatureSupported Values
encodinglinear16 (default), mulaw, alaw
sample_rate (linear16)8000, 16000, 24000, 32000, 44100, 48000
sample_rate (mulaw / alaw)8000, 16000

Compressed/containerized encodings (opus, mp3, flac, aac) and the container / bit_rate parameters are reserved for the batch REST transport (see Transports), not the streaming WebSocket. The streaming connection rejects unknown or batch-only parameters.

Conversational Surface

The streaming WebSocket only — the batch REST transport is a single request/response (see Transports).

FeatureDescription
Turn lifecycleServer-assigned speech_id; SpeechStarted / SpeechMetadata events scoped to each turn
Streaming audioThe server streams a turn’s audio back as text comes in — no client-side chunking or flush placement needed
Manual flushFlush ends a turn: generates the remaining audio and emits SpeechMetadata
Cross-turn contextProsody persists across turns for tonal consistency (no API surface)

Transports

TransportEndpointUse case
Streamingwss://api.deepgram.com/v2/speakLive voice agents: low time-to-first-byte, turn-based synthesis
BatchPOST https://api.deepgram.com/v2/speakPre-generating fixed audio (IVR prompts, notifications) where the whole text is known up front. Supports containerized/compressed encodings (mp3 default, plus opus/flac/aac with container/bit_rate).

Session Limits

LimitValueNotes
Max session duration1 hourServer closes the WebSocket at the 1-hour mark.
Inactivity timeout60sSession closes after 60s with no inbound client message (NET-0004). A WebSocket Ping (or Pong) resets the timer.

Interruption & Control

FeatureDescription
Interruption / barge-inInterrupt cancels the active turn; SpeechInterrupted reports text_spoken / text_remaining. See Interruption Handling.
Mid-stream ConfigureAdjust speed (seven multipliers, 0.851.15 in 0.05 steps) without reconnecting; applies at the next segment boundary.
expressivity (beta)Integer delivery-register dial, -2 (calm) to 2 (animated), default 0. Available on both transports. See Expressivity.
Inline controlsInline pause and pronunciation (IPA) controls are coming soon; the controls_applied tallies and warning codes are reserved for them.
Markup strippingRecognized SSML / competitor tags are stripped with an INPUT_MARKUP_STRIPPED warning; synthesis continues. See Markup handling.

Rate Limits

For information on Deepgram’s concurrency rate limits, see the API Rate Limits documentation.