Deploying Flux TTS
Flux TTS is Deepgram’s streaming-first, voice-agent-first speech synthesis model, served on the /v2/speak endpoint. This article describes how to enable Flux TTS in your self-hosted Deepgram environment, the configuration steps, and considerations unique to Flux TTS.
Requirements
Please familiarize yourself with these general requirements before attempting to deploy Flux TTS to your self-hosted Deepgram instances.
- Flux TTS requires a newer NVIDIA GPU (Ampere generation or later). Older GPUs such as the NVIDIA T4 are not supported.
- Flux TTS requires Deepgram container images from
release-260812or later. Flux TTS is not supported on FIPS-compliant images; deploy it on the standard images. - Flux TTS must be enabled explicitly in your Engine configuration file. It is off by default.
- Flux TTS requires a dedicated Engine. It cannot share an Engine with Aura models.
- The Flux TTS model file must be present in your Engine
modelsdirectory. Request it from your Deepgram account representative. - Your API configuration must enable the
/v2/speakendpoint.
Enable Flux TTS in Deepgram Self-Hosted Deployment
Flux TTS requires a couple of configuration changes in your self-hosted Deepgram deployment.
Engine
In your Deepgram Engine configuration, enable Flux TTS and select the model. Both uuid and max_batch_size are required when enabled = true.
max_batch_size has no safe default. The correct value differs substantially between GPUs, and a value tuned for one will underperform or exhaust memory on another. Engine will not start until you set it to a non-zero value. Contact your Deepgram account representative for a recommended value for the GPUs in your deployment.
API
In your Deepgram API configuration, make sure that the /v2/speak endpoint is enabled. This endpoint is new for Flux TTS. Aura and Aura-2 are served via the /v1/speak endpoint.
speak_v2 exposes the batch REST transport, and speak_v2_streaming exposes the WebSocket transport.
Helm
The Helm chart exposes fluxTts.enabled, fluxTts.uuid, and fluxTts.maxBatchSize for the Engine side, and api.features.speakV2 and api.features.speakV2Streaming for the API side. Helm users do not edit the Engine configuration file directly; the chart renders it for them. See charts/deepgram-self-hosted/samples/08-flux-tts-setup.values.yaml in the self-hosted-resources repository for a complete example.
Deployment Constraints
Flux TTS requires a dedicated Engine. Deploy it separately from Aura, and from your speech-to-text models, which contend for the same GPU memory.
Flux TTS and Aura cannot run on the same Engine. Engine refuses to start if both are configured, exiting before it loads any model. To serve both, run separate Engine instances.
Flux TTS synthesis workers bind to a single GPU. Exposing additional GPUs to a Flux TTS Engine does not increase its capacity. To use more GPUs, run one Engine per GPU.
Making a Test Request
Once your containers are running, make a sample request to verify that Flux TTS is loaded and serving. Flux TTS model strings use the format flux-{voice}-{language}, for example flux-haley-en. See Flux TTS Voices & Languages for the full catalog.
Unless you have HTTPS/TLS configured, use the http:// and ws:// protocols. Both /v2/speak transports are available on the same API port.
Batch (REST)
You should receive a response with the audio output. You can copy this file locally to manually evaluate the synthesized speech.
Streaming (WebSocket)
Each turn follows a clean lifecycle: SpeechStarted → audio → SpeechMetadata. Congratulations - your self-hosted Flux TTS setup is working!
What’s Next
Flux TTS behaves the same way in a self-hosted deployment as it does on Deepgram’s hosted platform. To learn about the API surface, voices, and transports, see: