Migrating from Nova-3 to Flux
Migrating from Nova-3 to Flux
Migrate from Nova-3 to Flux, Deepgram’s conversational speech recognition purpose-built for interactive voice agents.
Migrating from Nova-3 to Flux
Migrate from Nova-3 to Flux, Deepgram’s conversational speech recognition purpose-built for interactive voice agents.
StartOfTurn, EagerEndOfTurn, TurnResumed, EndOfTurn)This guide will help you migrate from Nova 3 to Flux by highlighting key differences, setup changes, and implementation patterns.
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.
In addition to the transcript, flux responses include the:
event field for turn-state changesturn_index to track turn lifecycleaudio_window_start and audio_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.Requires custom logic for barge-in and turn-taking.
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 LLMBy default, Flux only emits Update, StartOfTurn, and EndOfTurn.
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.
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.
/v2/listenmodel=flux-general-en and encoding=linear16TurnInfo messageseager_eot_threshold and eot_threshold for your use case