fresh-flag-73780
03/15/2026, 4:54 PMtall-airline-16756
03/15/2026, 4:54 PMtall-airline-16756
03/15/2026, 4:54 PMmin_speech_duration and min_silence_duration to avoid false starts from noise bursts:
◦ Increase min_speech_duration slightly to ignore very short noise blips.
◦ Increase min_silence_duration so the system doesn’t cut off when background sounds momentarily drop.
• The goal is to reduce false positives (noise detected as speech) and false negatives (real speech missed).
4) Combine strategies for best effect
• Pipeline example: noise cancellation → VAD/turn detection → diarization → STT → LLM.
• Noise cancellation cleans raw audio first; VAD/turn detection prevents sending noise-only segments; diarization ensures only the intended speaker’s text reaches the agent.
5) Other practical tips
• If possible, ask users to use headsets or closer microphone placement — hardware gains are often the most effective.
• If background voices are predictable (e.g., common hold-music, repeating announcements), you can add filters or keyword-based suppression for those known noises.
• Consider confidence thresholds from the STT: if transcription confidence is low, prompt for a short confirmation before the agent acts.
If you’d like, I can:
• Suggest specific parameter values for min_speech_duration / min_silence_duration based on your use case (IVR vs. in-person kiosk vs. group environment).
• Show a short code snippet of how to wire noise cancellation, diarization, and the turn detector together for your setup.
• Help you choose between different STT diarization-capable models if you tell me which providers you’re using (Deepgram, Speechmatics, etc.).
Which of those follow-ups would be most helpful right now?
Sources: LiveKit Platform | Build, run, and observe voice AI agents | LiveKit | Speech-to-text (STT) models overview | LiveKit Documentation | Turns overview | LiveKit Documentationfresh-flag-73780
03/15/2026, 4:56 PMtall-airline-16756
03/15/2026, 4:56 PMkrisp_enabled parameter) and is supported in LiveKit Cloud for enhanced server-side noise removal. Best when you need stronger real-time suppression of background noise and echo.
• Bypass native voice processing (iOS)
◦ On iOS you can disable the platform’s built-in voice processing (echo/noise suppression) using bypassVoiceProcessing in LiveKitClient.initialize(). This yields raw audio so you can apply LiveKit’s noise cancellation or your custom processing pipeline instead of the native iOS processing.
When to choose which:
• Use BVC for general WebRTC scenarios where you need a lightweight, built-in filter.
• Use BVCTelephony for SIP/telephony callers to handle narrow-band audio characteristics.
• Use Krisp when you need stronger AI-based suppression (e.g., very noisy environments, persistent background voices or echo).
• Use bypassVoiceProcessing if you need control over raw audio input (for custom models or to avoid double-processing by iOS).
If you’d like, I can:
• Show a short code example wiring one of these (BVC or Krisp) into RoomOptions or trunk config.
• Recommend specific settings or values (e.g., when to prefer Krisp vs. BVC) based on whether your users connect via WebRTC, SIP, or mobile apps.
Which platform or call type are you using (WebRTC participants, SIP trunk, or mobile app)? That will help me give a concrete example.
Sources: Agent session | LiveKit Documentation | Turns overview | LiveKit Documentation | Using Noise Cancellation for SIP and WebRTC Participants | sip | livekit/livekit_composite | DeepWiki | Agents telephony integration | LiveKit Documentationfresh-flag-73780
03/15/2026, 4:59 PMtall-airline-16756
03/15/2026, 4:59 PMfresh-flag-73780
03/15/2026, 5:00 PMtall-airline-16756
03/15/2026, 5:00 PMbypassVoiceProcessing) and use ai-coustics or Krisp depending on noise level.
Would you like a short code example that:
• Shows how to select BVC vs BVCTelephony based on participant type, or
• Shows how to enable Krisp for a SIP trunk or participant?
Tell me which platform (WebRTC, SIP/trunk, or mobile) you want an example for and I’ll provide the snippet.fresh-flag-73780
03/15/2026, 5:01 PMtall-airline-16756
03/15/2026, 5:02 PMbypassVoiceProcessing to get raw audio and apply LiveKit’s filters or your own processing.
Which to pick:
• For typical WebRTC calls: start with BVC.
• For SIP/telephone callers: use BVCTelephony.
• If noise, overlapping voices, or echo remains a problem: enable Krisp for those flows.
If you’d like, I can:
• Show a short code snippet that applies BVC vs BVCTelephony depending on participant type, or
• Show how to enable Krisp on a SIP trunk/participant.
Which example would help you most?
Sources: Using Noise Cancellation for SIP and WebRTC Participants | Agents telephony integration | LiveKit Documentation