> ## 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

> Synthesize speech in 100+ languages and localize voices across languages.

Use Realtime TTS in your multilingual applications, with support for 100+ languages and cross-lingual capabilities that let you reuse a single voice across multiple languages.

<Note>As a more capable model, Realtime TTS-2 (`inworld-tts-2`) is better suited for multilingual applications, offering better pronunciation, more accurate intonation, and more natural-sounding speech. Please share any feedback with us in [Discord](https://discord.gg/inworld).</Note>

## Supported languages

`inworld-tts-2`, `inworld-tts-1.5-max`, and `inworld-tts-1.5-mini` support the following languages:

<table>
  <tbody>
    <tr><td>Arabic (`ar`)</td><td>Chinese (`zh`)</td><td>Dutch (`nl`)</td><td>English (`en`)</td></tr>
    <tr><td>French (`fr`)</td><td>German (`de`)</td><td>Hebrew (`he`)</td><td>Hindi (`hi`)</td></tr>
    <tr><td>Italian (`it`)</td><td>Japanese (`ja`)</td><td>Korean (`ko`)</td><td>Polish (`pl`)</td></tr>
    <tr><td>Portuguese (`pt`)</td><td>Russian (`ru`)</td><td>Spanish (`es`)</td><td /></tr>
  </tbody>
</table>

`inworld-tts-2` also offers experimental support for the following languages:

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

<Note>To test an experimental language, [clone a voice](/tts/voice-cloning) in that language</Note>

## Cross-lingual support

Realtime TTS-2 supports cross-lingual synthesis, where the same voice can be used across multiple languages. Depending on the voice and language, the voice may retain the accent of the original voice language when speaking a different language (e.g., a French voice may speak English with a French accent).

TTS-1.5 performs optimally when synthesizing text in the same language as the voice prompt. You’ll achieve the best quality, pronunciation, and naturalness by matching the voice’s prompt language to your text content.

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>Because `language` accepts a BCP-47 tag, you can also use regional variants (e.g., `en-GB` vs. `en-US`) to nudge the voice toward a specific accent. Results vary by voice and work best when the target language differs from the voice's original prompt language (e.g., specifying `en-US` vs `en-GB` for a Chinese voice).</Tip>

### Voice Localization

Voice localization can help produce more consistent, native-sounding speech in a target language. 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/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>
