Voice dictation deletes/rewrites previous word when switching language mid-sentence (PT/EN code-switching)

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 28, 2026

Summary

Voice dictation (/voice) is locked to a single language setting for the whole session, with no auto-detect and no multi-language support. This was already requested and closed as "not planned" in #36908 and #58062. This issue is about a distinct, more disruptive symptom of the same root cause that I believe deserves separate tracking: when a word from a different language is spoken mid-sentence, the transcription engine doesn't just mis-transcribe it, it retroactively deletes or rewrites the previously spoken word as it re-decodes the streaming buffer.

Who this affects

This is an everyday, essential-use issue for Brazilian developers (and likely other non-English-speaking dev communities). We speak Portuguese as our primary language, but constantly mix in English technical terms mid-sentence, things like "commit", "branch", "endpoint", "deploy", "pull request", "hook", "async", class/function names, etc. This isn't an edge case, it's how technical Portuguese is normally spoken. Since dictation forces a single fixed language, whichever one isn't currently selected gets partially erased whenever it shows up mid-sentence, making dictation unreliable for a very large chunk of our day-to-day usage.

Steps to reproduce

  1. Set language to portuguese (or pt) via /config or settings.json.
  2. Start /voice dictation.
  3. Speak a sentence that mixes Portuguese and an English technical term mid-sentence, e.g. "vamos revisar o pull request antes do deploy".
  4. Observe that the English word(s) get deleted or silently rewritten as the engine continues decoding, instead of being transcribed as spoken.
  5. The same happens in reverse with language set to en and a Portuguese word spoken mid-sentence.

Why this is different from #36908 / #58062

Those issues ask for full multi-language/auto-detect support, understandably a bigger feature ask, and were closed as not planned. This issue isn't asking for auto-detection of a whole spoken language. It's flagging that the current single-language behavior actively destroys already-spoken content instead of just mis-transcribing the out-of-language word or leaving it as-is. Even a partial mitigation (e.g. don't retroactively delete/rewrite previously finalized tokens when an out-of-vocabulary word appears; keep the raw ASR guess instead of silently dropping it) would meaningfully improve usability without requiring full multi-language detection.

Related issues

  • #36908 (multi-language dictation support, explicitly mentions Portuguese + English as the use case; closed "not planned")
  • #58062 (multilingual / auto-detect language for /voice; closed)
  • #52384, #47806 (dictation ignores/mishandles language setting)
  • #66001, #69936 (language selector / separate language setting requests)

Environment

  • Claude Code voice dictation (/voice)
  • language setting configured via /config / settings.json

View original on GitHub ↗