September 2026
|
6 min read

Ragini 2.0: A New Generation of Code-Mixed Indian Speech

Almost nobody in an Indian customer conversation speaks one language for a whole sentence. Ragini 2.0 is built for the sentence people actually say: an English word inside a Kannada clause, an amount, a date, a brand name, read by one voice, as one sentence, in English, Hindi, Kannada, Tamil and Telugu.

Aakash Gore
Text-To-Speech TTS Code-Mixing Indic Multilingual

Three reports have come out of this lab on Indic speech synthesis. Ragini set the quality bar across Indian languages. Ragini Pro measured it honestly against four commercial systems. Ragini Lite asked how frugal acceptable Hindi–English speech could be.

Code-mixing runs through all of it. It is what Indian customer conversations are made of, so every model in this line has had to speak it. Ragini 2.0 widens the language coverage and puts the join itself (how a sentence holds together where the language changes) at the centre of what it is built for and what we measure.

It is also a clear step up from Ragini 1.0. In a blind test where the listeners could not see which system they were hearing, 2.0 took the top rank on every voice tested, scoring 4.55 out of 5 against 1.0's 3.40. Pronunciation judged correct rose from 54% to 82%, and naturalness from 58% to 87%: the difference between a voice you tolerate and one you stop noticing.

In One Line

Ragini 2.0 reads a sentence that changes language halfway through as one sentence, same voice, no seam, in English, Hindi, Kannada, Tamil and Telugu.

Languages 5 en · hi · kn · ta · te
Mixed Pairs 4 each Indic language, with English
Named Voices 9 male and female

Most Sentences Aren't in One Language

Open any transcript from an Indian contact centre and count the sentences that stay in a single language. There are fewer than you expect. The usual pattern is one language carrying the sentence while English supplies the nouns: the product, the process, the document, the status. The speaker doesn't pause or change voice at the switch. Most of the time they don't notice it happened.

Real input: English words shaded

आपकी property listing approve हो गई है, अब ₹2,500 के featured plan से visibility बढ़ाइए।

ನಿಮ್ಮ site visit ಶನಿವಾರ ಬೆಳಿಗ್ಗೆ 11 ಗಂಟೆಗೆ confirm ಆಗಿದೆ.

உங்கள் rental agreement renewal அடுத்த மாதம் முடிவடைகிறது.

మీ security deposit మూడు working days లో refund అవుతుంది.

Linguists call this code-switching when a speaker alternates between languages across a boundary, and intra-sentential code-mixing when the languages sit inside the same clause, which is the case almost everywhere above. A model that speaks good English and good Kannada doesn't automatically read that English–Kannada code-mixed sentence well. The trouble is at the joins, and it shows up in four ways:

The Voice Changesspeaker-identity drift

The speaker sounds subtly different once the language switches, so one sentence comes out sounding like two people spliced together. The worst of the four, because it breaks the illusion of a person completely.

The Sentence Restartsprosodic discontinuity

A small pause and a fresh start at the switch point. The sentence stops sounding like a sentence and starts sounding like a list of fragments.

The Accent Is Wrongphonological adaptation · sub-phonemic transfer

English words read in a heavy American accent, or an exaggerated one. Real bilingual speakers say them in ordinary Indian English. That's the target.

The Script Confuses Ittext normalization · grapheme-to-phoneme (G2P)

English words spelled out letter by letter, or Hindi written in English letters, like aapka order bhej diya, read as though it were English.

One way to handle mixed text is to cut the sentence at every language boundary, send each piece to a different model, and join the audio back together. That approach guarantees the first two problems. Ragini 2.0 doesn't cut: a mixed sentence is spoken as a single sentence by a single voice, and the model works out the language from the text. Nothing needs to be tagged or split by whoever is calling it.

Ragini 2.0 Audio Showcase
Voices: Roohi · Sherin

Listen for the switch: each mixed sample should sound like one speaker:

Hindi + English 00:00

“आपकी property listing approve हो गई है, अब ₹2,500 के featured plan से visibility बढ़ाइए।”

Kannada + English 00:00

“ನಿಮ್ಮ site visit Saturday ಬೆಳಿಗ್ಗೆ 11 ಗಂಟೆಗೆ confirm ಆಗಿದೆ, ನಮ್ಮ representative ನಿಮಗೆ call ಮಾಡ್ತಾರೆ.”

Tamil + English 00:00

“நீங்க இந்த laptop எடுத்துட்டு போய் service-க்கு கொடுங்க.”

Telugu + English 00:00

