Can I set a confidence minimum treshold for the ST...
# ask-ai
s
Can I set a confidence minimum treshold for the STT using livekit ?
t
Thanks for reaching out, aric. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Thanks — great question. You can control confidence-based behavior for STT in LiveKit, but how you do it depends on which STT plugin or model you’re using. • AssemblyAI STT plugin: You can set
end_of_turn_confidence_threshold
to require a minimum confidence before the system treats speech as an end-of-turn (default is 0.4). ◦ More: https://docs.livekit.io/agents/models/stt/inference/assemblyai • Deepgram STT plugin (Flux model): You can configure
eager_eot_threshold
(range ~0.3–0.9) for eager end-of-turn events and
eot_threshold
for the final turn completion. ◦ More: https://docs.livekit.io/agents/models/stt/plugins/deepgram/ • LiveKit End-of-Utterance (EOU) model: This model uses confidence internally to improve turn detection and reduce false interruptions (it adjusts VAD timeouts dynamically). It doesn’t expose a single “confidence threshold” setting in the same way as the plugins above, but it achieves similar goals by leveraging confidence scores in its logic. ◦ More: https://blog.livekit.io/using-a-transformer-to-improve-end-of-turn-detection/#/portal If you tell me which STT provider or model you’re using (AssemblyAI, Deepgram, the LiveKit EOU model, or another plugin), I can give step-by-step configuration guidance for that specific setup. Sources: AssemblyAI STT | LiveKit Documentation | Deepgram STT plugin guide | LiveKit Documentation | Improving voice AI's turn detection with transformers
s
I am using Soniox
t
Thanks — I’m responding to your question about setting a minimum confidence threshold for Soniox STT in LiveKit. Short answer: LiveKit does not expose a built-in setting named like
confidence_threshold
for the Soniox plugin. Soniox returns word-level (and/or segment-level) confidence scores, but you must implement any minimum-confidence filtering yourself in your agent logic. What you can do now • Use Soniox’s transcription events (
final
/
nonfinal
) and read the confidence values attached to words or segments in each transcription result. • Implement post-processing in your agent callbacks (for example,
on_user_transcription
or
on_user_speech_complete
) to compute an average, minimum, or weighted confidence and discard or flag transcriptions below your chosen threshold. Suggested approach (outline) 1. Capture the transcription object delivered by the Soniox plugin. 2. Calculate a confidence metric (examples: average word confidence, minimum word confidence, confidence for key words). 3. If the metric < your threshold, ignore the transcription or mark it as low-confidence and handle accordingly (ask user to repeat, request confirmation, etc.). Example pseudocode
Copy code
def on_user_transcription(transcription):
    words = transcription.words  # each word has .confidence
    if not words:
        return
    avg_conf = sum(w.confidence for w in words) / len(words)
    if avg_conf < 0.7:
        # treat as low confidence: ignore, re-prompt, or flag for review
        return
    # proceed with handling the transcription
If you’d like, I can: • Provide a concrete code example in the language you’re using (Python, TypeScript, etc.). • Suggest a recommended threshold and handling patterns for your use case (live captions, command recognition, conversational agents). • Help locate the exact fields in the Soniox transcription payload you will need to read. Which language and runtime are you using for your agent, and how do you plan to handle low-confidence transcriptions (ignore, re-prompt, confirm, etc.)? Sources: Soniox STT plugin guide | LiveKit Documentation