Migrating from Nova-3 to Flux
Migrate from Nova-3 to Flux, Deepgramβs conversational speech recognition purpose-built for interactive voice agents.
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
- Encoding:
linear16
(16-bit signed little-endian PCM) - Sample rates:
8000
,16000
,24000
,44100
,48000
- Channels: Mono only
- Chunk size: ~80 ms recommended
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
Endpoint Usage
Nova 3:
Uses the listen v1 endpoint with the nova-3
model option.
Flux:
Uses the listen v2 endpoint with the flux-general-en
model option.
Response Message Structure
Nova 3
Flux
In addition to the transcript, flux responses include the:
event
field for turn-state changesturn_index
to track turn lifecycleaudio_window_start
andaudio_window_end
to track the audio window.end_of_turn_confidence
to track the confidence of the end of turn.sequence_id
to track the sequence id of the messages.
Implementation Pattern Changes
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
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
For more information on using Flux with EndOfTurn only see the Flux Getting Started Guide
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β0.9) for EndOfTurn
events.
Example
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β0.9) to handle EndOfTurn
events and use the eot_timeout_ms
which defaults to 5000 ms to force a timeout after a specified time.
Example
Nova 3 Migration Checklist
- Update WebSocket endpoint to
/v2/listen
- Set
model=flux-general-en
andencoding=linear16
- Adjust client to parse
TurnInfo
messages - Implement turn event handling (start, eager end of turn, turn resumed, end)
- Tune
eager_eot_threshold
andeot_threshold
for your use case - Remove custom VAD/barge-in logic (Flux handles this natively!)