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

# Multilingual audio

> Choose language_code values for voices and text-to-speech.

`language_code` is a stable ISO 639-1-style code that identifies the language
used by a saved voice or a text-to-speech request. Store and send the code, not
a translated language name.

## Supported language codes

The Voice contract accepts these 23 codes:

| Code | Language  | Code | Language   |
| ---- | --------- | ---- | ---------- |
| `ar` | Arabic    | `cs` | Czech      |
| `de` | German    | `el` | Greek      |
| `en` | English   | `es` | Spanish    |
| `fi` | Finnish   | `fr` | French     |
| `hi` | Hindi     | `id` | Indonesian |
| `it` | Italian   | `ja` | Japanese   |
| `ko` | Korean    | `nl` | Dutch      |
| `pl` | Polish    | `pt` | Portuguese |
| `ro` | Romanian  | `ru` | Russian    |
| `th` | Thai      | `tr` | Turkish    |
| `uk` | Ukrainian | `vi` | Vietnamese |
| `zh` | Chinese   |      |            |

The OpenAPI schema exposes the same enum anywhere Voice Metadata accepts or
returns `language_code`. To discover the current contract at runtime, call:

```bash theme={null}
curl --request GET \
  --url "https://api.breeze.blue/v1/voice-metadata/options" \
  --header "xi-api-key: $BREEZE_API_KEY"
```

The Python SDK method is `client.voices.metadata_options()`. The TypeScript SDK
method is `client.voices.metadataOptions()`. CLI and agent workflows can use
`breeze voice metadata-options --agent`.

## Voices and accents

A saved voice's `language_code` describes the language of its reference or
preview audio. Use it when saving a preview, editing a saved voice, or filtering
`GET /v1/voices`.

`accent` depends on `language_code`. Read the allowed array from
`accent_codes_by_language[language_code]` in the Metadata options response.
English (`en`) and Chinese (`zh`) provide accent codes. Every other language
returns an empty array and requires `accent` to be `null`.

Changing a saved voice's language automatically clears an existing accent that
is invalid for the new language when the edit omits `accent`. Sending an
explicitly incompatible language and accent returns `VALIDATION_ERROR`.

## Text to speech

For synthesis, `language_code` selects pronunciation and language handling for
the request. The chosen model must also support that language. Use
`GET /v1/models` and inspect each model's `languages` array before selecting a
model-language pair.

Omit `language_code` only when the endpoint documents a default or when the
saved voice language should be reused. Supplying it explicitly is preferable
for automated multilingual workflows.
