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

# Language Support

> Realtime TTS built for multilingual applications.

Bring your product to a global audience: synthesize speech with the same voice across a wide range of languages.

The Realtime TTS-2 models — `inworld-tts-2` and `inworld-tts-2-flash` — share the same language support. For multilingual applications, `inworld-tts-2` is the most capable choice, with the most accurate pronunciation and intonation; `inworld-tts-2-flash` offers the same language coverage at the lowest latency and cost.

## Supported languages

The Realtime TTS-2 models support **200+ unique languages and locales** (BCP-47 codes) — from broad languages like `es` (Spanish) to regional locales like `es-MX` (Mexican Spanish). The languages we actively support and test are listed below.

<Note>[Timestamp alignment](/tts/capabilities/timestamps) is available in every language the model supports.</Note>

### Generally available languages

These languages are **generally available (GA)**, offering the highest quality and the most natural pronunciation:

| Language   | Code |
| ---------- | ---- |
| Arabic     | `ar` |
| Chinese    | `zh` |
| Dutch      | `nl` |
| English    | `en` |
| French     | `fr` |
| German     | `de` |
| Hebrew     | `he` |
| Hindi      | `hi` |
| Italian    | `it` |
| Japanese   | `ja` |
| Korean     | `ko` |
| Polish     | `pl` |
| Portuguese | `pt` |
| Russian    | `ru` |
| Spanish    | `es` |

### Experimental languages

These languages are **experimental** — pronunciation and quality can vary more than for GA languages. To try one, [design](/tts/voice-design) or [clone a voice](/tts/instant-voice-cloning) in that language.

<Accordion title="Show all experimental languages (alphabetical)">
  | Language          | Code <sup>\*</sup> |
  | ----------------- | ------------------ |
  | Afrikaans         | `af`               |
  | Albanian          | `sq`               |
  | Amharic           | `am`               |
  | Armenian          | `hy`               |
  | Assamese          | `as`               |
  | Azerbaijani       | `az`               |
  | Basque            | `eu`               |
  | Belarusian        | `be`               |
  | Bengali           | `bn`               |
  | Bulgarian         | `bg`               |
  | Burmese           | `my`               |
  | Cantonese         | `yue`              |
  | Catalan           | `ca`               |
  | Cebuano           | `ceb`              |
  | Croatian          | `hr`               |
  | Czech             | `cs`               |
  | Danish            | `da`               |
  | Eastern Yiddish   | `yih`              |
  | Egyptian Arabic   | `arz`              |
  | Estonian          | `et`               |
  | Filipino          | `fil`              |
  | Finnish           | `fi`               |
  | Galician          | `gl`               |
  | Garhwali          | `gbm`              |
  | Georgian          | `ka`               |
  | Greek             | `el`               |
  | Gujarati          | `gu`               |
  | Gulf Arabic       | `afb`              |
  | Haitian Creole    | `ht`               |
  | Hijazi Arabic     | `acw`              |
  | Hungarian         | `hu`               |
  | Icelandic         | `is`               |
  | Indonesian        | `id`               |
  | Javanese          | `jv`               |
  | Kannada           | `kn`               |
  | Kazakh            | `kk`               |
  | Konkani           | `kok`              |
  | Lao               | `lo`               |
  | Latvian           | `lv`               |
  | Libyan Arabic     | `ayl`              |
  | Lithuanian        | `lt`               |
  | Luxembourgish     | `lb`               |
  | Macedonian        | `mk`               |
  | Maithili          | `mai`              |
  | Malagasy          | `mg`               |
  | Malay             | `ms`               |
  | Malayalam         | `ml`               |
  | Marathi           | `mr`               |
  | Mongolian         | `mn`               |
  | Najdi Arabic      | `ars`              |
  | Nepali            | `ne`               |
  | Northern Uzbek    | `uzn`              |
  | Norwegian Bokmål  | `nb`               |
  | Norwegian Nynorsk | `nn`               |
  | Odia              | `or`               |
  | Omani Arabic      | `acx`              |
  | Pashto            | `ps`               |
  | Persian           | `fa`               |
  | Piedmontese       | `pms`              |
  | Punjabi           | `pa`               |
  | Romanian          | `ro`               |
  | Serbian           | `sr`               |
  | Sindhi            | `sd`               |
  | Sinhala           | `si`               |
  | Slovak            | `sk`               |
  | Slovenian         | `sl`               |
  | Swahili           | `sw`               |
  | Swedish           | `sv`               |
  | Tamil             | `ta`               |
  | Telugu            | `te`               |
  | Thai              | `th`               |
  | Tunisian Arabic   | `aeb`              |
  | Turkish           | `tr`               |
  | Ukrainian         | `uk`               |
  | Urdu              | `ur`               |
  | Uzbek             | `uz`               |
  | Vietnamese        | `vi`               |
  | Võro              | `vro`              |
  | Welsh             | `cy`               |

  <sup>\*</sup> These are base language subtags (ISO 639-1, or ISO 639-3 for less common languages).
</Accordion>

<Note>
  **Accents and regional variants:** A voice reproduces the specific accent it was [cloned](/tts/instant-voice-cloning) in (e.g., a voice cloned in British English speaks `en-GB` natively). If your voice wasn't cloned in the accent you need, pass the matching [BCP-47](https://www.rfc-editor.org/info/bcp47) regional code in the [`language`](#specifying-a-language) field (e.g., `en-GB`, `es-MX`, `pt-BR`) to steer it. See [Specifying a language](#specifying-a-language) below.
