Summary
A single LANGUAGE setting currently controls BOTH the interface language and the Whisper recognition language. Choosing an interface language therefore also forces Whisper to transcribe in that language. Splitting these into two independent settings, plus an "auto-detect" option for recognition, clearly improves accuracy for non-English and mixed-language dictation.
Problem
config.LANGUAGE is passed straight to WhisperModel.transcribe(language=...) and also selects the UI locale, so the two are coupled:
- A user whose interface is English but who dictates in another language has Whisper forced to English, which mis-transcribes or over-anglicizes the speech.
- Someone who switches between two languages (for example dictating sometimes in German, sometimes in English) cannot win: any single fixed language mis-handles the other.
Proposed change
- Add a separate
WHISPER_LANGUAGE setting for recognition, independent of the UI LANGUAGE.
None = auto-detect per clip (recommended default): faster-whisper detects each utterance's language instead of forcing one, ideal for users who switch languages.
"de" / "en" / ... = force a specific recognition language.
- Pass
WHISPER_LANGUAGE (not LANGUAGE) to transcribe().
- Optional UI: a "Recognition language" dropdown in Settings (Auto / languages), separate from the interface-language dropdown, persisted like the other settings. Since the transcriber can read it per call, it applies without a restart.
- Optional: log the detected language per transcription (faster-whisper returns it in the
info object), so users can see what was recognized.
Backward compatibility
Default WHISPER_LANGUAGE = None (auto-detect). Existing users are unaffected, except that recognition is no longer pinned to the interface language, which is exactly the fix.
Summary
A single
LANGUAGEsetting currently controls BOTH the interface language and the Whisper recognition language. Choosing an interface language therefore also forces Whisper to transcribe in that language. Splitting these into two independent settings, plus an "auto-detect" option for recognition, clearly improves accuracy for non-English and mixed-language dictation.Problem
config.LANGUAGEis passed straight toWhisperModel.transcribe(language=...)and also selects the UI locale, so the two are coupled:Proposed change
WHISPER_LANGUAGEsetting for recognition, independent of the UILANGUAGE.None= auto-detect per clip (recommended default): faster-whisper detects each utterance's language instead of forcing one, ideal for users who switch languages."de"/"en"/ ... = force a specific recognition language.WHISPER_LANGUAGE(notLANGUAGE) totranscribe().infoobject), so users can see what was recognized.Backward compatibility
Default
WHISPER_LANGUAGE = None(auto-detect). Existing users are unaffected, except that recognition is no longer pinned to the interface language, which is exactly the fix.