“మీ home loan pre-approved అయ్యింది, property documents verify అయిన తర్వాత disbursement మొదలవుతుంది.”

Hindi only 00:00

“जी हाँ, आपका किराया मिल गया है, रसीद मैंने अभी भेज दी है।”

English only 00:00

“Sure, I can arrange a site visit for that three bedroom apartment on Saturday morning, and the builder will share the floor plan before you arrive.”

Four code-mixed samples and two single-language ones. Sherin reads the English and Hindi cards, Roohi the Kannada, Tamil and Telugu, each voice in the languages it was built for.

What Makes a Voice Sound Natural

"Natural" is the vaguest word in speech synthesis. On a clean, well-formed sentence almost every decent model now sounds human, so the word has stopped separating anything. For a voice agent, four specific things decide whether a voice works:

Table 1: What We Judge Results in Table 4
Quality What Goes Wrong Without It
Clean soundsignal fidelity Buzz, hiss or a metallic edge. The caller hears a machine within a second.
Sentence melodyprosody · intonation · pitch contour Every clause gets the same tune. Long sentences flatten into recitation and the emphasis lands on the wrong word.
Right tone for the jobregister A payment reminder read like an audiobook, or a warm greeting read like a legal notice.
Clear endingsturn-yielding cues · boundary tones Nothing signals the agent has finished, so the caller talks over it, or waits, and the silence feels like a dropped call.

The last one is usually left out of a TTS evaluation, and a conversational product can't do without it. Speech in a conversation isn't only listened to: it's taken turns with. The cues that tell a listener a turn has finished, such as a falling boundary tone or final-syllable lengthening, are what turn-taking research calls turn-yielding signals, and a voice that omits them is interrupted. A voice whose sentence endings are ambiguous produces a call full of interruptions and awkward gaps no matter how good each individual line sounds.

This is also where Ragini 2.0 differs from Ragini Lite. Lite is deliberately steady and even, exactly right for an OTP or a balance statement, and exactly wrong for a conversation, where the evenness that makes it dependable is what makes it sound like a recording. Ragini 2.0 gives that range back.

Names, Numbers and Amounts

The Ragini Pro report showed that real failures are narrow and harsh: a ten-digit account number read as one enormous quantity, NEFT pronounced as a word, a locality name mangled. These usually get filed as accuracy bugs. On a live call they are heard as the moment the customer realises they are talking to a machine.

Two mechanisms sit behind this. Text normalization decides how a written form is verbalized: how a date, an amount or an acronym becomes words. Grapheme-to-phoneme conversion, or G2P, decides how those words become sounds, which is where a transliterated name or an unfamiliar place name is won or lost. We treat both as part of how natural the voice sounds rather than as a separate category of bug, and we measure them on the same material. Account numbers, amounts, dates, acronyms and place names are read the way a person would read them out, and where that is still wrong, it counts against quality rather than against a checklist.

Voices

Nine named voices, male and female, chosen by name when you make a request.

Table 2: Voices by Language Ragini 2.0
Languages Voices
English · Hindi shrajay · siddharth · parmi · sherin · bhavya · shreya · saavi
Kannada · Tamil · Telugu amaya · parmi · roohi · bhagya · shrajay · siddharth

A name that appears in both rows isn't yet confirmed to be the same person in both. That check is still outstanding.

Speed

None of the above matters in a conversation if the reply arrives late. Ragini 2.0 starts sending audio while the rest of the sentence is still being produced, so the number that counts is how long the caller waits before hearing anything, not how long the whole sentence takes.

Table 3: Response Speed Single stream
Languages Wait Before First Audio ↓ Faster Than Real Time ↑
English · Hindi 0.12 s 3.4×
Kannada · Tamil · Telugu 0.12 s 3.4×
Benchmark Note: Draft

Both language sets measure the same, which is expected: they are the same model at the same size, differing only in which voices they carry. These are single-stream measurements on one machine and are indicative rather than a guarantee. Behaviour under real call volume is a separate question.

What the Numbers Say

In a blind listening test on code-mixed Dravidian speech, with ElevenLabs v3 included as an outside reference:

Table 4: Blind Listening Test, Dravidian 18 sentences · 7 voices · blind
System Pronunciation ↑ Naturalness ↑ Quality (0–5) ↑
Ragini 2.0 0.82 0.87 4.55
ElevenLabs v3 (reference) 0.57 0.88 3.94
Ragini 1.0 0.54 0.58 3.40

