Evalgent
Back to Blog
Voice AI Evaluation

How to Test Multilingual Handling in Voice Agents

Deepesh Jayal
12 min read
How to Test Multilingual Handling in Voice Agents

# How to test multilingual handling in voice agents

Quick answer

To test multilingual handling in voice agents, you script whole calls in each language and score behavior, not components. Check that the agent detects the caller's language, replies in it, honors a mid-call switch, handles code-switching, never drifts back to English, and transfers when it cannot serve a language.

A Spanish-speaking caller says "hola" and the agent answers in English. It is polite, fast, and completely wrong. The words were transcribed correctly. The voice sounded fine. The agent still failed, because multilingual handling is a behavior, not a score.

Most teams test the parts and skip the whole. They measure per-language accuracy, pick a speech-to-text engine, and choose a natural-sounding voice. Then the assembled agent greets a bilingual caller and does something none of the components predicted. It answers in the wrong language, switches when it should not, or drifts back to English three turns after the caller asked for Spanish.

This post is about testing the assembled agent's end-to-end multilingual behavior on real calls. It sits on top of three companion pieces: multilingual accuracy covers per-language word error rate, multilingual speech-to-text covers recognition, and multilingual text-to-speech covers the voice. Those measure components. This measures the call.

Why component tests miss multilingual failures

A voice agent is a pipeline. Speech-to-text turns audio into text. A model decides what to say. Text-to-speech speaks it. Each part can pass its own test and still combine into a broken conversation.

The reason is language identification. Deciding which language the caller is speaking is its own step. It can be right at "hello" and wrong at "one moment please." A component test never sees this, because it feeds the model one clean language at a time.

Real callers are not that tidy. In the United States, tens of millions of people speak a language other than English at home, per Census data. Many are bilingual and mix languages inside one sentence. That mix is what breaks agents, and it is exactly what component tests exclude.

> Multilingual handling: the end-to-end behavior of a voice agent across the languages it serves. It covers detecting the caller's language, replying in it, honoring switches, and falling back gracefully when it cannot help.

The distinction between component accuracy and agent behavior mirrors the difference between testing and evaluation. You can unit-test each model. You still have to evaluate the conversation.

The seven multilingual behaviors worth testing

Multilingual handling is not one skill. It is a set of behaviors, each with its own failure mode and its own test. Skip any one and you ship a gap.

The table below maps each behavior to how it breaks and how to catch it. Treat it as your test plan, not a glossary. Every row is a set of calls you script and score.

Behavior to verifyCommon failure modeHow to test it
Detect caller's languageAnswers in English no matter the greetingOpen calls in each language; check the first agent turn matches
Reply in the right languageDetects Spanish, then replies in EnglishScore every agent turn for language, not just the first
Honor a mid-call switchCaller asks for Spanish; agent stays in EnglishStart in one language, request another mid-call, verify the switch
Handle code-switchingOne mixed sentence confuses the whole turnFeed sentences that blend two languages; check intent and reply
Stay in language (no drift)Correct for two turns, then reverts to EnglishRun long calls; flag the first turn that drifts
Language for names and numbersReads a Spanish phone number in English digitsGive names, dates, and numbers; check spoken form per language
Graceful fallback and transferDead air or English error when language unsupportedCall in an unsupported language; verify a clear handoff

Language detection

The first job is deciding what the caller speaks. Get this wrong and every later turn is wrong too. Test it by opening calls with short, ambiguous greetings in each language. "Hola." "Aló." A single word should be enough to route correctly.

Replying in the right language

Detection and response are separate. An agent can detect Spanish and still reply in English, because the reply language is a different setting. Score the language of every agent turn. One correct greeting followed by English answers is still a failure.

Honoring a mid-call switch

Callers change languages. A caller may open in English, then say "¿podemos seguir en español?" The agent must switch and stay switched. Test this explicitly. Start each call in one language and request another partway through.

Code-switching within a sentence

Code-switching is mixing two languages in one utterance. "I need to pagar mi factura." A human agent handles this without blinking. Many voice agents lose the intent, answer in the wrong language, or ask the caller to repeat. Build test cases that blend languages inside a single sentence.

No language drift

Drift is the sneaky one. The agent starts in Spanish, handles two turns, then quietly reverts to English on turn three. This often happens after a tool call or a scripted disclosure written only in English. Run long, multi-turn calls and flag the first turn where the language slips.

Names, numbers, and disclosures

Getting the language right is not enough if the details are wrong. A phone number, a date, a dollar amount, or a legal disclosure must be spoken in the caller's language and format. This is a localization problem, and it is easy to miss. Test that numbers, names, and required disclosures render correctly per language.

Graceful fallback and transfer

No agent serves every language. What matters is what happens at the edge. When a caller speaks a language the agent cannot handle, it should say so clearly and transfer, not stall or answer in English. This is fault tolerance applied to language. A warm transfer beats dead air every time.

Building a multilingual test set from real calls

Scripted happy paths in perfect Spanish will pass. They also prove nothing, because real callers do not talk that way. Your test set has to reflect how people actually call.

Start with your own recordings. Pull real calls in each language you serve. Note where callers switched, mixed, or spoke with an accent the agent struggled with. Accent handling and language detection fail together often, so keep accented samples in the set.

Then design cases across four dimensions. First, the entry language: which language the caller opens in. Second, switches: whether and when they change languages. Third, code-switching: sentences that blend languages. Fourth, edge languages: ones the agent should decline and transfer.

Do not lean on machine translation to generate test prompts. Translated English reads like translated English. It misses the idioms, the code-switching, and the number formats that trip agents up. Use native phrasing from real calls or native speakers.

