ElevenLabs languages: Flash v2.5 has 32, Multilingual v2 29, v4 90+
ElevenLabs lists 32 languages for Flash v2.5, 29 for Multilingual v2 and 90+ for v4 and v4 Turbo. Check your markets against the model, then log it per job.

On ElevenLabs' models page, Flash v2.5 (eleven_flash_v2_5) lists 32 languages, Multilingual v2 lists 29, and v4 and v4 Turbo list 90+. If your campaign runs in more than 32 markets, Flash v2.5 cannot cover it, and which model you pick is decided by the language list before price or latency.
The same page gives Flash v2.5 a 40,000 character limit and roughly 75 ms latency, and gives v4 and v4 Turbo a 10,000 character limit. Those matter after the language check, not before it.
The model facts, as read on 2026-10-03
Everything in the table is from the ElevenLabs models overview. The page names the counts but the entry I read does not enumerate the languages, so the lists below are for you to fill from the live page.
| Model | Languages | Character limit | Other detail |
|---|---|---|---|
Flash v2.5 (eleven_flash_v2_5) | 32 | 40,000 | About 75 ms |
| Multilingual v2 | 29 | Not in the entry read | Not in the entry read |
v4 (eleven_v4) | 90+ | 10,000 | Expressive speech, voice cloning |
v4 Turbo (eleven_v4_turbo) | 90+ | 10,000 | Real-time variant |
Why the count is not the whole check
A language count says how many languages, not which ones. Two models with overlapping lists can still differ on the one language you need, so always test your own market codes against the live list rather than comparing totals. A larger count is also not a quality statement; the page does not rank output quality across languages.
When you localize a video, the voice also has to exist for that language. Treat the model, the language and the voice as one tuple and validate it before a batch, not after it.
Record the language on every job
Sume's job docs say a completed text-to-speech job records how its audio was made: the engine as model_id, the voice, the language, the output_format, and the settings it was synthesized with, each null when the request did not send it. That gives you an audit trail per market: you can list the jobs for a campaign and see which language each take used.
Sume's hosted MCP exposes a tts_create tool for this, per its tools page. When you need one gapless file per language, Timeline audio concatenates 1 to 20 Sume-hosted parts at a flat $0.01 per job according to the docs, with no re-synthesis.
A coverage check you can run
Fill the sets from the models page. The script refuses to run on empty sets, so an unfilled config fails loudly instead of passing everything.
MODEL_LANGS = {
"eleven_flash_v2_5": set(), # fill from the models page (32)
"eleven_v4": set(), # fill from the models page (90+)
}
def missing(model, markets):
langs = MODEL_LANGS.get(model)
if not langs:
raise RuntimeError(f"fill MODEL_LANGS[{model!r}] first")
return sorted(set(markets) - langs)
if __name__ == "__main__":
MODEL_LANGS["eleven_flash_v2_5"] = {"en", "es", "fr"}
print(missing("eleven_flash_v2_5", ["en", "fr", "sw"]))Decision order
- List the markets and the language code for each.
- Drop any model whose live language list misses one of them.
- Of what remains, check the character limit against your script length.
- Only then compare latency and price.
A note on the list you did not get
The models page lists the languages by name; this post gives only the counts because those are what I read in full. Pull the live lists into your config file and date them, then re-check them when ElevenLabs ships a new model, because the September 28 changelog shows the lineup moving quickly. A comparison that was true last month can be wrong now.
Also keep the character limit in view for long scripts: a localized script is often longer than the source, and a 10,000 character limit on v4 can split a script that fit in one request in the source language.
Sources
Related posts
More in Models
- Gemini 3.8 Flash TTS tops Hume's VoiceEQ board: run your own test
Hume's blog lists Gemini 3.8 Flash TTS atop its Real-World VoiceEQ board. Why a vendor-run board is only a lead, and how to run a blind A/B on your script.
- Gemini Omni Flash GA: extension and interpolation vs Sume's inputs
Gemini Omni Flash is generally available with extension and interpolation between images. What Sume's gemini-omni-flash-1.1 catalog entry documents instead.
- Gemini Omni Flash went GA Aug 27: five checks after a preview ends
Omni Flash entered public preview Jun 30 and went GA Aug 27 with extension and 360p-4K. Re-test these five limits before you reuse numbers from preview runs.
- HunyuanVideo 1.5 on 14 GB of VRAM: run locally or call an API
The HunyuanVideo 1.5 repo lists 8.3B parameters, 480p to 1080p and a 14 GB VRAM minimum with offloading. A local-run versus API checklist.
Written by Sume