Ragini 2.0 took the top quality rank on all seven voices, and in all three languages separately. Against Ragini 1.0 the margin is not subtle: a full point and a fifth on a five-point scale, with pronunciation errors roughly halved. The interesting column is not the one it wins. On naturalness it and ElevenLabs are level, 0.87 against 0.88, a tie. The gap is pronunciation, where it leads by 0.24: the reference system sounds perfectly good and mispronounces the Indian-language content roughly twice as often. That is the failure mode Ragini Pro described, showing up again in a blind test.

Does mixing languages inside a sentence make the speech harder to understand? It does not:

Table 5: Speak-and-Transcribe Accuracy service-domain sentences · numeral-free subset
Sentences Word Errors ↓ Character Errors ↓ English Words Kept ↑
Code-mixed 0.21 0.03 94%
Single-language (same voices) 0.21 0.09 n/a

Mixed and single-language sentences score the same, 0.21 against 0.21. Changing language mid-sentence costs nothing measurable, which is the claim this article is built on. Around 94% of embedded English words survive the round trip intact, and separate checks found no added pause at the switch and no drift in the speaker's voice across it.

Numbers and account details are read as a person would read them. ₹1,20,500 comes out as one lakh twenty thousand five hundred rupees, and a ten-digit reference number is spoken digit by digit rather than as one enormous quantity.

Broken out by language, on a public benchmark of everyday spoken sentences, the same sixty utterances in each language:

Table 6: Accuracy by Language conversational benchmark · 60 parallel utterances each
LanguageWord Errors ↓Character Errors ↓
English0.070.03
Hindi0.160.19
Tamil0.210.08
Kannada0.230.15
Telugu0.350.22
Average0.200.14

Dates, amounts and shortforms are left out of the score. A written "5 am" spoken correctly as "five a m" is a large error against the written form and tells you nothing about the voice, so the words are scored and the conventions are not. What remains is ordinary spoken language, and Ragini 2.0 holds together across all five languages on it. The average weights each language equally rather than by word count, so no single strong language can carry the others.

Word and character errors rank the languages differently, and the gap is informative. In the Indic scripts one wrong vowel sign fails an entire word while barely moving the character count, so a word score can look far worse than the speech actually sounds. Character error rates stay low throughout, between 0.03 and 0.22, which is the better indication of whether a listener would follow the sentence.

The same utterances, spoken by other systems and scored identically:

Table 7: Word Errors, Compared identical text · same scorer
SystemEnglishHindiKannadaTamilTeluguAverage ↓
Ragini 2.00.070.160.230.210.350.20
Sarvam bulbul v30.100.180.220.250.310.21
Ragini 1.00.120.190.300.270.370.25
ElevenLabs v30.130.180.420.320.380.28

Ragini 2.0 posts the strongest average of the four, and leads outright on English, Hindi and Tamil. Character errors rank it first as well, at 0.14 against 0.15 for Sarvam bulbul v3, 0.15 for Ragini 1.0 and 0.16 for ElevenLabs v3.

Against Ragini 1.0 the gain is across the board: word errors fall in every one of the five languages, and by almost a fifth on the average. Against the commercial reference the widest margin is Kannada, where ElevenLabs v3 runs close to double our word error rate. This measure is dominated by how legible a voice is to a speech recogniser rather than by how good it sounds to a person, which is why the blind listening test above separates the two generations far more decisively than the averages here do. Where humans did the judging, 2.0 won on every voice.

In Conclusion

Ragini 2.0 was built for the sentence Indian customers actually say, where one language carries the clause and English supplies the nouns. On that material it holds: a mixed sentence and a single-language one score the same, around 94% of embedded English words survive intact, and the joins show no added pause and no drift in the speaker's voice across them. Changing language mid-sentence costs nothing measurable.

Against Ragini 1.0 the step up is visible on every measure taken. In a blind test where the listeners could not see which system they were hearing, quality rose from 3.40 to 4.55 out of 5 and 2.0 took the top rank on every voice tested; pronunciation judged correct went from 54% to 82% and naturalness from 58% to 87%. On the conversational benchmark word errors fall in all five languages.

Against outside systems it posts the strongest average of the four tested on both word and character errors, and on naturalness it is level with the commercial reference while leading it clearly on pronunciation. Five languages, nine named voices, and a response fast enough to answer inside a live call.

One voice, five languages, and no audible seam where the sentence changes language.

Ragini 2.0 isn't on general API access yet. Try it in the playground on the ConvoZen developer portal, or contact the research team at contact@convozen.ai to evaluate it for a voice agent or enterprise workload.

© 2026 ConvoZen Research. All rights reserved.