MAI-Voice-2.1 has 23 languages, 26 locales, 28 codes: which to quote

Microsoft says 23 languages and 26 locales; OpenRouter lists 28 codes and says 30+. Quote 23 languages, and use Python to turn the 28 codes into 23.

4 min readSume
All posts

Quote 23 languages. Microsoft's launch post says 23 languages and 26 locales, the OpenRouter page for the Flash model lists 28 locale codes yet says "30+ languages", and the 28 codes collapse to exactly 23 languages.

The four numbers

Different pages count different things, so a headline number depends on the page you read.

Counts for the MAI-Voice-2.1 family (read 2026-10-05)
SourceNumberWhat it counts
Microsoft launch post23 languages, 26 localesLanguages and regional variants
Microsoft model page23 languagesLanguage list
OpenRouter Flash page, codes28Locale codes such as en-US, en-GB, en-IN, es-ES, es-MX
OpenRouter Flash page, text30+ languages, 140+ voicesMarketing text, not matched by the code list

28 codes to 23 languages

Take the primary subtag of each code. English has four codes (en-AU, en-GB, en-IN, en-US), Spanish two (es-ES, es-MX), Portuguese two (pt-BR, pt-PT), and the other 20 codes are one each, which gives 28 codes and 23 languages.

codes = """cs-CZ da-DK de-DE en-AU en-GB en-IN en-US es-ES es-MX fi-FI
fr-FR hi-IN hu-HU id-ID it-IT ko-KR nb-NO nl-NL pl-PL pt-BR pt-PT
ro-RO ru-RU sv-SE th-TH tr-TR vi-VN zh-CN""".split()
langs = {c.split("-")[0] for c in codes}
print(len(codes), len(langs))

Which to put on a slide

Use 23 languages and cite Microsoft's model page. Use 28 only when you mean locale codes on OpenRouter, and avoid 30+ because the same page's code list does not support it. When you compare with Sume, compare language lists, not locale counts: Sume's voice library has 16 language tags.

Limits

Counts change as pages are updated. The figures here were read on 2026-10-05, and I did not test any voice.

Sources

Related posts

More in Models

All Models posts

Written by Sume