
# Multilingual Calls and Language Detection

A voice agent can run a call in one language, offer several and switch when
asked, or work out which language the caller is speaking and follow them
without being told. All three are configured from the **Setup** and **Voice**
tabs.

## What you'll need

- The **`agents:voice:manage`** permission.
- A saved voice agent — see [Create a Voice Agent](/help/voice-agents/creating-campaigns).

## One language (the default)

On the **Setup** tab, **Default Language** sets the language the agent starts
in and the language speech recognition is tuned for.

**Six languages can be a Default Language**: English, Spanish, French, German,
Italian and Portuguese.

Hindi and Punjabi appear in the same list but are supported as **additional**
languages rather than as the default — set the default to one of the six and
add Hindi or Punjabi under **Additional Languages** (below). Choosing either
as the Default Language is refused when the agent is saved.

Being a valid Default Language is not the same as having a voice built for it.
The table under [What is supported, language by
language](#what-is-supported-language-by-language) has the full picture; the
short version is that English, French and Spanish are covered end to end,
while German, Italian and Portuguese need you to choose the voice with care.

Leave **Multi-Lingual Support** off and you are done; the agent speaks one
language in one voice.

## Several languages, switched on request

```mermaid
flowchart TB
    A["Multi-Lingual Support: on"] --> B["Default Language<br/>+ primary voice"]
    A --> C["Additional Languages<br/>one voice per language"]
    B --> D["Agent starts in the default"]
    C --> E["Caller asks in, or asks for,<br/>another language"]
    E --> F["Agent switches language<br/>and swaps to that language's voice"]
    G["Auto-Detect Language: on"] --> H["Every turn is recognised<br/>language-agnostically"]
    H --> F
```

1. Open the **Setup** tab and turn on **Multi-Lingual Support** ("Configure
   different voices for different languages").
2. Go to the **Voice** tab. The voice picker's label changes to **Primary
   Voice** — that is the voice for your default language — and an **Additional
   Languages** card appears beneath it.
3. Click **Add Language**, then for each row:
   - **Language** — pick from the same list.
   - **Voice** — pick a voice for that language. Each option shows its locale,
     gender and engine, e.g. `Daniella (ES · Female · Cartesia · Sonic 3.6)`.
   - Use the play button beside the row to preview it with your **Preview
     Text**, and the trash icon to remove the row.
4. **Save Changes**.

Turning on multilingual support also gives the agent its language-switching
ability: it can move between the languages you configured when a caller asks,
or when it hears the caller has changed. Each switch swaps the voice to that
language's voice, so the accent follows the language rather than staying in
the default's.

## What is supported, language by language

Three things have to line up for a language, and they do not line up the same
way for all eight in the picker: whether it can be the **Default Language**,
whether **speech recognition** is set to it, and whether a **voice tuned for
it** exists.

| Language | As Default Language | Dedicated voices | What you get |
|---|---|---|---|
| **English** (`en`) | Yes | **16** (incl. US and UK) + 10 emotive | Full support |
| **French** (`fr`) | Yes | **8** | Full support |
| **Spanish** (`es`) | Yes | **2** | Full support |
| **German** (`de`) | Yes | **none** | Works, but in a voice not tuned for German — see below |
| **Italian** (`it`) | Yes | **none** | Same |
| **Portuguese** (`pt`) | Yes | **none** | Same |
| **Hindi** (`hi`) | **No** — use it as an additional language | **4** | Full support as an additional language |
| **Punjabi** (`pa`) | **No** — use it as an additional language | **2** | Full support as an additional language |

Plus **10 OpenAI voices** (Alloy, Ash, Ballad, Coral, Echo, Fable, Onyx, Nova,
Sage, Shimmer), which carry no language tag of their own and speak whichever
language the call is set to, and — where Gemini voices are enabled for your
workspace — **30 Gemini voices**, each of which speaks every language. The
agent still switches only to the languages listed under **Additional
Languages**; with a Gemini voice, pick the same Gemini voice for each row and
the caller hears one voice throughout.

### German, Italian and Portuguese: supported, but pick the voice deliberately

All three save as the Default Language and speech recognition is set to them,
so the agent understands callers fine. What is missing is a *voice built for
the language*: the picker has none, so the agent speaks through whichever
voice you selected.

That leaves two sensible choices:

- **An OpenAI or Gemini voice** — these are language-agnostic, so they speak
  German, Italian or Portuguese without carrying an English accent across.
  This is usually the better pick, and these are the voices that also take a
  **Speaking style**.
- **A Cartesia voice** — it will speak the language, but in that voice's own
  accent, because the voice was built for English or French. Preview it before
  you commit: type a sentence in the target language into **Preview Text** and
  listen.

Either way, **preview in the actual language** rather than the default English
phrase. That is the only way to hear what your callers will hear.

## Detect the language automatically

On the **Setup** tab, **Auto-Detect Language** ("Automatically detect the
user's language each turn and switch voices on the fly") changes how speech
recognition runs: instead of listening for one specific language, the agent
recognises each turn language-agnostically and switches to the caller's
language as it hears it.

Use it when:

- Callers arrive on one number from several language communities, and asking
  them to choose is friction you would rather not add.
- A caller code-switches mid-sentence — common in bilingual households and
  worth handling gracefully.

Leave it off when:

- Everyone calls in one language. A single-language model is the more accurate
  choice, and there is nothing to gain from generality.
- Your callers use heavy domain vocabulary, brand names or part numbers in one
  language. Recognition tuned to that one language handles them better.

Auto-detect pairs with **Multi-Lingual Support**: detection decides *what the
caller said*, and the configured voices decide *how the agent answers*. Turn
on detection without configuring an additional voice for a language and the
agent may answer in a language it has no dedicated voice for, in the primary
voice.

## Writing instructions for a multilingual agent

- **Write them in one language** — English is fine. The model works from them
  and speaks whatever the call is in; you do not need a translated copy per
  language.
- **Say what should not be translated**: product names, legal wording, a
  quoted price format, the business name.
- **Say what to do when the caller's language is not configured.** Offer a
  transfer, or continue in the default language and say so — either is better
  than silently answering in a language the caller did not use.
- **Keep the greeting language-neutral, or in the default.** The greeting is
  spoken before the agent has heard anything, so detection has not run yet.

## Live-audio models: one voice, a checklist of languages

On **Gemini 3.8 Live** the per-language voices and **Auto-Detect Language**
above do not apply: one Google voice speaks every language and the model
recognises the caller's language itself. Instead, **Voice → Languages the
agent may speak** is a checklist of the languages Google's Live models support
(99 of them). The agent answers in the caller's language when it is ticked,
otherwise in the first ticked one; with nothing ticked it keeps to the
**Default Language**. An agent that was multilingual before you moved it to a
Live model keeps its languages until you tick the list. Portuguese is the one
language the list splits by region (Brazil, Portugal).

## Troubleshooting

- **Saving fails after I picked Hindi or Punjabi as the Default Language.**
  Those two are supported as additional languages. Set the default to English,
  Spanish, French, German, Italian or Portuguese, and add Hindi or Punjabi
  under **Additional Languages**.
- **The agent speaks German (or Italian, or Portuguese) with an English
  accent.** No voice in the picker is built for those three, so it is using
  the one you selected. Switch to an OpenAI or Gemini voice, which is
  language-agnostic, and preview it with a sentence in the target language.
- **The Additional Languages card is not there.** **Multi-Lingual Support** is
  off, on the **Setup** tab.
- **The agent switches language but keeps the original accent.** No voice is
  configured for the language it switched to. Add a row for it under
  **Additional Languages**.
- **It answers in the wrong language on the first turn.** The greeting and the
  opening turn run in the default language — detection needs to hear the
  caller first. Set the default to your most common language.
- **Recognition got worse after turning on auto-detect.** Expected on a
  single-language line: a language-agnostic model trades some accuracy for
  coverage. Turn it off if every caller speaks the same language.

## Next steps

- [Voices, Greetings and Pronunciation](/help/voice-agents/voices-and-speech)
- [Turn-Taking, Interruptions and Dead Air](/help/voice-agents/turn-taking-and-timing)
- [Instructions, Goals and Scheduled Prompts](/help/voice-agents/instructions-and-scheduling)
