End-of-Turn Detection Parameters
Flux provides configurable parameters that control end-of-turn detection and language biasing, allowing you to optimize your voice agent’s conversational flow for your specific use case.
Overview
Section titled “Overview”Flux’s behavior is controlled by the following key parameters:
| Parameter | Range | Default | Required | Description |
|---|---|---|---|---|
eot_threshold |
0.5 - 1.0 |
0.7 |
No | Confidence threshold for triggering EndOfTurn events. Set to 1.0 to suppress natural end-of-turn and drive turns with ForceEndTurn. |
eager_eot_threshold |
0.3 - 0.9 |
None | For eager mode | Confidence threshold for triggering EagerEndOfTurn events |
eot_timeout_ms |
500 - 60000 |
5000 |
No | Maximum silence duration (ms) before forcing EndOfTurn |
language_hint |
Supported language codes | None | No | Bias flux-general-multi toward specific languages. See Language Prompting. |
Parameter Details
Section titled “Parameter Details”eot_threshold
Section titled “eot_threshold”Confidence threshold required to trigger an EndOfTurn event, signaling that the user has finished speaking.
Valid Values: 0.5 to 1.0 Default: 0.7 Type: Float (passed as string in URL or SDK)
Behavior:
- Higher values (e.g.,
0.8-0.9) = Higher certainty required before ending a turn, fewer false positives, slightly increased latency - Lower values (e.g.,
0.5-0.7) = Lower certainty required before ending a turn, faster responses, more false positives 1.0= Fully suppresses naturalEndOfTurndetection. You take ownership of turn endings withForceEndTurn; theeot_timeout_msbackstop still applies. See Bring Your Own Turn Detection.
Example:
wss://api.deepgram.com/v2/listen?model=flux-general-en&eot_threshold=0.8eager_eot_threshold
Section titled “eager_eot_threshold”Confidence threshold for triggering EagerEndOfTurn events, enabling early LLM response generation.
Valid Values: 0.3 to 0.9 Default: Not set (eager mode disabled) Type: Float (passed as string in URL or SDK)
Behavior:
- When set: Enables
EagerEndOfTurnandTurnResumedevents - Lower values (e.g.,
0.3-0.5) = Earlier triggers, lower latency, more false starts - Higher values (e.g.,
0.6-0.8) = More conservative, fewer cancellations, less latency benefit
Trade-offs:
- ✅ Reduces E2E agent latency
- ❌ Increases LLM calls
- ❌ Requires handling
EagerEndOfTurnspeculative generation andTurnResumedcancellations
Example:
wss://api.deepgram.com/v2/listen?model=flux-general-en&eager_eot_threshold=0.6&eot_threshold=0.8eot_timeout_ms
Section titled “eot_timeout_ms”Maximum silence duration before forcing an EndOfTurn, regardless of confidence.
Valid Values: 500 to 60000 (milliseconds) Default: 5000 (5 seconds) Type: Integer (passed as string in URL or SDK)
Behavior:
- Forces
EndOfTurnafter specified silence duration, even if confidence is beloweot_threshold - Timer resets when new speech is detected
- Increase (e.g.,
7000-10000) for users with frequent pauses - Decrease (e.g.,
3000-4000) for rapid-response environments
Example:
wss://api.deepgram.com/v2/listen?model=flux-general-en&encoding=linear16&sample_rate=16000&eot_timeout_ms=7000Parameter Interactions
Section titled “Parameter Interactions”Validation Rules
Section titled “Validation Rules”eager_eot_thresholdmust be less than or equal toeot_threshold(if both are set)- Setting
eager_eot_threshold > eot_thresholdwill result in an error - All parameters are optional, but their values must be within valid ranges if specified
Common Configurations
Section titled “Common Configurations”Simple Mode (Default)
Section titled “Simple Mode (Default)”async with client.listen.v2.connect(
model="flux-general-en",
eot_threshold="0.7" # Default value
) as connection:
passBest for: Basic conversational agents, demos, getting started
Low-Latency Mode
Section titled “Low-Latency Mode”async with client.listen.v2.connect(
model="flux-general-en",
eager_eot_threshold="0.4",
eot_threshold="0.7",
eot_timeout_ms="6000"
) as connection:
passBest for: High-volume customer service, fast-paced Q&A, responsiveness over accuracy
High-Reliability Mode
Section titled “High-Reliability Mode”async with client.listen.v2.connect(
model="flux-general-en",
eot_threshold="0.85",
eot_timeout_ms="8000"
) as connection:
passBest for: Medical/legal transcription, critical documentation, formal settings
Complex Pipeline Mode
Section titled “Complex Pipeline Mode”async with client.listen.v2.connect(
model="flux-general-en",
eager_eot_threshold="0.4",
eot_threshold="0.85",
eot_timeout_ms="7000"
) as connection:
passBest for: RAG systems, tool-calling agents, multi-step reasoning workflows
Multilingual Mode
Section titled “Multilingual Mode”async with client.listen.v2.connect(
model="flux-general-multi",
encoding="linear16",
sample_rate=16000,
eot_threshold="0.7",
request_options={
"additional_query_parameters": {
"language_hint": ["en", "es"],
}
},
) as connection:
passBest for: Multilingual call centers, global voice agents, code-switching scenarios
See the Language Prompting guide for full details on language hint usage.
Related Resources
Section titled “Related Resources”- Getting Started with Flux - Quickstart guide with basic configuration
- Configure Control Message - Update configuration mid-stream without reconnecting
- Flux State Machine - Understanding turn events and state transitions
- Eager End-of-Turn Optimization - Deep dive on eager mode implementation
- Build a Voice Agent - Complete voice agent implementation guide
- Migrating from Nova-3 - Migration guide with configuration examples