How accurate is Ukrainian speech to text with local Whisper?
In the Whisper paper itself (arXiv:2212.04356), the large-v2 model scores 8.6% word error rate on Ukrainian FLEURS. That places Ukrainian alongside Turkish at 8.4% and Swedish at 8.5% - genuinely among the stronger languages outside Western Europe, and well ahead of Czech at 13.3% in the same table.
You may see 8.3% quoted elsewhere for Ukrainian. That figure does not come from the paper's FLEURS table, which reports 8.6%. We are using the primary source.
As always this is clean read speech and describes a floor. The Whisper paper itself establishes a strong relationship between how much training data a language had and how well it performs, and Ukrainian sits well below the major Western European languages on that axis - which is also why several community Ukrainian fine-tunes exist. Accuracy tracks model size far more than local versus cloud; use the largest model you can run.
What makes Ukrainian genuinely hard for speech models
Automatic language detection is the main practical hazard. Whisper identifies the language from roughly the first thirty seconds of audio and never revisits that decision, and its identification accuracy across its full language set is around 65% even on the largest model. For Ukrainian this bites harder than for most languages: Ukrainian, Russian and Belarusian share most of the Cyrillic alphabet, and the distinctive Ukrainian letters may simply not occur in a short phrase. Tag the audio wrong and the whole passage is decoded under the wrong language.
The fix is to choose the language yourself, and that is exactly what SnailText does. Ukrainian is an explicit selection in the dictation language list. This is not a clever feature on our part - it is the documented recommendation, and it is available in the app. It is also the single most useful thing on this page.
Mixed Ukrainian-Russian speech is outside what the model can do. Whisper assumes one language per window, so surzhyk and habitual code-switching are not supported. A model weighted toward Russian can render Ukrainian speech as broken Russian text, and no setting on our side prevents that.
What we actually offer for Ukrainian, and what we do not
For Spanish, German, French, Portuguese and Dutch, SnailText ships a language-specific prompt. For Ukrainian we do not. There is no Ukrainian tuning layer, no Ukrainian cleanup pass and no Ukrainian fine-tune. We have not solved Russian-Ukrainian confusion and will not claim to - our contribution is narrower and real: the language is something you set, not something the model guesses.
One concrete thing to watch for: Russian-only letters appearing in your Ukrainian output is a direct signal that the model has drifted into Russian. If you see them, check that the dictation language is set to Ukrainian.
What SnailText gives you otherwise is the best open Ukrainian speech model running entirely on your own hardware, wired into a global hotkey that pastes text at your cursor in any app. The audio is processed in RAM and never uploaded, so the privacy guarantee is architectural rather than a policy - and for a good part of this audience that is not an abstract concern. It also works with no connection at all.