Languages

10 languages a caller can hold a conversation in. 11 understood by the transcriber we ship, 15 scheduled languages plus Indian English speakable in a live call, 26+ detectable from audio.

Two-way is the number that mattersUnderstanding a language and being able to reply in it are different capabilities, and only the overlap lets someone have a conversation. That overlap is 10. The wider "understood" figures elsewhere in this documentation counted models that need an explicit language code, want 16kHz audio, or have no streaming path — none of which a live 8kHz call can use. Check the routing table below before promising a language to anyone.

Live-call routing table

Which streaming TTS model can speak each scheduled language. Anything showing none can be transcribed but not spoken in real time.

LanguageCodeUnderstandDetectSpeak
Assamese
অসমীয়া
as✓✓male & female
Bengali
বাংলা
bn✓✓male & female
Dogri
डोगरी
doi✓✓male & female
Gujarati
ગુજરાતી
gu✓✓male & female
Hindi
हिन्दी
hi✓✓male & female
Kashmiri
کٲشُر
ks✓✓not yet
Konkani
कोंकणी
kok✓✓not yet
Maithili
मैथिली
mai✓✓male & female
Marathi
मराठी
mr✓✓male & female
Nepali
नेपाली
ne✓✓male & female
Odia
ଓଡ଼ିଆ
or✓✓not yet
Punjabi
ਪੰਜਾਬੀ
pa✓✓male & female
Sanskrit
संस्कृतम्
sa✓✓male & female
Sindhi
سنڌي
sd✓✓not yet
Urdu
اردو
ur✓✓not yet
Kannada
ಕನ್ನಡ
kn✓✓male & female
Malayalam
മലയാളം
ml✓✓male & female
Tamil
தமிழ்
ta✓✓male & female
Telugu
తెలుగు
te✓✓male & female
Bodo
बड़ो
brx✓✓male & female
Manipuri
ꯃꯤꯇꯩ ꯂꯣꯟ
mni✓✓not yet
Santali
ᱥᱟᱱᱛᱟᱲᱤ
sat✓✓not yet
Cannot be spoken at allKashmiri, Konkani, Odia, Sindhi, Urdu, Manipuri, Santali. These can be transcribed and translated, but no deployed text-to-speech model has a voice for them, so they cannot be spoken — not mid-call and not to a file. To reply, translate into a language that does have a voice, or fall back to text.
What an agent can converse in: 10 languages, 20 preset voices, plus your own cloned onesMale and female for each of Hindi, Bengali, Marathi, Telugu, Kannada, Tamil, Malayalam, Gujarati, Punjabi and Indian English. There are another 18 voices for the nine languages we can speak but cannot transcribe — Assamese, Nepali, Sanskrit, Maithili, Bodo, Dogri, Bhojpuri, Magahi and Chhattisgarhi. Those 38 were all synthesised and quality-checked, and all 38 produced usable audio, but only the 20 above are offered to an agent, because the other nine cannot hear a reply.
Every count on this page is a language we will actually speak todayNothing here is counted on the strength of a demo or a roadmap. If a language appears, an agent can hold a call in it now, and you can hear both of its voices before you choose.

Beyond the scheduled languages

We also speak three widely-used non-scheduled languages that most vendors skip entirely:

LanguageCodeNative
Bhojpuribhoभोजपुरी
Magahimagमगही
Chhattisgarhihneछत्तीसगढ़ी

Quality is not flat

Coverage and quality are different things. Nobody — including the large commercial vendors — has good training data for every Indian language.

TierLanguagesWhat to expect
strongHindi, Tamil, Telugu, Bengali, MarathiShip these. Plenty of training data.
usableGujarati, Kannada, Malayalam, Punjabi, Odia, AssameseGood enough, test on your own audio first.
weakBodo, Santali, Dogri, Manipuri, Sanskrit, Kashmiri, Sindhi, KonkaniListed as supported, but the data does not exist to make them good. Do not promise equal quality.

Code-mixing and Hinglish

Most real Indian phone calls are not one language. They switch between a regional language and English inside a single sentence. That is the normal case, not an edge case.

Synthesis handles it: a sentence that mixes Hindi and English is spoken as one sentence, not as two accents stitched together. Transcription is the weaker side, and we would rather say so than let you discover it — a heavily mixed utterance is transcribed less reliably than a monolingual one. Closing that gap properly means training on real call recordings from traffic like yours.

Mid-call language switching

Supported, on by default, and the voice stays the same through it. A caller can open in Telugu, move to Hindi and finish in Tamil, and hear one person the whole way.

That last part took work and is worth knowing aboutVoices are defined per language, so the naive behaviour is that changing language changes the speaker and the caller feels handed to a colleague mid-sentence. lock_voice is on by default and holds the identity across the switch. Measured on a live Telugu → Hindi → Tamil call, similarity to the opening voice was 0.818 with it on and 0.437 with it off — where two takes of one real person score 0.747 and two different people score 0.213.

Telugu to Tamil is a reliable switch. Hindi to Urdu is not detectable by audio. See the accuracy table →

Cheapest accuracy win availableSet the language from your CRM record at call start. You know who you are dialling. That is right about 95% of the time, costs nothing, and beats detection. Use detection as the safety net.

All 26 language codes

CodeLanguageNativeFamilyScriptScheduled
asAssameseঅসমীয়াIndo-AryanBengali-Assamese✓
bnBengaliবাংলাIndo-AryanBengali-Assamese✓
doiDogriडोगरीIndo-AryanDevanagari✓
guGujaratiગુજરાતીIndo-AryanGujarati✓
hiHindiहिन्दीIndo-AryanDevanagari✓
ksKashmiriکٲشُرIndo-AryanPerso-Arabic✓
kokKonkaniकोंकणीIndo-AryanDevanagari✓
maiMaithiliमैथिलीIndo-AryanDevanagari✓
mrMarathiमराठीIndo-AryanDevanagari✓
neNepaliनेपालीIndo-AryanDevanagari✓
orOdiaଓଡ଼ିଆIndo-AryanOdia✓
paPunjabiਪੰਜਾਬੀIndo-AryanGurmukhi✓
saSanskritसंस्कृतम्Indo-AryanDevanagari✓
sdSindhiسنڌيIndo-AryanPerso-Arabic✓
urUrduاردوIndo-AryanPerso-Arabic✓
knKannadaಕನ್ನಡDravidianKannada✓
mlMalayalamമലയാളംDravidianMalayalam✓
taTamilதமிழ்DravidianTamil✓
teTeluguతెలుగుDravidianTelugu✓
brxBodoबड़ोSino-TibetanDevanagari✓
mniManipuriꯃꯤꯇꯩ ꯂꯣꯟSino-TibetanMeitei / Bengali✓
satSantaliᱥᱟᱱᱛᱟᱲᱤMundaOl Chiki✓
bhoBhojpuriभोजपुरीIndo-AryanDevanagari—
magMagahiमगहीIndo-AryanDevanagari—
hneChhattisgarhiछत्तीसगढ़ीIndo-AryanDevanagari—
en-INIndian EnglishIndian EnglishGermanicLatin—

Voices, tiers and measured accuracy at /docs/models. The live list of every voice is GET /v1/models, which is also what the dashboard's voice picker reads.