Vendors Say They Support 99 Languages. They Don't.
Voice-AI vendors compete on language counts like phone makers once competed on megapixels. Their own docs tell a quieter story: 'supported' is a coverage word, and the floor it hides is a word error rate under 50% — one word wrong in every two.
Every voice-AI landing page leads with a number. 99 languages. 100+. 147. We went looking for what that number means once you send it real audio. It turns out “supported” is not a quality claim. It is a coverage claim, and the floor is lower than anyone says out loud.
The most honest sentence in the industry is buried in a Microsoft Azure doc describing OpenAI’s gpt-realtime:
“While the underlying model was trained on 98 languages, OpenAI only lists the languages that exceeded <50% word error rate (WER)… The model returns results for languages not listed but the quality will be low.” — Azure Voice Live docs
So the bar for the list is a word error rate under 50%: one word wrong in every two. Anything below that bar still returns text, still bills, still demos. That is the whole article. The rest is evidence.
The gap
Each vendor’s headline sits next to the count its own docs actually stand behind. AssemblyAI’s “99 languages” is 6 on its current model; the other 93 fall back to the older one. Resemble cites 23, 100, and 142 across three different pages. Of the 24 vendors we catalogued, three publish per-language WER. The rest give you one aggregate number or nothing — because a per-language table would make “99 languages” indefensible.
The cliff
The academic benchmarks stopped pretending. They report the worst-language error rate, not an average, because that is the number that decides whether a stack ships in a given market.
Whisper large-v3 stays under 10% WER on roughly 30 languages, then falls off. By Khmer, Lao, Burmese, Sinhala, and Amharic you are at 40–55%. The Whisper paper says why in one line: the amount of training audio for a language predicts its accuracy. Pashto is the extreme — zero-shot WER runs 90% to 297%, and the medium model hits 461%, meaning it inserts more words than the reference contains. It is hallucinating, not transcribing.
The field has formally given up on averages: the 2025 Interspeech challenge now scores models on their worst-performing 15 languages. The long tail is the benchmark now.
Round numbers: about 20–30 languages where ASR is production-ready, another 30 or so workable with cleanup, and a long tail where “supported” means the model returns characters when you send it sound.
What it looks like in production
The benchmarks give you the shape of the cliff. GitHub issues tell you how it feels at the bottom.
Whisper outputs Hindi audio in Urdu or Persian script, language correctly detected and text rendered wrong (#1662, open since 2023). It was trained partly on YouTube subtitles, so in some languages it transcribes the subtitles that were never subtitles — a Vietnamese clip comes back as a request to subscribe to a channel. And it breaks quietly: Deepgram’s Chinese stopped working overnight in March 2025, and Whisper’s API silently broke Malayalam, Nepali, and Telugu in October 2024. Both teams heard it from users first.
TTS speaks the language with an American accent
Here the model says the right words but says them wrong. The canonical bug: in Spanish, the number 11 comes out as “eleven” instead of “once”, because numbers pass through English normalization before the voice sees them (ElevenLabs #253). Native speakers reacting to the ElevenLabs v3 launch on Hacker News were blunt: the Russian was “absolute murder of the Russian language,” the French “sounded like an Alabaman who took a semester of college French,” the Norwegian “literally just Danish.”
Listening tests confirm it. A 35-listener study (ICLR 2024) scored naturalness for the same six languages in default multilingual mode versus a model tuned per language:
Tamil, which vendors routinely list as supported, comes out of the box at 2.12 — below “fair.”
S2S gets weird
Speech-to-speech models fail in ways a cascaded stack never would. OpenAI’s Realtime API infers a language from names: ask for Anastasia and it answers in Russian, ask for Amir and it switches to Hebrew. System prompts telling it to ignore names were bypassed. Non-English input also trips the content filter where the same audio in English passes.
The exception that proves the rule is Sesame, whose README simply says its non-English ability “likely won’t do well.” It is the only vendor we found whose docs match the behavior.
What “supported” should mean
Five things, none of which a single number captures:
- Per-language WER, on a public test set (Common Voice or FLEURS), not the vendor’s own audio.
- Per-language MOS, with a documented listener panel.
- Behavior under code-switching — does it transcribe, translate, or collapse?
- Script and dialect coverage, explicit. Arabic is a family, not a language. So is Mandarin.
- No silent English fallback in numbers, dates, or proper nouns.
If you are shipping today: pick the five to ten languages you actually need, benchmark them on your own audio, budget for per-language text normalization before the TTS, and run a weekly regression on a fixed audio bank — because vendors break languages without telling you.
The verdict
Voice AI is in its megapixel phase. Everyone competes on one big number because no shared benchmark forces per-language disclosure, and without disclosure there is no penalty for the gap between the marketing and the model. Headline counts are noise. The signal is per-language WER, per-language MOS, and per-language behavior — and almost nobody publishes it. Until they do, we run our own benchmarks. So should you.