Why my Polish dictation came out in English

epistemic status

Confident about the diagnosis — verified against Handy's own debug log and confirmed in both directions with a second model.

Dictating Polish into Handy was coming out as English. Not a translation feature — a silently forced decoder language.

Handy’s debug log, on every dictation with the Cohere model:

Language intent 'auto' resolved to 'en' for model 'cohere-transcribe-03-2026-Q5_K_M.gguf'
transcribe-cpp run: task=Transcribe, language=Some("en"), initial_prompt=false
ruled out

selected_language was auto and translate_to_english was false. Both settings were correct — the substitution happens somewhere else.

The cause is the model’s own capability declaration, embedded in Handy’s binary catalog:

"id": "handy-computer/cohere-transcribe-03-2026-gguf",
"languages": ["en","fr","de","es","it","pt","nl","pl","el","ar","ja","zh","vi","ko"],
"capabilities": { "streaming": false, "translate": false, "lang_detect": false }

lang_detect: false. There is no detection to run, so Handy substitutes en and pins the decoder to English. Polish audio into an English-only decoder comes out as an English paraphrase, and it degrades badly on top of that — some clips collapse into the model repeating the same phrase several times over.

I confirmed it in both directions. Swapping in a model that declares lang_detect: true, the substitution never happens and Polish stays Polish.

The accuracy-first models here genuinely can’t auto-detect, so the fix isn’t asking Handy to try harder. It’s choosing the language explicitly, per dictation: a small script restarts Handy with the right model and language pinned depending on which of three profiles is active (Polish, English, or a mixed auto-detecting one), and refuses to ever pair auto with a model whose catalog entry says it can’t detect language — which is exactly the combination that caused this in the first place.

See also the speech-to-text note for the rest of this setup.