Hi LiveKit community, I am new to Livekit.
I’m debugging a microphone issue with LiveKit Meet.
My setup: I am not using any cloud. I am doing things locally
-
Windows + Python 3.12
-
Local LiveKit server
-
LiveKit Agents 1.8.0
-
Deepgram STT
-
Django/Celery backend
-
Microphone: Realtek Microphone Array
The agent joins the room and subscribes to the microphone correctly. VAD detects speech, but Deepgram produces no transcript.
I then recorded the raw incoming microphone track on the Python side using rtc.AudioStream. When using LiveKit Meet, the WAV file contains mostly loud/noisy/distorted audio instead of my voice.
However:
-
Windows Sound Recorder → clear audio
-
Browser
getUserMedia()recording → clear audio -
Minimal LiveKit JS client publishing the same mic → clear audio on the Python side
-
LiveKit Meet in both Chrome and Edge → noisy audio
My working direct client publishes the mic with:
setMicrophoneEnabled(true, {
deviceId: { exact: deviceId },
echoCancellation: false,
noiseSuppression: false,
autoGainControl: false,
});
I checked the Meet source and saw:
audioCaptureDefaults: {
deviceId: props.userChoices.audioDeviceId ?? undefined,
},
followed by:
room.localParticipant.setMicrophoneEnabled(true)
So I’m wondering if one of the default WebRTC audio-processing settings in Meet is causing the issue.
Has anyone seen this before, especially with Realtek microphone arrays?
Would explicitly setting:
echoCancellation: false,
noiseSuppression: false,
autoGainControl: false
inside audioCaptureDefaults be the right next test?
Also, is there an easy way to inspect the actual MediaStreamTrack.getSettings() used by LiveKit Meet? Is there any better option to have a full conversation/interaction with agent(other than lk agent console)?