Flux TTS Feature Overview

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

Early Access. Flux TTS and the /v2/speak API are in Early Access — the API surface and voice catalog may change before general availability.

This page summarizes what the Flux TTS /v2/speak WebSocket supports at Early Access. 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
VersioningInternal only — generations roll forward behind a stable model string

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.

Early Access vs. GA

CapabilityStatus
Streaming WebSocket + Batch (REST) transports, turn lifecycle (SpeechStarted / SpeechMetadata / Flushed / SessionMetadata), streaming audio before Flush, cross-turn contextEarly Access
Interruption / barge-in (InterruptSpeechInterrupted with text_spoken / text_remaining)Planned for GA
Mid-stream Configure (speed)Planned for GA
Markup stripping (SSML / competitor tags) + pronunciation/control warningsPlanned for GA

Rate Limits

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