> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cartesia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Multilingual Voices

> Reach a global audience with one voice that speaks multiple languages and accents.

export const AudioPlayer = ({src}) => {
  const [hasError, setHasError] = useState(false);
  const [isLoading, setIsLoading] = useState(true);
  useEffect(() => {
    setIsLoading(true);
    setHasError(false);
  }, [src]);
  const handleCanPlay = () => {
    setIsLoading(false);
    setHasError(false);
  };
  const handleError = () => {
    setIsLoading(false);
    setHasError(true);
  };
  const audioClasses = ["w-full", "rounded-full", isLoading || hasError ? "opacity-50" : "opacity-100", hasError ? "pointer-events-none" : "", "transition-opacity"].join(" ");
  return <div className="my-4">
      <audio src={src} controls onCanPlay={handleCanPlay} onError={handleError} className={audioClasses} />

      {isLoading && !hasError && <p className="text-xs text-gray-500 dark:text-gray-400 mt-2 pl-4">Loading audio...</p>}
    </div>;
};

A multilingual voice speaks more than one language and sounds native in each, so one voice can serve customers in every language you support.

## See what a voice can speak

In the [voice library](https://play.cartesia.ai/voices), hover over the flag in a voice's language column to see the languages and accents it supports.

In the API, call [Get Voice](/api-reference/voices/get) and read the [`accents` field](/api-reference/voices/get#response-accents):

```json theme={null}
// GET /voices/9626c31c-bec5-4cca-baa8-f8ba9e84c8bc
{
  "id": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
  "name": "Jacqueline",
  "accents": [
    { "accent": "general-american", "locale": "en-US", "is_native": true },
    { "accent": "standard-hindi", "locale": "hi-IN", "is_native": false }
    // ...and every other accent this voice supports
  ]
  // ...plus description, gender, created_at, and the rest of the voice
}
```

In this example, Jacqueline can speak two accents: General American English and Hindi. Each accent belongs to a locale, and `is_native: true` marks the voice's original accent.

## Using a multilingual voice

Take Jacqueline from above and use that voice ID in a [text-to-speech request](/api-reference/tts/bytes). Most requests only need [`language`](/api-reference/tts/bytes#body-language-one-of-0) or [`locale`](/api-reference/tts/bytes#body-locale-one-of-0): the voice speaks that language in one of the accents it supports, and Cartesia normalizes the transcript for that language or locale.

<Note>
  `locale` needs `sonic-3.6` or newer. On earlier models, use [`language`](/api-reference/tts/bytes#body-language-one-of-0) with a base code like `en` instead. A request may set one or the other, never both.
</Note>

### Speak a language natively

In the example below, we set `locale` to `en-US`, and Jacqueline speaks American English like a local.

```json theme={null}
{
  "model_id": "sonic-3.6",
  "voice": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
  "transcript": "Thanks for holding. I've pulled up your account, and the last three payments went through without any trouble. The one from Thursday is still pending, so it should clear by tomorrow morning.",
  "locale": "en-US"
}
```

<AudioPlayer src="https://play.cartesia.ai/docs/jacqueline-english.mp3">
  Your browser does not support the audio element.
</AudioPlayer>

### Add a deliberate accent

Setting [`accent`](/api-reference/tts/bytes#body-accent-one-of-0) is useful when you intentionally want the voice to sound accented, the way a non-native speaker would. Here the transcript is the same English as above, with `accent` set to `standard-hindi`. Listen to the audio and notice how Jacqueline speaks English with a Hindi accent:

```json theme={null}
{
  "model_id": "sonic-3.6",
  "voice": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
  "transcript": "Thanks for holding. I've pulled up your account, and the last three payments went through without any trouble. The one from Thursday is still pending, so it should clear by tomorrow morning.",
  "locale": "en-US",
  "accent": "standard-hindi"
}
```

<AudioPlayer src="https://play.cartesia.ai/docs/jacqueline-english-hindi-accent.mp3">
  Your browser does not support the audio element.
</AudioPlayer>

### Accent fallbacks

When you request a language this voice has no accent for, the voice will speak it with its original accent, General American English in the case of Jacqueline. Jacqueline doesn't support a Japanese accent, so listen to the audio and notice how she speaks Japanese with an American accent:

```json theme={null}
{
  "model_id": "sonic-3.6",
  "voice": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
  "transcript": "お待たせいたしました。お客様のアカウントを確認しましたところ、直近三件のお支払いはすべて問題なく完了しております。",
  "locale": "ja-JP"
}
```

<AudioPlayer src="https://play.cartesia.ai/docs/jacqueline-japanese-fallback.mp3">
  Your browser does not support the audio element.
</AudioPlayer>

The same fallback applies at the locale level. Jacqueline's only English accent is General American (`en-US`), so a request for `en-GB` falls back to her American English rather than failing. The audio below is identical to the `en-US` request above:

```json theme={null}
{
  "model_id": "sonic-3.6",
  "voice": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
  "transcript": "Thanks for holding. I've pulled up your account, and the last three payments went through without any trouble. The one from Thursday is still pending, so it should clear by tomorrow morning.",
  "locale": "en-GB"
}
```

<AudioPlayer src="https://play.cartesia.ai/docs/jacqueline-english.mp3">
  Your browser does not support the audio element.
</AudioPlayer>

To get British English, use a voice that lists `en-GB` in its `accents` field.

Only pass an accent this voice supports. Jacqueline has no `japanese` accent in the `accents` field, so pinning one fails:

```json theme={null}
{
  "model_id": "sonic-3.6",
  "voice": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
  "transcript": "お待たせいたしました。お客様のアカウントを確認しましたところ、直近三件のお支払いはすべて問題なく完了しております。",
  "locale": "ja-JP",
  "accent": "japanese"
}
```

```json theme={null}
// HTTP 400
{
  "error_code": null,
  "message": "this voice does not support accent 'japanese'",
  "title": "Unsupported accent for voice",
  "request_id": "927f6ea3-22cf-426a-8767-446f41677e17"
}
```

### Switching languages mid-conversation

Send one language per request. For example, send "For English, press one" and "हिंदी के लिए, दो दबाएँ" as two separate requests. Mixing languages inside a single generation works where it's common, such as Hindi (Hinglish) and Tagalog (Taglish). Outside those cases the speech may sound accented.

## Making your voice multilingual

You can turn your Instant Voice Clone multilingual beyond the original accent you cloned. Behind the scenes, Cartesia adapts the voice to every accent you add, **keeping the speaker's identity and the same voice ID**.

### Step 1: Set the accent on the voice

[Add Voice Accents](/api-reference/voices/add-accents) rejects a voice that has no accent of its own. If [Get Voice](/api-reference/voices/get) returns no `accents` field, set one with [Update Voice](/api-reference/voices/update):

```json PATCH /voices/{id} theme={null}
{
  "accent": "general-american"
}
```

Accent ids come from [GET /accents](/api-reference/accents/list), and the one you pick has to be valid for the voice's language. Going forward, set `accent` when you [clone a voice](/api-reference/voices/clone) so that you can add new accents to the voice right away.

### Step 2: Add new accents

Choose the accents you want this voice to speak natively, on top of the one it already has. You can do this in the dashboard or the API:

* **Cartesia dashboard**: find the voice in the [voice library](https://play.cartesia.ai/voices), open the More actions menu next to the voice, then select Manage voice > Supported languages & accents > Add.
* **API**: call [Add Voice Accents](/api-reference/voices/add-accents) with those accent ids.

A voice can support at most 10 accents. To free a slot, remove one with [Delete Voice Accent](/api-reference/voices/delete-accent).

<Note>
  Adding accents to a public voice or a Pro Voice Clone is not supported. Use the [Localize Voice API](/api-reference/voices/localize) instead, which creates a new voice with its own voice ID.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.