</Note>

<Note>
  Text normalization is language-specific, not locale-specific — English is normalized the same way whether you target `en-US` or `en-GB`, even though conventions for dates, currencies, and the like can differ. If you need locale-specific formatting, normalize that text yourself.
</Note>

## Cross-lingual support

A voice delivers the best speaker similarity when it speaks the language it was [cloned](/tts/instant-voice-cloning) in — its native tongue.

The Realtime TTS-2 models support cross-lingual synthesis. When synthesizing a different language, the model makes a best-effort attempt to speak the target language natively, without carrying over the accent of the voice's original language. If you want the voice to keep its original accent, prompt for it explicitly (e.g., with [steering](/tts/capabilities/steering) on `inworld-tts-2`).

For the most natural, consistent cross-lingual results, we recommend [specifying the language](#specifying-a-language) to synthesize in and [localizing the voice](#voice-localization).

### Specifying a language

Use the `language` field to tell the model which language (as specified by a BCP-47 language tag) the voice should speak the text in. When set, the service will:

* Apply text normalization (if enabled) for the target language (e.g., speaking numbers in the target language).
* Use the voice's localized prompt for that language, if one exists. If no localized prompt is available, the model will be steered to speak in the target language.

When `language` is omitted, the original voice prompt is used and the language for normalization (if enabled) is auto-detected from the input text.

If you are sending short requests with only numbers or dates (e.g., `123-456-7890`), auto-detection may not have enough context to detect the right language. In those cases, we recommend specifying a language for most consistent results.

<Tip>A voice's native (prompt) language shapes how it sounds in other languages — speaker similarity is always highest in the voice's native tongue. For accent-free, native delivery in another language, [localize the voice](#voice-localization).</Tip>

### Voice localization

Voice localization adapts a voice to a target language so it sounds like a native speaker of that language — delivering fluent, natural speech without carrying over the accent of the voice's original language. (By contrast, [specifying a language](#specifying-a-language) on an un-localized voice may retain the original accent.) It is supported for all Inworld TTS models.

<Steps titleSize="h3">
  <Step title="Open the Voices page in Portal">
    In [Inworld Portal](https://platform.inworld.ai/), go to **Voices** and select the **My voices** tab. Hover over an English voice to open its details panel on the right.

    <Note>Voice localization is currently only supported for voices where the original audio was in English. Support for additional languages is coming soon.</Note>
  </Step>

  <Step title="Click Localize Voice">
    With a voice selected, click **Localize Voice** in the right panel.

    <img src="https://mintcdn.com/inworldai/Ys5C8kTgXfJhs_cQ/img/tts/voices-localize.png?fit=max&auto=format&n=Ys5C8kTgXfJhs_cQ&q=85&s=a2efdf8c1447cac9d7e1809d93054ef4" alt="Voices page with Localize Voice action" width="1072" height="816" data-path="img/tts/voices-localize.png" />
  </Step>

  <Step title="Choose a target language">
    Pick a target language from the dropdown and click **Localize**, which will start generating localized prompt candidates. This may take up to 2 minutes.

    <img src="https://mintcdn.com/inworldai/Ys5C8kTgXfJhs_cQ/img/tts/localize-voice-select-language.png?fit=max&auto=format&n=Ys5C8kTgXfJhs_cQ&q=85&s=aa6b62ae3596051e5f00b92e452174de" alt="Localize Voice screen with target language dropdown" width="1072" height="481" data-path="img/tts/localize-voice-select-language.png" />
  </Step>

  <Step title="Review candidates">
    After generation, you'll see a few localized prompt candidates. Listen to each and pick the one that sounds most natural and native, then click **Save**.

    If none sound right, you can click **Regenerate**. You may want to change the script before regenerating, since the script influences the generated voice.

    <img src="https://mintcdn.com/inworldai/Ys5C8kTgXfJhs_cQ/img/tts/localize-voice-review-candidates.png?fit=max&auto=format&n=Ys5C8kTgXfJhs_cQ&q=85&s=24704026e673ed0d0a807e0de5840086" alt="Review candidates screen with multiple localized voice options" width="1074" height="507" data-path="img/tts/localize-voice-review-candidates.png" />
  </Step>

  <Step title="Use the localized voice">
    Once saved, the voice will use your localized prompt when you specify the `language` to match the language of your localized prompt. Try it out in TTS Playground or via API (the voice ID remains the same).

    <img src="https://mintcdn.com/inworldai/Ys5C8kTgXfJhs_cQ/img/tts/localized-voice-generation.png?fit=max&auto=format&n=Ys5C8kTgXfJhs_cQ&q=85&s=66d5cd5563e2e106f4fa778ad35846a5" alt="TTS Playground generating speech with a localized voice" width="1115" height="859" data-path="img/tts/localized-voice-generation.png" />
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Voice Cloning" icon="microphone" href="/tts/instant-voice-cloning">
    Clone a voice once and reuse it across languages.
  </Card>

  <Card title="Custom Pronunciation" icon="spell-check" href="/tts/capabilities/custom-pronunciation">
    Use IPA notation to control pronunciation of proper nouns and edge cases.
  </Card>
</CardGroup>
