Migrating from Nova-3 to Flux
Key Benefits of Flux
Section titled “Key Benefits of Flux”- Model-integrated turn detection (
StartOfTurn,EagerEndOfTurn,TurnResumed,EndOfTurn) - Ultra-low latency ~260ms end-of-turn detection (p50 at defaults)
- EagerEndOfTurn events let you start LLM responses early
- Turn-based transcripts for clean agent logic
- Same Nova 3 transcription quality
- Simplified development one API replaces complex STT+VAD+endpointing pipelines, and conversation-native events.
- High configurability - Configurable end-of-turn detection sensitivity, eager response thresholds, and turn-taking dynamics for optimized conversational flow
Audio Requirements
Section titled “Audio Requirements”- Encoding: See Audio Format Requirements table below
- Sample rates: See Audio Format Requirements table below
- Channels: Mono only
- Chunk size: 80ms strongly recommended for optimal model performance and latency.
Audio Format Requirements
Section titled “Audio Format Requirements”| Audio Type | Encoding | Container | encoding param |
sample_rate param |
Supported Sample Rates |
|---|---|---|---|---|---|
| Raw | linear16, linear32, mulaw, alaw, opus, ogg-opus |
None | Required | Required | 8000, 16000, 24000, 44100, 48000 |
| Containerized | linear16 |
WAV | Omit | Omit | Auto-detected from container |
| Containerized | opus |
Ogg | Omit | Omit | Auto-detected from container |
| Containerized | opus |
WebM | Omit | Omit | Auto-detected from container |
Migrating from Nova 3 to Flux
Section titled “Migrating from Nova 3 to Flux”This guide will help you migrate from Nova 3 to Flux by highlighting key differences, setup changes, and implementation patterns.
Differences
Section titled “Differences”| Nova 3 | Flux |
|---|---|
| Streams transcripts continuously | Emits structured turn events |
| Requires custom logic for barge-in and turn-taking | Has built-in turn state machine |
| Returns transcripts only | Returns conversation events and transcripts |
| Designed for general real-time transcription | Designed for conversational voice agents |
| Focuses on accuracy and speed | Focuses on accuracy and turn awareness |
Endpoint Usage
Section titled “Endpoint Usage”Nova 3:
Uses the listen v1 endpoint with the nova-3 model option.
wss://api.deepgram.com/v1/listen?model=nova-3Flux:
Uses the listen v2 endpoint with the flux-general-en model option.
wss://api.deepgram.com/v2/listen?model=flux-general-enResponse Message Structure
Section titled “Response Message Structure”Nova 3
Section titled “Nova 3”{
"type": "Results",
"channel": "transcript",
"alternatives": [...]
}{
"type": "TurnInfo",
"request_id": "2ba892a1-6c0d-4d92-9b89-0000000000",
"event": "Update",
"turn_index": 0,
"audio_window_start": 0,
"audio_window_end": 0.47999996,
"transcript": "",
"words": [...],
"end_of_turn_confidence": 0.0009,
"sequence_id": 2
}In addition to the transcript, flux responses include the:
eventfield for turn-state changesturn_indexto track turn lifecycleaudio_window_startandaudio_window_endto track the audio window.end_of_turn_confidenceto track the confidence of the end of turn.sequence_idto track the sequence id of the messages.wordsarray with word-levelstartandendtimestamps (typedouble) on each word object, along withwordandconfidence.
Implementation Pattern Changes
Section titled “Implementation Pattern Changes”Nova 3 Approach
Section titled “Nova 3 Approach”Requires custom logic for barge-in and turn-taking.
- Send audio
- Receive streaming partial transcripts
- Decide when to interrupt your agent manually
Flux Approach
Section titled “Flux Approach”Listens for structured events and removes the need for custom VAD or barge-in logic.
StartOfTurn: Interrupt agent if it’s speakingEagerEndOfTurn: Medium-confidence end → start LLM replyTurnResumed: User kept talking → cancel replyEndOfTurn: High-confidence end → send transcript to LLM
By default, Flux only emits Update, StartOfTurn, and EndOfTurn.
Simple Approach: Enabling End of Turn
Section titled “Simple Approach: Enabling End of Turn”This is a simple approach using only EndOfTurn (lower latency, less complex, less LLM calls).
To enable end of turn use the eot_threshold parameter which allows for a confidence of (0.5–1.0) for EndOfTurn events.
Example
Section titled “Example”wss://api.deepgram.com/v2/listen?model=flux-general-en&sample_rate=16000&encoding=linear16&eot_threshold=0.8Optimized Approach: Enabling EagerEndOfTurn + EndOfTurn
Section titled “Optimized Approach: Enabling EagerEndOfTurn + EndOfTurn”This is an optimized approach using both EagerEndOfTurn and EndOfTurn (lower latency, slightly more complex, more LLM calls)
To enable eager end of turn use the eager_eot_threshold parameter which allows for a Confidence of (0.3–0.9). You can also set the eot_threshold with a confidence of (0.5–1.0) to handle EndOfTurn events and use the eot_timeout_ms which defaults to 5000 ms to force a timeout after a specified time.
Example
Section titled “Example”wss://api.deepgram.com/v2/listen?model=flux-general-en&sample_rate=16000&encoding=linear16&eager_eot_threshold=0.6&eot_threshold=0.8&eot_timeout_ms=7000Keeping Your Own Turn Detection
Section titled “Keeping Your Own Turn Detection”If you already have a turn detection stack you want to keep (VAD, endpointing, or push-to-talk), you don’t have to adopt Flux’s native detection. Set eot_threshold=1.0 to suppress natural end-of-turn, then send a ForceEndTurn message when your own detector fires. See Bring Your Own Turn Detection for the full recipe.
Example
Section titled “Example”wss://api.deepgram.com/v2/listen?model=flux-general-en&sample_rate=16000&encoding=linear16&eot_threshold=1.0Nova 3 Migration Checklist
Section titled “Nova 3 Migration Checklist”- Update WebSocket endpoint to
/v2/listen - Set
model=flux-general-enandencoding=linear16 - Adjust client to parse
TurnInfomessages - Implement turn event handling (start, eager end of turn, turn resumed, end)
- Tune
eager_eot_thresholdandeot_thresholdfor your use case - Remove custom VAD/barge-in logic (Flux handles this natively) — or keep it and drive turns with
ForceEndTurn; see Bring Your Own Turn Detection