Which model transcribes your language, and which vendor is rounding up
By Andrey ChmerevI build Kekoso, which ships all three of these models, so the coverage question is one I had to answer to build the language picker. The count in the SenseVoice section comes from reading the vocabulary file of the exact build my app installs; the script is in the article so you can run it on yours.

There are two different questions hiding behind “can it do my language”, and the answer to one of them is no.
Transcription writes down what was said, in the language it was said in. Spanish audio gives you Spanish text. Translation turns it into another language. A lot of people arrive looking for the second — “translate Spanish audio to English text” is a busier search than “transcribe Spanish audio” — and local transcription apps, mine included, do the first only.
If translation is what you need, the order matters: transcribe first, then translate the text with a tool built for that. Why that split beats one-pass translation — including the Whisper model that silently ignores the translate flag — is its own article. Doing it in one step means a machine translating something it may have misheard, with no way for you to see which of the two went wrong.
With that out of the way, here is what actually covers what.
Three models, three different maps
| Languages | Covers | Speed | |
|---|---|---|---|
| Whisper (large-v3-turbo, small) | 99 | Nearly everything, including Arabic, Hindi, Hebrew, Thai, Greek | Slowest |
| Parakeet TDT v3 | 25 | European, including Russian and Ukrainian | 6× faster than Whisper |
| SenseVoiceSmall | 5 | Chinese, Cantonese, Japanese, Korean, English | 12× faster than Whisper |
Parakeet’s 25: Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Russian, Ukrainian.
The speed differences are measured, on one machine, and they are large enough to change which model you want for a long recording.
The vendor count that does not survive a look inside
SenseVoice is advertised by its vendor as supporting 50+ languages. The model card for the build my app installs says so too.
I checked the vocabulary, because the language a model can write is bounded by the characters it has tokens for. This is the file the app downloads through FluidAudio, and the check is four lines of Python:
import json, unicodedata, collections
v = json.load(open("vocab.json"))
scripts = collections.Counter()
for token in v:
for ch in token:
if ch.isalpha():
scripts[unicodedata.name(ch, "?").split()[0]] += 1
print(len(v), scripts.most_common())
The result: 25,055 tokens, and 100 language tags — <|ru|>, <|ar|>, <|bn|>, <|bo|> and the rest are all in there. The characters those tokens are built from are another story:
| Script | Characters in the vocabulary |
|---|---|
| Latin | 58,888 |
| CJK (Chinese) | 10,124 |
| Hangul (Korean) | 9,039 |
| Katakana | 88 |
| Hiragana | 84 |
| Cyrillic | 0 |
| Arabic | 0 |
| Devanagari | 0 |
| Greek, Hebrew, Thai | 0 |
The tag for Russian exists. The letters to write Russian with do not. In practice the model does not refuse — it transliterates, and Russian speech comes back spelled out in Latin characters, which is worse than a refusal because it looks like output.
So the honest number for this model is five languages, not fifty, and that is what my app’s model card says. A language tag in a vocabulary is a label, not a capability.
By language, then
The practical questions look like transcribe Japanese audio to text, transcribe Russian audio to text, transcribe Korean audio to text — and the answer differs by model, not by app.
Spanish, French, German, Italian, Portuguese, Polish, Dutch and the rest of Europe. Both Parakeet and Whisper. Parakeet is roughly six times faster on the same machine; Whisper is more accurate. For a two-hour recording that is the difference between four minutes and twenty-five, so the choice is real.
Japanese, Chinese, Cantonese, Korean. To transcribe Japanese audio, or Korean audio, SenseVoice was built for exactly this set and is the fastest of the three by a wide margin. Whisper covers them too and is more accurate. Cantonese is the interesting one: very few local models handle it at all, and SenseVoice names it explicitly.
Russian and Ukrainian. To transcribe Russian audio, Parakeet or Whisper. Not SenseVoice, whatever its language tags suggest — this is the case where the vocabulary check above stops being trivia and starts costing you a transcript.
Arabic, Hindi, Hebrew, Thai, Greek and the long tail. Whisper, and only Whisper of these three. This is where its 99 languages earn the speed penalty, and where a fast model is not a trade-off but simply the wrong tool.
Greek is worth a note: Parakeet lists it, so it is covered by two of the three.
English words inside another language
This is where accuracy drops most, and it is not a language-coverage problem. A German sentence with three English product names in it, a Spanish call full of English technical terms, a Japanese meeting where the API endpoints are read out in English — every model does something slightly wrong here, and the mistakes are the words you care about most.
Switching models does not fix it, because it is not a model gap. What fixes it is a custom vocabulary applied after recognition: you list the terms, and they come out spelled the same way every time regardless of what the model heard. That works identically in every language, which is why it is the answer here rather than “pick the bigger model”.
That fix is measurable rather than theoretical: on one folder of recordings a custom vocabulary took word errors from 12.5% to 4.0%.
How to pick, in one paragraph
If your language is outside Europe and outside the CJK set, the choice is made for you: Whisper. If it is European, start with Parakeet and move to Whisper if the accuracy on your material is not good enough — that order saves the most time. If it is Chinese, Japanese, Korean or Cantonese, start with SenseVoice for the same reason. And in every case, set the language explicitly instead of letting detection guess, because a wrong guess costs a full pass over the audio and sometimes produces confident nonsense rather than an error.
Kekoso, which I build, ships all three and shows the measured accuracy and speed on each model card, along with the caveat above, before you download anything. The coverage of files and formats is a separate question from the coverage of languages, and both are on their own pages for that reason.
Language lists come from the model vendors. The vocabulary count was produced by the script above, run on the SenseVoiceSmall int8 build installed by FluidAudio, on 4 September 2026.
Questions people ask
How do I transcribe Spanish audio to text?
Any of the three local model families handles Spanish: Parakeet TDT v3 covers it among its 25 European languages and is the fastest, Whisper covers it among 99 and is the most accurate, SenseVoice does not. Point a local transcription app at the file and pick the language explicitly rather than leaving detection to guess — a wrong guess costs a whole pass over the audio.
Can these models translate Spanish audio into English text?
No, and that is the most common mistaken expectation in this area. Transcription writes down what was said in the language it was said in. Whisper does have a translate mode in its original form, but a transcription app that does not expose it — mine does not — gives you Spanish text from Spanish audio. Translation is a second step with a different tool.
Which model is best for Japanese, Chinese or Korean?
SenseVoiceSmall was built for exactly this set — Chinese, Cantonese, Japanese, Korean and English — and it is the fastest of the three by a wide margin. Whisper also covers all of them within its 99 languages and is more accurate at the cost of speed. Parakeet covers none of them: its 25 languages are European.
Does SenseVoice really support 50+ languages?
Its vocabulary says otherwise. The build shipped through FluidAudio has 25,055 tokens and 100 language tags, but the characters in those tokens are Latin, CJK, Hangul, Katakana and Hiragana only — zero Cyrillic, zero Arabic, zero Devanagari. The tag for Russian exists; the characters to write Russian with do not. Speech in those languages comes back transliterated into Latin.
What can transcribe Russian or Ukrainian audio?
Parakeet TDT v3 lists both among its 25 languages, and Whisper covers them within its 99. SenseVoice cannot write either, despite carrying language tags for them. For Arabic, Hindi, Hebrew, Thai and Greek the answer is Whisper alone of these three.
What happens with English words inside another language?
Technical terms, brand names and borrowed words inside a non-English sentence are where accuracy drops most, and no model handles it perfectly. The practical fix is not a different model but a custom vocabulary applied after recognition, which rewrites the handful of terms that matter to you consistently — measured on one folder, that took word errors from 12.5% to 4.0%.