# Built-in laptop mic causing incorrect Whisper transcriptions

**URL:** <https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251>\
**Category:** Agents\
**Tags:** stt, noise-cancellation\
**Created:** [May 26, 2026, 2:39pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251 "2026-05-26T14:39:20Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aman](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/aman/32/287_2.png) [@Aman](https://community.livekit.io/u/Aman)\
**Post date:** [May 26, 2026, 2:39pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/1 "2026-05-26T14:39:20Z")

</div>

Hi everyone,

We’re facing an issue with speech transcription quality and wanted to check if anyone has seen something similar.

Current setup:

- Noise cancellation:

```auto
audio_enhancement(
    model=EnhancerModel.QUAIL_VF_S,
    model_parameters=ModelParameters(enhancement_level=0.8)
)

```

- STT: Grok Whisper

Behavior:

- When testing with headphones/headsets, transcription works very well.

- But when testing directly on laptop microphones (MacBook Pro, MacBook Air, and multiple Windows laptops), transcription quality becomes very poor.

- In some cases, English speech gets incorrectly transcribed into random Chinese words/characters.

We tested on around 4–5 different laptops and saw similar behavior.

We’re trying to understand:

- Could the noise cancellation/enhancement be over-processing laptop mic audio?

- Is there a known issue with QUAIL\_VF\_S + built-in laptop microphones?

- Could this be related to sample rate, echo cancellation, AGC, browser audio processing, or Whisper language detection?

- Are there recommended settings for laptop microphones specifically?

With the same pipeline, headset audio works correctly, so the issue seems specific to built-in laptop microphones.

Happy to provide more details/logs/audio samples if needed.

Thanks!

---

<div class="post-metadata">

**Author:** ![Pawel\_Lach](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/pawel_lach/32/1127_2.png) [@Pawel\_Lach](https://community.livekit.io/u/Pawel_Lach)\
**Post date:** [May 26, 2026, 3:11pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/2 "2026-05-26T15:11:23Z")

</div>

Hi Aman, thanks for the detailed report. QUAIL Voice Focus (VF) models are optimized for close-microphone scenarios like headsets, where the speaker’s voice is the dominant signal. Built-in laptop microphones pick up more room noise and have different gain characteristics, which causes VF models to over-process the signal.

A few suggestions:

- Switch from `QUAIL_VF_S` to a standard QUAIL model, which handles more varied mic environments better.

- Try lowering `enhancement_level` (e.g., to 0.4-0.5) as a test, even before switching models.

- For the Chinese transcription issue specifically you could try explicitly setting the language parameter (e.g., `language="en"`) in your Whisper config should prevent incorrect language detection.

- On sample rate and browser settings - what’s your current echo cancellation and auto gain control setting?

Happy to look at logs or audio samples and feel free to reach out to me directly.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [May 27, 2026, 4:50am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/3 "2026-05-27T04:50:25Z")

</div>

Hi @Pawel_Lach, thanks for the suggestions and detailed explanation.

Regarding the 2nd point, we already tried lowering the enhancement\_level, but unfortunately it did not improve the output. In fact, reducing it introduced even more background noise.

For the 3rd point, we need to support multiple languages including English, Hindi, and Arabic. Because of this, explicitly setting a fixed language code is not feasible for our use case, so we will need to continue with the multilingual configuration.

Regarding the model change, we will test by switching from QUAIL\_VF\_S to the standard QUAIL model and will share our observations after validation.

Thanks.

---

<div class="post-metadata">

**Author:** ![Pawel\_Lach](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/pawel_lach/32/1127_2.png) [@Pawel\_Lach](https://community.livekit.io/u/Pawel_Lach)\
**Post date:** [May 27, 2026, 5:49am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/4 "2026-05-27T05:49:11Z")

</div>

I see, guys would you mind sharing the audio samples? We are more than happy to have a look into it. Feel free to reach out directly to me as well. It looks like a bit more complex case.

---

<div class="post-metadata">

**Author:** ![Muhammad\_Usman\_Bashir](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/muhammad_usman_bashir/32/1149_2.png) [@Muhammad\_Usman\_Bashir](https://community.livekit.io/u/Muhammad_Usman_Bashir)\
**Post date:** [May 27, 2026, 9:03am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/5 "2026-05-27T09:03:05Z")

</div>

Building on @Pawel_Lach’s `QUAIL` guidance, the `headset-vs-laptop` split points at a root cause upstream of QUAIL: browser audio processing mangling the laptop mic before QUAIL sees it.

The web SDK’s `AudioCaptureOptions` has `echoCancellation`, `autoGainControl`, and `noiseSuppression`, typically on by default [[client-sdk-js/src/room/track/options.ts](https://github.com/livekit/client-sdk-js/blob/main/src/room/track/options.ts) ].

- On a `headset` (clean close-mic) the browser does little, so QUAIL gets near-raw audio.

- On a `laptop` built-in mic (noisy far-field) the browser applies aggressive AGC and noise suppression first, so QUAIL over-processes an already-processed signal.

The LK docs match this: NC models expect raw audio and produce unexpected results if the input was already processed in the frontend [[Noise & echo cancellation | LiveKit Documentation](http://docs.livekit.io/transport/media/noise-cancellation) ].

> Test: set those three to false so QUAIL is the only processing stage. That isolates whether the browser chain is the culprit.

On @Rajan_kumar’s multilingual point (`EN/HI/AR`): the Chinese output is most likely a symptom of the degraded audio, not a separate language bug. Whisper `auto-detect` mis-fires on garbled input. Fix the input pipeline first; language detection should stabilize without pinning `language="en"`, keeping multilingual intact.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [May 29, 2026, 9:11am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/6 "2026-05-29T09:11:18Z")

</div>

Hi @Muhammad_Usman_Bashir,

Thanks for the suggestion and explanation. We already tried this approach, but we need to keep `echoCancellation` enabled because disabling it causes the agent’s output audio to be picked up again as input, which puts the agent into a loop.

We did see some improvement after disabling `autoGainControl` and `noiseSuppression`, but the issue still persists. The `groq/whisper-large-v3-turbo` model is interpreting even very small background noises as phrases like “Thank you.” For example, if someone nearby coughs, the model sometimes transcribes it as “Thank you,” which then causes our agent to end the call unexpectedly.

This behavior feels quite strange to us, and we’re trying to understand the best way to handle or prevent these false transcriptions.

---

<div class="post-metadata">

**Author:** ![CWilson](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/cwilson/32/135_2.png) [@CWilson](https://community.livekit.io/u/CWilson)\
**Post date:** [May 29, 2026, 11:28am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/7 "2026-05-29T11:28:19Z")

</div>

> [@Pawel\_Lach](#):
>
> would you mind sharing the audio samples

Like Pawel suggested can we get a sample of the audio? These are challenging things to debug and nearly impossible without concrete examples of the issue.

If you are using Agent Observability, can you share a session ID from your dashboard so I can take a look at what is going on?

Have you tried other STT to see if you get any different results?

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [May 29, 2026, 1:44pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/8 "2026-05-29T13:44:54Z")

</div>

@CWilson

Please take a look — I tested multiple STT providers and models with the following Deepgram and Groq LiveKit session IDs:

- Deepgram Nova 3: `RM_s3ipNTquuyD6`

- Deepgram Nova 2: `RM_su7ywYhHQseB`  
(This worked well for English, but toward the end some abbreviations were added incorrectly. I already included some of them in keywords because they are important for the model to understand.)

- Groq Whisper Large v3 Turbo: `RM_cyhDpVmTTLce`  
(You can notice unnecessary “thank you” transcriptions in this session.)

Please review these sessions and let me know which STT provider/model would be better suited for supporting Hindi, English, and Arabic reliably.

---

<div class="post-metadata">

**Author:** ![CWilson](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/cwilson/32/135_2.png) [@CWilson](https://community.livekit.io/u/CWilson)\
**Post date:** [May 29, 2026, 1:54pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/9 "2026-05-29T13:54:10Z")

</div>

> [@Rajan\_kumar](#):
>
> RM\_su7ywYhHQseB

I was not able to access that Insights data. For each session you will need to go to the “Agent Insights” tab, click share, and check the share with LiveKit staff checkbox.

**Something like this:**

![2026-05-29 08.52.04](https://us1.discourse-cdn.com/flex001/uploads/livekit2/original/2X/2/2170fa36281fa2fb610e515edc11584ebd02359f.gif)

Also, I can really give much advise about which STT will work better for what language. But I maybe able to help you isolate specific audio issues which is what I believe you were trying to sort out.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [June 1, 2026, 8:15am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/10 "2026-06-01T08:15:34Z")

</div>

Hi @CWilson, please find the attached links for the sessions:

> **[LiveKit Cloud](https://cloud.livekit.io/login)**
>
> Build applications that can see, hear, and speak with LiveKit Cloud, an end-to-end developer platform for voice, video, and physical AI.

> **[LiveKit Cloud](https://cloud.livekit.io/login)**
>
> Build applications that can see, hear, and speak with LiveKit Cloud, an end-to-end developer platform for voice, video, and physical AI.

> **[LiveKit Cloud](https://cloud.livekit.io/login)**
>
> Build applications that can see, hear, and speak with LiveKit Cloud, an end-to-end developer platform for voice, video, and physical AI.

---

<div class="post-metadata">

**Author:** ![CWilson](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/cwilson/32/135_2.png) [@CWilson](https://community.livekit.io/u/CWilson)\
**Post date:** [June 1, 2026, 3:00pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/11 "2026-06-01T15:00:55Z")

</div>

Those links appear to be to the login page. Can you share the session id that starts with `RM_`?

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [June 2, 2026, 4:33am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/12 "2026-06-02T04:33:27Z")

</div>

> [@Rajan\_kumar](#):
>
> Please take a look — I tested multiple STT providers and models with the following Deepgram and Groq LiveKit session IDs:
> 
> - Deepgram Nova 3: `RM_s3ipNTquuyD6`
> - Deepgram Nova 2: `RM_su7ywYhHQseB`  
> (This worked well for English, but toward the end some abbreviations were added incorrectly. I already included some of them in keywords because they are important for the model to understand.)
> - Groq Whisper Large v3 Turbo: `RM_cyhDpVmTTLce`  
> (You can notice unnecessary “thank you” transcriptions in this session.)

Session ids already shared with you. Also when I copying that links from share button the editor makes them signin link automatically.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [June 3, 2026, 7:09am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/13 "2026-06-03T07:09:04Z")

</div>

Hi @CWilson, just following up on this thread. I shared the Agent Insights session links with LiveKit staff access enabled.

When you have a chance, could you please review the sessions and let me know if you notice any STT-related issues in the audio or transcripts? My main goal is to understand whether the observed transcription problems are due to audio quality, model behavior, or provider-specific limitations across Hindi, English, and Arabic.

If there’s any additional information, audio samples, or specific session settings that would help with the investigation, I’d be happy to provide them.

Thanks!

---

<div class="post-metadata">

**Author:** ![darryncampbell](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/darryncampbell/32/20_2.png) [@darryncampbell](https://community.livekit.io/u/darryncampbell)\
**Post date:** [June 3, 2026, 8:49am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/14 "2026-06-03T08:49:25Z")

</div>

Hi Rajan,

I took a look. FYI the links to the sessions are as follows:

- [https://cloud.livekit.io/projects/p\_2pfrjnu98ox/sessions/RM\_s3ipNTquuyD6/observability?mode=transcript](https://cloud.livekit.io/projects/p_2pfrjnu98ox/sessions/RM_s3ipNTquuyD6/observability?mode=transcript)
- [https://cloud.livekit.io/projects/p\_2pfrjnu98ox/sessions/RM\_su7ywYhHQseB/observability?mode=transcript](https://cloud.livekit.io/projects/p_2pfrjnu98ox/sessions/RM_su7ywYhHQseB/observability?mode=transcript)
- [https://cloud.livekit.io/projects/p\_2pfrjnu98ox/sessions/RM\_cyhDpVmTTLce/observability?mode=transcript](https://cloud.livekit.io/projects/p_2pfrjnu98ox/sessions/RM_cyhDpVmTTLce/observability?mode=transcript)

For the first two, there are no audio waveforms associated with them. I’m unsure exactly why (I thought perhaps it was [this incident](https://status.livekit.io/incidents/2ppb088f7fcd), but the dates don’t match up).

Anyway, for the third transcript I was able to review the audio. I see a single mis-transcribed “Thank you.” at 34.28. Two observations about this:

- The actual audio, to my ear, although a sneeze does sound very much like “Thank you” 🙂 . Anyway, the sneeze is what we would classify as a ‘backchannel’ and it’s the kind of thing that ‘Adaptive interruption handling’ is designed to filter out and ignore: [Adaptive interruption handling | LiveKit Documentation](https://docs.livekit.io/agents/logic/turns/adaptive-interruption-handling/). The first thing to ensure is that you are using a version of agents that supports Adaptive interrupt handling.

- The transcript has a little keyboard icon next to the word ‘User’. I would only expect this for textual user input, but clearly your user is speaking. The only other time I have seen the keyboard icon for spoken text is when the developer was doing something unique with the pipeline, such as implementing a custom LLM adapter.

I grant that’s not the exact answer you were looking for, but I hope the above is helpful.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [June 3, 2026, 11:57am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/15 "2026-06-03T11:57:46Z")

</div>

@darryncampbell I am using following setting in my agent session:

```auto
turn_handling=TurnHandlingOptions(

            turn_detection=eo_turn_detector, # SWITCHED from "vad" to the model

endpointing={

"mode": "dynamic", 

"min_delay": 0.05, # Reduced: The turn detector is very fast

"max_delay": 0.4 # Reduced: Don't wait too long if the model is unsure

},

interruption={

"mode": "adaptive", 

"enabled": True,

},

preemptive_generation={

"enabled": not _rag_enabled, 

"preemptive_tts": not _rag_enabled

},

),

```

adaptive setting is already there but we still facing this noise picking issue. The issue seems clearly of the noise cancellation because on the headsets, everything is working fine.

---

<div class="post-metadata">

**Author:** ![darryncampbell](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/darryncampbell/32/20_2.png) [@darryncampbell](https://community.livekit.io/u/darryncampbell)\
**Post date:** [June 3, 2026, 12:56pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/16 "2026-06-03T12:56:25Z")

</div>

As long as `eo_turn_detector` is one of the values defined at [https://docs.livekit.io/agents/logic/turns/](https://docs.livekit.io/agents/logic/turns/) and you’re using a version of the agents SDK \>= v1.5.0 (Python) [or \>= v1.2.0 NodeJS] then that looks good.

> The issue seems clearly of the noise cancellation

I’m not as sure, the audio you’re hearing in agent observability is AFTER any agent noise cancellation, so listening to that recording, you’re essentially hearing what the agent hears. Like I say, I could only listen to one of the recordings, and even to me it sounded a bit like ‘Thank you’ so it wouldn’t surprise me if the classifier thought the same.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [June 3, 2026, 1:05pm UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/17 "2026-06-03T13:05:58Z")

</div>

I listened to the audio again, and it doesn’t sound like “thank you” to us. It appears to be a low-volume background noise that is faintly picked up by the agent.

For turn detection, I am using the multilingual model:

eo\_turn\_detector = MultilingualModel()

This is the configuration mentioned in the LiveKit documentation link that you shared.

---

<div class="post-metadata">

**Author:** ![Rajan\_kumar](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/rajan_kumar/32/834_2.png) [@Rajan\_kumar](https://community.livekit.io/u/Rajan_kumar)\
**Post date:** [July 7, 2026, 8:06am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/18 "2026-07-07T08:06:30Z")

</div>

@darryncampbell @CWilson guys any update or help you guys can provide me in this as I am getting this issue continuously.

---

<div class="post-metadata">

**Author:** ![darryncampbell](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/darryncampbell/32/20_2.png) [@darryncampbell](https://community.livekit.io/u/darryncampbell)\
**Post date:** [July 7, 2026, 8:32am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/19 "2026-07-07T08:32:35Z")

</div>

It’s surprising how much can change in a month, we have released a new turn detector model:

> **[Solving end-of-turn detection: LiveKit Turn Detector v1.0](https://livekit.com/blog/solving-end-of-turn-detection)**
>
> LiveKit Turn Detector v1 listens to speech directly instead of waiting on a transcript, fusing semantic and acoustic understanding for state-of-the-art end-of-turn detection across 14 languages. With v1, turn detection is a solved problem for agents...

And I have published a couple of guides that detail both turn detection and noise cancellation, explaining the options and choices available:

> **[LiveKit noise cancellation: what it is and how it works](https://livekit.com/blog/noise-cancellation)**
>
> How noise cancellation works in LiveKit, where it runs, the different models available, and what it costs.

> **[Configuring Turn Detection and Interruptions in LiveKit Agents](https://livekit.com/blog/turn-detection-and-interruption-handling)**
>
> A practical guide to configuring turn detection, endpointing, and interruptions in LiveKit voice agents

> [@Rajan\_kumar](#):
>
> @darryncampbell @CWilson guys any update or help you guys can provide me in this as I am getting this issue continuously.

“This issue” is the audio transcription is incorrect still?  
What is your current setup? I would have expected the recommendations from Pawel to be impactful.

---

<div class="post-metadata">

**Author:** ![Pawel\_Lach](https://sea1.discourse-cdn.com/flex001/user_avatar/community.livekit.io/pawel_lach/32/1127_2.png) [@Pawel\_Lach](https://community.livekit.io/u/Pawel_Lach)\
**Post date:** [July 8, 2026, 9:58am UTC](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251/20 "2026-07-08T09:58:14Z")

</div>

@Rajan_kumar if it works with the headset when the mic is close and it starts to fall apart when the mic is a bit further away it may be also due to the model nature. Quail Voice Focus 2.1 was made with the intention to works best with near-field speaker like talking on the headphones mic or directly to the microphone on the phone. We have just released Quail Voice Focus 2.2 that also works in the far-field mode, so it should work now correctly also in cases where the foreground speaker is a bit further away from the microphone. However, it’s not available on LiveKit yet, it should be there hopefully in a matter of days. Meanwhile you can also try regular Quail L and play with the enhancement level. Feel free to visit our Developer Platform and try it out there with either your pre-recorded audio files or even real-time trying to recreate the real-case scenario.

[Next page](https://community.livekit.io/t/built-in-laptop-mic-causing-incorrect-whisper-transcriptions/1251.md?page=2)
