# Multilingual Voice Agents

A multilingual voice agent has two model decisions: which STT model transcribes the user, and which TTS model speaks the agent. Pick each one based on what your agent needs to do at runtime.

## Pick your STT model

| Your situation                                                                                                                                         | Use this                                                                                          |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| Conversational agent in one of the 10 [Flux Multilingual](/guides/streaming-audio-flux-language-prompting) languages, with turn awareness and barge-in | **Flux Multilingual** (`flux-general-multi`)                                                      |
| Single known language, all calls                                                                                                                       | Flux Multilingual with a single-entry `language_hints` array, or the language-specific Nova model |
| Multilingual support center, calls arrive in different languages                                                                                       | Flux Multilingual with multiple entries in the `language_hints` array                             |
| Code-switching mid-conversation, no need for turn awareness                                                                                            | Nova-3 with `language: "multi"`                                                                   |

Flux Multilingual is the default recommendation. It handles turn awareness and interruption with the same low latency as `flux-general-en`. Use Nova-3 only when you need code-switching but not the conversational features.

### Flux Multilingual configuration

- `agent.listen.provider.type`: `deepgram`
- `agent.listen.provider.version`: `v2`
- `agent.listen.provider.model`: `flux-general-multi`
- `agent.listen.provider.language_hints`: array of one or more BCP-47 codes (optional)

```json
{
  "agent": {
    "listen": {
      "provider": {
        "type": "deepgram",
        "version": "v2",
        "model": "flux-general-multi",
        "language_hints": ["en", "es"]
      }
    }
  }
}
```

The `language_hints` parameter biases the model toward specific languages and improves accuracy. With no hints, the model auto-detects the spoken language. Pass one hint for known-language calls and multiple hints for multilingual support centers. See [Flux Multilingual & Language Prompting](/guides/streaming-audio-flux-language-prompting) for the full hint reference and supported languages.

When you use `flux-general-multi`, user `ConversationText` events include `languages_hinted` and `languages` fields. See [Conversation Text](/guides/self-hosted-deployments-3-voice-agent-conversation-text).

### Nova-3 multi configuration

- `agent.listen.provider.model`: `nova-3`
- `agent.listen.provider.language`: `multi`

## Pick your TTS model

| Your situation                  | Use this                                                  |
| ------------------------------- | --------------------------------------------------------- |
| Bilingual English/Spanish agent | Deepgram Aura codeswitching voice                         |
| Any other multilingual mix      | Cartesia, OpenAI, or Eleven Labs with `language: "multi"` |

### Deepgram Aura codeswitching (English/Spanish)

Aura ships five voices that switch between English and Spanish naturally inside one response: Aquila, Carina, Diana, Javier, and Selena.

- `agent.speak.provider.type`: `deepgram`
- `agent.speak.provider.model`: `aura-2-aquila-es` (or `aura-2-carina-es`, `aura-2-diana-es`, `aura-2-javier-es`, `aura-2-selena-es`)

These voices handle mixed-language responses without switching providers. See [TTS Models](/guides/aura-tts-models#aura-2-spanish-voices-ea) for the full Spanish voice catalog.

### Third-party multilingual TTS

For other language combinations, set the speak provider to OpenAI, Eleven Labs, or Cartesia and pass `agent.speak.provider.language: "multi"`. For Eleven Labs, this parameter maps to `language_code`.

## Prompt for the language behavior you want

LLM behavior varies by provider. The prompt steers the agent toward a specific language strategy.

| Goal                                                                  | Prompt pattern                                                                                      |
| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Mirror the user's language turn by turn (English ↔ Spanish ↔ English) | "Match the language of each user message independently."                                            |
| Force the agent to speak one language regardless of user input        | "Always respond in English, even if the user speaks another language."                              |
| Default to one language but mix in another when relevant              | "Respond in English unless the user speaks Spanish; if Spanish, mix Spanish and English naturally." |

## Related pages

- [Configure the Voice Agent](./self-hosted-deployments-3-configure-voice-agent.md)
- [STT Models](./self-hosted-deployments-3-voice-agent-stt-models.md)
- [LLM Models](./self-hosted-deployments-3-voice-agent-llm-models.md)
- [TTS Models](./self-hosted-deployments-3-voice-agent-tts-models.md)
- [Media Inputs & Outputs](./self-hosted-deployments-3-voice-agent-media-inputs-outputs.md)
- [Prompting Voice Agents](./self-hosted-deployments-3-prompting-voice-agents.md)
- [Maintaining Context](./self-hosted-deployments-3-voice-agent-conversation-context.md)
- [Reusable Agent Configurations](./self-hosted-deployments-3-reusable-agent-configurations.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