Tag every case with its expected behavior. Which language should the agent reply in, on which turn, and where should it switch. Without expected outcomes, you cannot score, you can only watch. Grounding the set in production calls is the same principle behind independent evaluation: test on reality, not on the demo.

How to test multilingual handling end to end

Here is a repeatable process for testing a voice agent's full multilingual behavior. Run it before launch and again on every model, prompt, or voice change.

1. List the languages you promise. Write down every language the agent claims to serve and every language it should decline. Both lists drive test cases.

2. Pull real calls per language. Gather recordings in each supported language, including accented and code-switched examples. These become your seed cases.

3. Script full conversations, not turns. Build multi-turn calls that open, ask, switch, and close. Test the whole call, because drift only appears over time.

4. Add switch and code-switch cases. Include calls that change language mid-conversation and sentences that blend two languages. Set the expected language for each turn.

5. Add edge-language cases. Include calls in languages the agent cannot serve. The expected outcome is a clear message and a transfer.

6. Score language per turn. For each agent turn, record the language it used and compare it to the expected language. Flag every mismatch, not just the first.

7. Check names, numbers, and disclosures. Confirm that numbers, dates, names, and required disclosures are spoken in the caller's language and local format.

8. Verify fallback behavior. Confirm the agent detects the unsupported language, says so clearly, and hands off without dead air or an English error.

9. Log failures with the trigger. For each failure, record what caused it: the entry language, the switch point, or the code-switch. The trigger tells you what to fix.

10. Re-run after every change. Treat the suite as a regression test. A new voice or prompt can reintroduce drift you already fixed.

Run this suite on a schedule, not once. Multilingual behavior regresses quietly, and the fix for one language sometimes breaks another.

What "good" looks like on each behavior

A pass bar makes the suite actionable. Vague goals like "handles Spanish well" cannot fail a build. Specific bars can.

Set a per-language target for reply-language accuracy: the share of agent turns in the correct language. For detection, measure how often the first turn matches the caller's language. For switching, measure how many turns it takes to switch after the caller asks. One turn is good. Three turns is drift.

For fallback, the bar is binary. Either the agent detects the unsupported language and transfers cleanly, or it does not. There is no partial credit for stalling politely in English.

Score each language on its own. A blended average hides the language that fails most, which is usually the one with the fewest test calls. This mirrors the per-language rule in multilingual accuracy: never average across languages you promised to serve separately.

Where teams still get it wrong

Three mistakes show up again and again, even on teams that test carefully.

The first is testing text, not audio. A locale set correctly in a transcript can still produce an English voice reading Spanish words. Behavior lives in the audio. Score what the caller hears.

The second is trusting a vendor's language list. A supported-languages page is a marketing claim, not a test result. The gap between "supports Spanish" and "handles a bilingual caller who switches mid-call" is where real failures hide. This is why an independent evaluation matters: the party making the claim should not be the only party checking it.

The third is treating multilingual as a launch task. It is a regression risk. A prompt tweak, a new voice, or a model swap can quietly reintroduce drift. The teams that stay reliable re-run the full suite on every change, the same way they would for any other voice agent evaluation.

Evalgent runs this behavior suite as an independent third party. We script full calls in each language you serve, score language per turn, and test switching, code-switching, and fallback on your own recordings, so your "supports Spanish" claim is backed by evidence, not by a settings page.

Frequently asked questions

How do you test multilingual handling in voice agents?

You test multilingual handling by scripting full calls in each language and scoring behavior, not components. Check that the agent detects the caller's language, replies in it, honors mid-call switches, handles code-switching, avoids drift, and transfers when it cannot serve a language. Score language on every agent turn, using real recordings.

How do you test if a voice agent detects the caller's language?

Open test calls with short greetings in each language you serve, including single words like "hola" or "aló." Check that the agent's very first turn matches the caller's language. Detection is a separate step from response, so verify it on its own before scoring the rest of the conversation.

How do you test a mid-call language switch?

Script calls that begin in one language, then have the caller request another partway through, such as "can we continue in Spanish?" Verify the agent switches on the next turn and stays switched. Measure how many turns the switch takes. One turn passes; three turns is drift and fails.

How do you test code-switching in a voice agent?

Build test cases where one sentence blends two languages, like "I need to pagar mi factura." Check that the agent still understands the intent and replies in the caller's dominant language. Code-switching is common among bilingual callers, so use native phrasing from real calls rather than translated text.

Why does a voice agent drift back to English?

Language drift usually comes from English-only components inside a multilingual call. A tool response, a scripted disclosure, or a fallback prompt written only in English can pull the whole conversation back. Drift often appears after the first few turns, so test long, multi-turn calls and flag the first turn that reverts.

How should a voice agent fall back when it cannot serve a language?

When a caller speaks an unsupported language, the agent should detect it, say clearly that it cannot help in that language, and transfer to a human or a supported path. Dead air or an English error message is a failure. Test this by calling in a language the agent is not built to serve.

What language should a voice agent read numbers and names in?

Numbers, dates, names, and disclosures should be spoken in the caller's language and local format. A Spanish caller should hear a phone number and currency read in Spanish, not English digits. This is a localization requirement, not a nice-to-have, so test it explicitly for every language and every required disclosure.

How do you build a multilingual voice agent test set?

Start from real recordings in each language you serve, including accented and code-switched calls. Design cases across four dimensions: entry language, mid-call switches, code-switching, and edge languages the agent should decline. Tag each case with the expected language per turn. Avoid machine-translated prompts, which miss idioms and number formats.

The bottom line

Multilingual handling is a behavior, not an accuracy score. Test the whole call in each language, score language on every turn, and check switching, code-switching, and fallback on your own recordings.

Want to see whether your agent truly handles the languages you promise? Book a demo and we will run the full multilingual behavior suite on your calls.

Related Articles