How does transcription confidence work here with L...
# ask-ai
m
How does transcription confidence work here with LiveKit and the transcription engine? When are transcripts not passed to the LLM and TTS?
t
Thanks for reaching out, Alexander. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
You're asking how transcription confidence is used in LiveKit and when transcripts are withheld from the LLM and TTS. Here's a concise, actionable summary. How confidence works • STT engines return interim (partial) and final transcripts plus confidence metadata. • LiveKit uses an end-of-utterance / end-of-turn confidence threshold (e.g., AssemblyAI’s default ~0.4) to decide whether to finalize a turn. Higher confidence triggers faster finalization; low confidence can delay endpointing. • Finalized transcripts are marked
is_final: true
and considered stable for downstream processing. When transcripts are NOT passed to the LLM or TTS • Interim (non-final) transcripts are never forwarded to LLM or TTS. • If end-of-turn isn’t detected (VAD or confidence model indicates user may continue), the transcript is not committed and not forwarded. • With
turn_detection = "manual"
, transcripts are held until
commit_user_turn()
is called. • Realtime model configurations that suppress forwarding (e.g., certain Realtime LLM setups or modalities that isolate TTS) can prevent transcripts from being sent. • If conversation history or model routing causes the system to respond in text only, TTS may not be invoked even after a final transcript. Important consequence • Only final, committed transcripts that meet endpointing/confidence rules are sent to the LLM and then to TTS. If you’d like, tell me: • which STT provider and turn detection mode you’re using (e.g., AssemblyAI + automatic or manual), and I’ll give exact settings and values to tune endpointing and forwarding. Sources: AssemblyAI plugin guide | LiveKit Docs | Events and error handling | LiveKit docs | How does end-of-utterance detection work in conversations? | examples/voice_agents | livekit/livekit_composite | DeepWiki | Azure OpenAI Realtime API and LiveKit | LiveKit docs
m
Using Deepgram. What is the confidence threshold requirement by default? can i edit it?
t
Thanks — responding about Deepgram with LiveKit. • Default numeric confidence: LiveKit does not define a specific numeric default confidence value for Deepgram. Endpointing uses STT end-of-speech signals plus VAD and confidence to decide when a turn is final, but there’s no single Deepgram confidence threshold documented in LiveKit. • Can you change it: Yes. You can tune behavior by: ◦ Adjusting LiveKit endpointing delays (
min_endpointing_delay
,
max_endpointing_delay
). ◦ Tuning VAD settings if you use a VAD plugin (e.g., silence duration, activation thresholds). ◦ Passing Deepgram-specific parameters via
extra_kwargs
in the STT config to control model behavior (if Deepgram supports the specific parameter). If you want, tell me which parameter you’d like to tighten (faster endpointing, fewer false finals, or more conservative commits) and whether you’re using VAD — I’ll give concrete values and the exact config snippet to change. Sources: examples/voice_agents | livekit/livekit_composite | DeepWiki | Agents Framework | livekit/livekit_composite | DeepWiki | Agents (Python) | livekit/livekit_composite | DeepWiki | examples/frontdesk | livekit/livekit_composite | DeepWiki | How does end-of-utterance detection work in conversations?