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

# Text-to-Speech on Baseten

> Stream Gradium TTS from a dedicated deployment hosted on Baseten

export const VoiceTable = ({voices = []}) => {
  const [copied, setCopied] = React.useState(null);
  const fallbackCopy = id => {
    const ta = document.createElement('textarea');
    ta.value = id;
    ta.style.position = 'fixed';
    ta.style.opacity = '0';
    document.body.appendChild(ta);
    ta.select();
    try {
      document.execCommand('copy');
    } catch (e) {
      return;
    } finally {
      document.body.removeChild(ta);
    }
  };
  const copy = id => {
    if (navigator.clipboard && navigator.clipboard.writeText) {
      navigator.clipboard.writeText(id).then(null, () => fallbackCopy(id));
    } else {
      fallbackCopy(id);
    }
    setCopied(id);
    setTimeout(() => setCopied(c => c === id ? null : c), 1200);
  };
  const CopyIcon = () => <svg className="voice-id-icon" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
      <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
    </svg>;
  const CheckIcon = () => <svg className="voice-id-icon" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round">
      <polyline points="20 6 9 17 4 12" />
    </svg>;
  return <div className="voice-table-wrapper">
      <table className="voice-table">
        <thead>
          <tr>
            <th>Voice</th>
            <th style={{
    textAlign: 'center'
  }}>Country</th>
            <th style={{
    textAlign: 'center'
  }}>Gender</th>
            <th>Description</th>
          </tr>
        </thead>
        <tbody>
          {voices.map((v, i) => <tr key={i}>
              <td>
                <div className="voice-name">{v.name}</div>
                <button type="button" className={"voice-id-copy" + (copied === v.id ? " is-copied" : "")} onClick={() => copy(v.id)} title="Copy voice ID" aria-label={"Copy voice ID " + v.id}>
                  <code>{v.id}</code>
                  {copied === v.id ? <CheckIcon /> : <CopyIcon />}
                </button>
              </td>
              <td style={{
    textAlign: 'center'
  }}>{v.country}</td>
              <td style={{
    textAlign: 'center'
  }}>{v.gender}</td>
              <td className="voice-desc">{v.desc}</td>
            </tr>)}
        </tbody>
      </table>
    </div>;
};

Your dedicated Gradium Text-to-Speech deployment runs on Baseten and
speaks the same streaming WebSocket protocol as the hosted Gradium API.
Only the connection details change: the URL and the authentication
header.

## Differences from the hosted API

|                                                 | Hosted Gradium API                      | Baseten deployment                                                                                                  |
| ----------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| WebSocket URL                                   | `wss://api.gradium.ai/api/speech/tts`   | The URL Baseten gives you, e.g. `wss-host.example.com/websocket` — the TTS WebSocket is served at that URL directly |
| Authentication                                  | `x-api-key: <Gradium API key>`          | `Authorization: Api-Key <Baseten API key>`                                                                          |
| Voice catalog                                   | Full voice library + your custom voices | The voices baked into the deployment image (see [Available voices](#available-voices))                              |
| Pronunciation dictionaries (`pronunciation_id`) | Available                               | Not available — use inline [`rewrites`](#setup-parameters) instead                                                  |

## Prerequisites

* The WebSocket URL of your deployment (provided by Baseten / Gradium),
  of the form `wss-host.example.com/websocket`.
* A Baseten API key with access to the deployment.
* Python 3.10+ with the Gradium SDK, version **0.6.1 or later**
  (`pip install "gradium>=0.6.1"`). Earlier versions cannot override the
  TTS route and will not reach a self-hosted deployment.

## Quickstart

The SDK repository ships a ready-made client for self-hosted
deployments:
[`examples/self_hosted/example_tts.py`](https://github.com/gradium-ai/gradium-py/blob/main/examples/self_hosted/example_tts.py).
It connects to the deployment, synthesizes the given text, and writes
the audio to a file:

```bash theme={null}
uv run examples/self_hosted/example_tts.py \
  --base-url wss-host.example.com/websocket \
  --api-key "<your Baseten API key>" \
  --text "Hello from Baseten!" \
  --voice NbpkqMVS3CJeq2j8 \
  --output-format wav \
  --output out.wav
```

<Note>
  `--api-key` takes your **Baseten** API key — the example client sends
  it in Baseten's `Authorization: Api-Key ...` header, not in the hosted
  API's `x-api-key` header.
</Note>

### Minimal client

The example boils down to two adjustments to the standard
`GradiumClient`, both worth copying into your own code:

1. **`tts_route=""`** — on the hosted API the client appends
   `speech/tts` to the base URL; on Baseten the TTS WebSocket is served
   at the deployment URL directly.
2. **Auth header override** — Baseten authenticates with
   `Authorization: Api-Key <key>`.

```python theme={null}
import asyncio

from gradium import GradiumClient
from gradium.client import SOURCE


class SelfHostedTTSClient(GradiumClient):
    """GradiumClient for a self-hosted / Baseten deployment."""

    @property
    def headers(self) -> dict:
        return {
            "Authorization": f"Api-Key {self._api_key}",
            "x-api-source": SOURCE,
        }


async def main():
    client = SelfHostedTTSClient(
        base_url="wss-host.example.com/websocket",
        api_key="<your Baseten API key>",
        tts_route="",  # the TTS WebSocket is served at the base URL directly
    )
    setup = {"voice_id": "NbpkqMVS3CJeq2j8", "output_format": "wav"}

    stream = await client.tts_stream(setup, "Hello from Baseten!")
    audio = b"".join([chunk async for chunk in stream.iter_bytes()])

    with open("out.wav", "wb") as f:
        f.write(audio)


asyncio.run(main())
```

All three SDK shapes work against the deployment exactly as described
in the [Text-to-Speech guide](/guides/text-to-speech): `tts_realtime`
for concurrent send/receive, `tts_stream` for an async iterator of
audio chunks, and `tts` for buffered one-shot synthesis.

## Setup parameters

* **`voice_id`**: The id of the voice to use, from
  [Available voices](#available-voices) below. Omit it to use the
  deployment's default voice.
* **`output_format`**: `"wav"` or `"pcm"`. PCM output is 48kHz,
  16-bit signed integer, mono.
* **`json_config`**: Advanced voice settings such as temperature and
  speed. See [Voice Settings](/guides/voice-settings).
* **`rewrites`**: Inline text rewrite rules, as a list of
  `[original, rewrite, case_sensitive]` entries. See
  [Text Rewriting](/guides/text-rewriting).

## Direct WebSocket

From a non-Python runtime, talk to the WebSocket directly. The message
flow is the same as the
[TTS WebSocket reference](/api-reference/endpoint/tts-websocket):
send `setup`, wait for `ready`, send `text` and `end_of_stream`,
receive `audio` / `text` messages until `end_of_stream`.

```bash theme={null}
wscat -c "wss://<your-deployment-host>/websocket" \
  -H "Authorization: Api-Key $BASETEN_API_KEY"
# After connection, type:
# {"type":"setup","voice_id":"NbpkqMVS3CJeq2j8","output_format":"wav"}
# {"type":"text","text":"Hello, world!"}
# {"type":"end_of_stream"}
```

The only difference from the hosted reference: `pronunciation_id` is
not available — use inline [`rewrites`](#setup-parameters) instead.

## Troubleshooting

| Symptom                                 | Cause                                                                               | Fix                                                               |
| --------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| Error: `voice_id '<id>' not found`      | The id isn't baked into the deployment image                                        | Check the id against [Available voices](#available-voices)        |
| Connection rejected (401/403)           | Wrong auth header                                                                   | Send `Authorization: Api-Key <Baseten API key>` — not `x-api-key` |
| WebSocket closes right after connecting | The deployment replica is still warming up (\~3 min after a cold start or scale-up) | Retry with backoff                                                |

## Available voices

The deployment image ships with **346 voices** plus a built-in default
voice (used when `voice_id` is omitted). All 66
[flagship voices](/guides/voices/flagship-voices) are included — the
tables below list them per language; the full id list follows. Pass
the id as the `voice_id` setup field — click an id to copy it. You can
also listen to and test the voices in the official
[Gradium Studio](https://studio.gradium.ai/).

<Tabs>
  <Tab title="English (18)">
    <VoiceTable
      voices={[
  {
    "name": "Zoey",
    "id": "NbpkqMVS3CJeq2j8",
    "country": "United States (US)",
    "gender": "Feminine",
    "desc": "Playful, upbeat and Gen Z energy voice with a standard American accent. Perfect for engaging conversations!"
  },
  {
    "name": "Skyler",
    "id": "cLONiZ4hQ8VpQ4Sz",
    "country": "United States (US)",
    "gender": "Feminine",
    "desc": "Breezy, fun and youthful voice with a standard American accent."
  },
  {
    "name": "Riley",
    "id": "7aEKz4P1ogZ0UsRP",
    "country": "United States (US)",
    "gender": "Feminine",
    "desc": "Sporty, bright and approachable voice with standard American accent. Let's go!"
  },
  {
    "name": "Quinn",
    "id": "vtG8ddh4IN32Otad",
    "country": "United States (US)",
    "gender": "Feminine",
    "desc": "Snappy, cool and contemporary voice with standard American accent. Great for conversational use cases."
  },
  {
    "name": "Harper",
    "id": "4SZHfMpw-p46Ywgs",
    "country": "United States (US)",
    "gender": "Feminine",
    "desc": "Modern, confident and friendly voice with a standard American accent."
  },
  {
    "name": "Sterling",
    "id": "6MFfc37kq0sBjBjy",
    "country": "United States (US)",
    "gender": "Masculine",
    "desc": "A warm energetic American adult voice with theatrical flair that makes every sentence feel like the start of something big."
  },
  {
    "name": "Russell",
    "id": "_6Aslh2DxfmnRLmP",
    "country": "United States (US)",
    "gender": "Masculine",
    "desc": "A high-energy American adult voice that pushes and encourages with the intensity of someone who genuinely believes in you."
  },
  {
    "name": "Marcus",
    "id": "r2sIQdqqoqgRJuXw",
    "country": "United States (US)",
    "gender": "Masculine",
    "desc": "A high-energy resonant American adult voice that speaks with the unshakeable conviction of someone who's already sold you."
  },
  {
    "name": "Garrett",
    "id": "POBHtemksfWQbng0",
    "country": "United States (US)",
    "gender": "Masculine",
    "desc": "A smooth low-pitched American adult voice with the easy confidence and quiet magnetism of someone who never has to raise his voice."
  },
  {
    "name": "Damon",
    "id": "KUpE0JVhjiIzp1Fk",
    "country": "United States (US)",
    "gender": "Masculine",
    "desc": "A bright American adult voice that lights up with the unfiltered excitement of someone explaining their favorite obsession."
  },
  {
    "name": "Tilly",
    "id": "4rdlkbxRv4m3UQTW",
    "country": "United Kingdom (GB)",
    "gender": "Feminine",
    "desc": "A bright, welcoming British English adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Pippa",
    "id": "uem82D50GRv2Dwma",
    "country": "United Kingdom (GB)",
    "gender": "Feminine",
    "desc": "A confident, upbeat British English adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Maeve",
    "id": "6PWnV0Nq4wu7RVBT",
    "country": "United Kingdom (GB)",
    "gender": "Feminine",
    "desc": "A sparky, attentive British English adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Imogen",
    "id": "gDT1nz7Ie36ZhL-C",
    "country": "United Kingdom (GB)",
    "gender": "Feminine",
    "desc": "A bubbly, friendly British English adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Toby",
    "id": "dME3IWyZBvmh1n1q",
    "country": "United Kingdom (GB)",
    "gender": "Masculine",
    "desc": "A sparky, attentive British English adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Reuben",
    "id": "CF0NgaMwHMMrHZn0",
    "country": "United Kingdom (GB)",
    "gender": "Masculine",
    "desc": "A confident, upbeat British English adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Freddie",
    "id": "s_k3kLBbgeK9-xUg",
    "country": "United Kingdom (GB)",
    "gender": "Masculine",
    "desc": "An easy-going, friendly British English adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Archie",
    "id": "kfzLbcdE_yXgLeUI",
    "country": "United Kingdom (GB)",
    "gender": "Masculine",
    "desc": "A bright, welcoming British English adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  }
]}
    />
  </Tab>

  <Tab title="French (13)">
    <VoiceTable
      voices={[
  {
    "name": "Romane",
    "id": "jBULVCDhf05tOJN5",
    "country": "France (FR)",
    "gender": "Feminine",
    "desc": "A confident, upbeat French adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Margaux",
    "id": "J8c9KBRYAGGYwjns",
    "country": "France (FR)",
    "gender": "Feminine",
    "desc": "A bright, welcoming French adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Garance",
    "id": "3hQIj8JOo7bU31Jw",
    "country": "France (FR)",
    "gender": "Feminine",
    "desc": "A vibrant, engaging French adult voice that makes every explanation feel personal. Built for product guides and walk-through assistants."
  },
  {
    "name": "Capucine",
    "id": "P4GqVY98hjQSvkiu",
    "country": "France (FR)",
    "gender": "Feminine",
    "desc": "A bubbly, friendly French adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Apolline",
    "id": "6oIkS98REoVZ1dEw",
    "country": "France (FR)",
    "gender": "Feminine",
    "desc": "A sparky, attentive French adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Marius",
    "id": "biuhvu17TxVKOcyy",
    "country": "France (FR)",
    "gender": "Masculine",
    "desc": "An energetic, well-poised French adult voice with the confident assurance of a natural closer. Ideal for sales pitches and high-conviction content."
  },
  {
    "name": "Jules",
    "id": "YKeBw3OV1RgpdhLh",
    "country": "France (FR)",
    "gender": "Masculine",
    "desc": "A lively, expressive French adult voice that lights up around topics it loves. Great for animated recommendations and high-energy dialogue."
  },
  {
    "name": "Gaspard",
    "id": "iEu63s1rhn_kegTr",
    "country": "France (FR)",
    "gender": "Masculine",
    "desc": "A warm, grounded French adult voice with the easy confidence of a trusted friend. Ideal for friendly assistants and peer-to-peer dialogue."
  },
  {
    "name": "Damien",
    "id": "25AzBFyp6svYnJsj",
    "country": "France (FR)",
    "gender": "Masculine",
    "desc": "An intense, engaging French adult voice that pushes with real conviction. Built for coaching and motivational content."
  },
  {
    "name": "Augustin",
    "id": "Tek4tJXiX6_yvXq7",
    "country": "France (FR)",
    "gender": "Masculine",
    "desc": "A curious, animated French adult voice that lights up when sharing an unexpected fact. Perfect for geeky explainers and trivia-driven dialogue."
  },
  {
    "name": "Roxane",
    "id": "mmLFHtCjt_6jw0vT",
    "country": "Canada (CA)",
    "gender": "Feminine",
    "desc": "A calm, attentive Québécois French adult voice that gets to the point with a smile. Ideal for efficient customer support and helpful voice assistants."
  },
  {
    "name": "Frédérique",
    "id": "sX0PcxM_Ie2ctBGH",
    "country": "Canada (CA)",
    "gender": "Feminine",
    "desc": "A confident, upbeat Québécois French adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Maude",
    "id": "sBLwTd5womVX8JOw",
    "country": "Canada (CA)",
    "gender": "Feminine",
    "desc": "A bubbly, reassuring Québécois French (FR-CA) adult voice that puts callers instantly at ease. Great for onboarding assistants and step-by-step guidance."
  }
]}
    />
  </Tab>

  <Tab title="German (13)">
    <VoiceTable
      voices={[
  {
    "name": "Svenja",
    "id": "SqFfhmAgR2XdN83R",
    "country": "Germany (DE)",
    "gender": "Feminine",
    "desc": "A confident, upbeat German adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Ronja",
    "id": "6XwZeudK_gn719g5",
    "country": "Germany (DE)",
    "gender": "Feminine",
    "desc": "A vibrant, engaging German adult voice that makes every explanation feel personal. Built for product guides and walk-through assistants."
  },
  {
    "name": "Mila",
    "id": "nMNZ0sOWZVbKyjaI",
    "country": "Germany (DE)",
    "gender": "Feminine",
    "desc": "A bright, welcoming German adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Marlene",
    "id": "yHyu3PRfSmmiL2a4",
    "country": "Germany (DE)",
    "gender": "Feminine",
    "desc": "A bubbly, friendly German adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Annika",
    "id": "p6Uutkyi3j2iNAUu",
    "country": "Germany (DE)",
    "gender": "Feminine",
    "desc": "A sparky, attentive German adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Mats",
    "id": "Kf5m22mROozoMWj3",
    "country": "Germany (DE)",
    "gender": "Masculine",
    "desc": "A sparky, attentive German adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Leon",
    "id": "20zdyYrQPzKlCwkk",
    "country": "Germany (DE)",
    "gender": "Masculine",
    "desc": "A bright, welcoming German adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Henrik",
    "id": "yyS1KYWs6mXoEw7D",
    "country": "Germany (DE)",
    "gender": "Masculine",
    "desc": "An easy-going, friendly German adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Erik",
    "id": "lbpBQTVCOcOHJ5zS",
    "country": "Germany (DE)",
    "gender": "Masculine",
    "desc": "A confident, upbeat German adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Anton",
    "id": "3ZKKapPOvuWFcw9f",
    "country": "Germany (DE)",
    "gender": "Masculine",
    "desc": "A vibrant, engaging German adult voice that makes every explanation feel personal. Built for product guides and walk-through assistants."
  },
  {
    "name": "Sophie",
    "id": "TXbEUrHXNFlYBBKb",
    "country": "Austria (AT)",
    "gender": "Feminine",
    "desc": "A warm, easy-going Austrian German adult voice with effortless local charm. Perfect for friendly assistants and welcoming customer support."
  },
  {
    "name": "Stefan",
    "id": "Xtp0vUDvtAfi1xkH",
    "country": "Austria (AT)",
    "gender": "Masculine",
    "desc": "A composed, welcoming Austrian German adult voice with the calm reliability of a trusted advisor. Ideal for professional support and onboarding interactions."
  },
  {
    "name": "Maxi",
    "id": "BPHlOW9jPs79KtW4",
    "country": "Austria (AT)",
    "gender": "Masculine",
    "desc": "A playful, expressive Austrian German adult voice that brings warmth and humor to every interaction. Great for engaging assistants and conversational AI."
  }
]}
    />
  </Tab>

  <Tab title="Spanish (14)">
    <VoiceTable
      voices={[
  {
    "name": "Vega",
    "id": "m3lIeODdTQ3bOh4z",
    "country": "Spain (ES)",
    "gender": "Feminine",
    "desc": "A sparky, attentive Peninsular Spanish adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Paula",
    "id": "hP6WA-7ybEGApJ68",
    "country": "Spain (ES)",
    "gender": "Feminine",
    "desc": "A bubbly, friendly Peninsular Spanish adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Lucia",
    "id": "A3UKMLXQUzknYpQa",
    "country": "Spain (ES)",
    "gender": "Feminine",
    "desc": "A bright, welcoming Peninsular Spanish adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Aitana",
    "id": "9UogMEa01dHR9Xbc",
    "country": "Spain (ES)",
    "gender": "Feminine",
    "desc": "A confident, upbeat Peninsular Spanish adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Mateo",
    "id": "sVLgzKMqaptUdaY8",
    "country": "Spain (ES)",
    "gender": "Masculine",
    "desc": "A sparky, attentive Peninsular Spanish adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Marcos",
    "id": "jvPx8j8zLGQ3utZz",
    "country": "Spain (ES)",
    "gender": "Masculine",
    "desc": "A confident, upbeat Peninsular Spanish adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Iker",
    "id": "t-_TS1e-0GzDAX02",
    "country": "Spain (ES)",
    "gender": "Masculine",
    "desc": "An easy-going, friendly Peninsular Spanish adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Alvaro",
    "id": "ZeL1KGaZ4BZ2w0Np",
    "country": "Spain (ES)",
    "gender": "Masculine",
    "desc": "A bright, welcoming Peninsular Spanish adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Camila",
    "id": "4NLtOv1m0azv9rGL",
    "country": "Mexico (MX)",
    "gender": "Feminine",
    "desc": "A warm, welcoming Mexican Spanish adult voice with the easy hospitality of a great host. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Ximena",
    "id": "VDwnGxAo68C8U8vC",
    "country": "Mexico (MX)",
    "gender": "Feminine",
    "desc": "A playful, expressive Mexican Spanish adult voice that turns everyday moments into stories. Great for engaging assistants and personable conversational AI."
  },
  {
    "name": "Regina",
    "id": "s58clrg2fe0MO7Y-",
    "country": "Mexico (MX)",
    "gender": "Feminine",
    "desc": "A confident, upbeat Mexican Spanish adult voice with the natural assurance of a closer. Ideal for proactive assistants and sales-led customer interactions."
  },
  {
    "name": "Santiago",
    "id": "yHToO6ssaQHz5kIP",
    "country": "Mexico (MX)",
    "gender": "Masculine",
    "desc": "A warm, welcoming Mexican Spanish adult voice with calm professional reassurance. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Diego",
    "id": "n7vovxcDTVG4gClo",
    "country": "Mexico (MX)",
    "gender": "Masculine",
    "desc": "A lively, expressive Mexican Spanish adult voice with natural storytelling flair. Great for animated assistants and engaging conversational AI."
  },
  {
    "name": "Emiliano",
    "id": "tWll9uiMafMXfOGw",
    "country": "Mexico (MX)",
    "gender": "Masculine",
    "desc": "An assured, upbeat Mexican Spanish adult voice with a touch of humor. Built for confident product guides and proactive customer success."
  }
]}
    />
  </Tab>

  <Tab title="Portuguese (8)">
    <VoiceTable
      voices={[
  {
    "name": "Yara",
    "id": "YnWEONxJy7ptGhfb",
    "country": "Brazil (BR)",
    "gender": "Feminine",
    "desc": "A vibrant, engaging Brazilian Portuguese adult voice that makes every explanation feel personal. Built for product guides and walk-through assistants."
  },
  {
    "name": "Manuela",
    "id": "fd7e1fLVAAJzzs8P",
    "country": "Brazil (BR)",
    "gender": "Feminine",
    "desc": "A confident, upbeat Brazilian Portuguese adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Larissa",
    "id": "DUFZMTh4n-53Ly9O",
    "country": "Brazil (BR)",
    "gender": "Feminine",
    "desc": "A bubbly, friendly Brazilian Portuguese adult voice that puts callers instantly at ease. Great for onboarding assistants and warm concierge interactions."
  },
  {
    "name": "Helena",
    "id": "ycGyxoEy9wLaX11R",
    "country": "Brazil (BR)",
    "gender": "Feminine",
    "desc": "A sparky, attentive Brazilian Portuguese adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  },
  {
    "name": "Bianca",
    "id": "uCqxlQCKi8sPHwG2",
    "country": "Brazil (BR)",
    "gender": "Feminine",
    "desc": "A bright, welcoming Brazilian Portuguese adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Mateus",
    "id": "AByHrwi1S-yLzW-s",
    "country": "Brazil (BR)",
    "gender": "Masculine",
    "desc": "A bright, welcoming Brazilian Portuguese adult voice with the warmth of a great receptionist. Perfect for greeting customers and friendly front-line support."
  },
  {
    "name": "Davi",
    "id": "NuUr_x5V90hSHzCJ",
    "country": "Brazil (BR)",
    "gender": "Masculine",
    "desc": "A confident, upbeat Brazilian Portuguese adult voice with infectious energy. Perfect for proactive assistants and motivating customer success calls."
  },
  {
    "name": "Caio",
    "id": "Qit9Oc9fEO9yXsVw",
    "country": "Brazil (BR)",
    "gender": "Masculine",
    "desc": "A sparky, attentive Brazilian Portuguese adult voice that gets to the point with a smile. Ideal for fast, efficient customer support and helpful voice assistants."
  }
]}
    />
  </Tab>
</Tabs>

<Accordion title="Full voice id list (346)">
  Every id below is baked into the deployment image and usable as the
  `voice_id` setup field, including the flagship voices listed above.

  ```text theme={null}
  wGhY_zZCoQ5gB0ce
  YHOBjtajNBEHUI_K
  5UkFVe2B8OqLo-5R
  KRo-uwfno-KcEgBM
  BbLb4TxdlrldgpHI
  Ow5IKhni2ED3Xxhl
  ixaCTlZ5Xqf2XzQH
  nlYB3lceu4gwj9Eu
  KWJiFWu2O9nMPYcR
  TJv-kucMsUo24VQe
  74asmf7CXzjfopIX
  4rdlkbxRv4m3UQTW
  4u2uvwrHdTA2gRnZ
  P0GYBrxlhTy5CC87
  6PWnV0Nq4wu7RVBT
  dEcrv3B8XGHoox2_
  t-_TS1e-0GzDAX02
  uem82D50GRv2Dwma
  dME3IWyZBvmh1n1q
  gDT1nz7Ie36ZhL-C
  sVLgzKMqaptUdaY8
  Eu9iL_CYe8N-Gkx_
  7aEKz4P1ogZ0UsRP
  fJDF4lEH590XplFv
  kfzLbcdE_yXgLeUI
  FchWfJlI2jr27eUg
  7HhpTMy55D4HkXen
  MhsYZQ4bIfcDpokF
  MGiwMOFxVe4a2aSU
  9VXl5t2IMagUQAzg
  91EdXxJDbWICDBgz
  NuUr_x5V90hSHzCJ
  jvPx8j8zLGQ3utZz
  p1fSBpcmVWngBqVd
  vMYQUSzm6GRkJX6d
  B36pbz5_UoWn4BDl
  MZWrEHL2Fe_uc2Rv
  pYcGZz9VOo4n2ynh
  m3lIeODdTQ3bOh4z
  ZeL1KGaZ4BZ2w0Np
  LAmPTQZkwYJKRCKt
  s_k3kLBbgeK9-xUg
  A3UKMLXQUzknYpQa
  4SZHfMpw-p46Ywgs
  hP6WA-7ybEGApJ68
  9UogMEa01dHR9Xbc
  Qit9Oc9fEO9yXsVw
  AByHrwi1S-yLzW-s
  8sWSyTC7byLsbHkr
  NvHEAMGiPT4u8iT-
  vtG8ddh4IN32Otad
  r2sIQdqqoqgRJuXw
  L6OaiBybqikfCBk0
  fTtFWGZZPge8OHrP
  KUpE0JVhjiIzp1Fk
  _6Aslh2DxfmnRLmP
  jtEKaLYNn6iif5PR
  Lxc7YlPC8ckLJA8H
  7c5UOKm7AiBgJADg
  GZkS2KENPVQjIadM
  qkROcjqdyBhXWSmb
  cLONiZ4hQ8VpQ4Sz
  CF0NgaMwHMMrHZn0
  Zd5POlBGSbD-JBXF
  N8xxxD_d-ZinGVI4
  m86j6D7UZpGzHsNu
  _di_fkYdBWrbSGIL
  GmGF_3ETsY2Zq7_w
  kAoOc9Yb5EQDzA-N
  Hdf5cdfaGrLDTD63
  lP7D1y02OQFtffU3
  WHINGSh2X5oidrhY
  dh0EzP6jCroK6prq
  ru5NfxcQb-xjB2ov
  aHzItRuCKzZxzeK-
  twLGV8mrH_ycNpUn
  NbpkqMVS3CJeq2j8
  w9V1722uEmTkWqnR
  OHbzRwvaEWAp8ncr
  biuhvu17TxVKOcyy
  YKeBw3OV1RgpdhLh
  POBHtemksfWQbng0
  H3Rh9kJcd4gZidvN
  8IWnaR9UcTNGRihW
  Tek4tJXiX6_yvXq7
  ifeL_LpqHFUEPI1Z
  zyla-_bhVQtNTBdT
  6MFfc37kq0sBjBjy
  zUZZyO5dnCURpUJZ
  b35yykvVppLXyw_l
  25AzBFyp6svYnJsj
  Y4iYxS8PBX-bazgX
  xq0vDziADfAmg6Uh
  iEu63s1rhn_kegTr
  biPZlD1tJvi7Ixhq
  J8c9KBRYAGGYwjns
  axlOaUiFyOZhy4nv
  ubuXFxVQwVYnZQhy
  cc9VTN6fVa4s37K0
  qTA0lxFpynJdoxx7
  P4GqVY98hjQSvkiu
  xu7iJ_fn2ElcWp2s
  B09t5S64xLaKwXeW
  GAYOBsMItSHuvInX
  HvE1EoQDBLHnT7wd
  6oIkS98REoVZ1dEw
  ImBVnxSeLsdCfNIV
  0y1VZjPabOBU3rWy
  3hQIj8JOo7bU31Jw
  QkmUhBH4hIV2_BkY
  20zdyYrQPzKlCwkk
  zba0owtqy4Gnewn9
  LFZvm12tW_z0xfGo
  Kf5m22mROozoMWj3
  0LMAi0x_YVG_GLeM
  QY_BJKHMElKDO12-
  yyS1KYWs6mXoEw7D
  jBULVCDhf05tOJN5
  3ZKKapPOvuWFcw9f
  lbpBQTVCOcOHJ5zS
  YTpq7expH9539ERJ
  QETTJoT4n_WmpL3w
  nMNZ0sOWZVbKyjaI
  aNiSRZ0BhQxO1FPx
  p6Uutkyi3j2iNAUu
  zIGaffB0kKEBG_8u
  yHyu3PRfSmmiL2a4
  6XwZeudK_gn719g5
  Jlh1B0PKQJyup0sQ
  SqFfhmAgR2XdN83R
  Fmt16x6anKfMMeSx
  uCqxlQCKi8sPHwG2
  DUFZMTh4n-53Ly9O
  ycGyxoEy9wLaX11R
  -dOnYAX4N4GqSOee
  YnWEONxJy7ptGhfb
  fd7e1fLVAAJzzs8P
  -uP9MuGtBqAvEyxI
  M-FvVo9c-jGR4PgP
  iNMTQyEFCzAONPit
  73lMH7Zcc411nxJz
  Ve1zknlflaRwcAQw
  isyT17KHEj84P9w9
  4ubKCfFxLeBg-cbl
  KpDAXeGeen7P9Uri
  ws0Wb0PZXl21_Bbz
  24cfpJbYGXZLE39T
  T4yRIRCLji61Fz-N
  AaTW_13X1yYe_OnX
  YE0-JPiElafJrZaC
  B6aHVROMF8FuKR07
  R3L8t75ZEoZCPUA9
  yPxeHKlCzaHeKd_V
  Mj0Pzs94jCw8oVOC
  hx1RAC4Lqd9xyTAr
  8QUaJGjSFdgHkuI8
  mxcKXLymdLQCdlEq
  EbIA5CIcQoa6NNd2
  QZtWUy8jmIroWiOu
  k2B3TJiffePxjeBn
  1VAVLmmbQFDw7TMn
  EzmLkNorEpZG_oNv
  HBfu9XA3QfzAG1MN
  D-IpHY1UI0iX9xQD
  WWHSNJCSTm77dyGd
  YUKEEk7Y4Igsj1Ts
  zhH3lPUo-JxmlOJT
  VAb2M8nKHlUUZBk4
  W5htOuyiFI4Fwhxs
  AroCL6f1qizjiZ_a
  kw_VWSocR7vyA9Ty
  rIYDMY3dLccdauWA
  xynYWquoAsrvM7UY
  IB53xJtufx1sbfbt
  lPCVUcicz2XRaLE3
  s0PhgjzOTRD5wo5L
  h6qFHXR3-bqPg_PE
  Bwl2KLUPxf82_ZaJ
  k1wgs3k8-wRxTJO6
  wT1bHy1Vq_0Bn73I
  9c8MGnH1yQ4eN73X
  8nsAoui8Y5RK9PYw
  _cP-0vSYfMmzR4al
  aCWBiYUiQ4VwW8_b
  pdcyd1mLmo0fcg3O
  eorxD0DWv--n7l3p
  r5WB0b126tlHSrku
  Gijj_GPBfJVcP-FZ
  PqjKPYFyGNsg1YU-
  6WgZTf6erRSiBlZi
  zpmn3GOfiU_i5QGo
  h39kz1iyoymcjcqh
  -8ZoUJpVU98rxpv9
  zdE2H9vw2vcMl_Pt
  2AtP1urAQkZaeI2U
  ynR4CAbXMiOv-vGC
  auZu0iT-fniQ4cJd
  Du_Dcv4fgXBDdubR
  22YWyuFACaMHsPh5
  SG3KnxbSOkkrY097
  Yee42wDKxEFHi0BS
  zyLIanWKViHkc6Wp
  d9Fl9x8luXXX7u6E
  2j8TWGsIiUl4G3kj
  mn5sS7D8kYKETZXA
  OceLYI_PPbqsdgdV
  X-wgJsZwQKhfebgK
  fggSYM_FGJ30QTTl
  bDlMqRew31ZJwrD-
  u8rA2xOF_0LRnNSb
  gTAO-3xLZ8_WSfbm
  m7fJRmVaJjG2TL1c
  fs2Qj_X2Z2WvWJSU
  QZMzHBlnJRjll_71
  bvNlBZ3DWDoVy_Yc
  T7UL6gmeDqqYiVe1
  VeVmpxxbyJiWrGNG
  knw-ddWDPNORRA4Z
  IBVzgY91NZ1IJ0oP
  i1kmq28cO60ia35K
  SqHUVuEiTPSlIB5r
  exG4bLr-lZ_bI0jF
  3bIdO9CHnAh_pRAf
  x69x43aS-5mVLCX2
  CjQcj4yeIs6h0uAb
  cuXxqSrGVntdhFpZ
  QPHuXnvRPQ57oXYy
  pxKsJ_4kEMid5XpZ
  8dBmiTurwb7KcxLY
  LqFNS0u6EII7VHBx
  apU2CMobTyu92tZj
  ikbJkd83GvuyoSLb
  EfuzJVuTmw_mA7PC
  AqRuVz8-e8u3BR00
  n2Gv34jje2ZiiNzK
  ptMwY_gvmFxXMmDf
  aW5dxfdkzIFCIdXc
  6Mp6PGnaCdb-US21
  GJSxJhSTPAGIPDwy
  8Tm8RKFEbnkRtkdA
  MQC0U1yWvZXrppaF
  UX3Hi2ZmK7tT0c3G
  4nAcNUlNhEA_Kyjo
  yU6yxQ3e8LKRwU84
  2V3TjbyQGPlkY6ON
  Cw79FL0p0J6UM9El
  ZZb4X9ueHSdRlv9q
  KNYHZTB8ZqdAZv5Q
  -0MuXG9RcCsuSVtb
  J2qsArcdozbto5Hn
  wYY8mXKrKtwKsaXZ
  t1Y_yKjku5R46F9t
  3-pqEMoGtIq7wXtH
  8eZwfGLoSF2N0RB3
  -WFy9WtlQNE-dEV2
  XnSnbQW98he4aULg
  1D38wv1wp-H7QcyM
  uF8PfAXrv6qU9UEM
  HndphaVV7KTCfKQT
  4NU5PqxX2BdMEtWe
  ZOiGbnYdgKSBM_rH
  RPw-aWdY8NBiIWeg
  h2o5CDDhV5wE3Bwi
  42-EbMFThYfhVB83
  cu0XE3Cxmg_GmSJ3
  D8iRHK1qJhqfE00v
  H0GE4TqfCQGmpQhL
  ApPgTz3nMHOsWxhK
  wBgI9XmASQwvQ13w
  XFttJvHwReWtWQNQ
  78zAgQK6xmExb8wS
  wPx6HPbUQkaUHGhq
  9O8ZawShJ7UwURjK
  6tFmjkrmrdhO2bXV
  XJc-Y9tkSd1UA7s4
  T2NDxsof9FHYxgJj
  hOhCtzjR-cRG4T5T
  df4Al5gt14Am4Qaf
  --9DFXOPx8kJFsbe
  uycTGmIXbw_Y83p9
  v5lib8tjaosy5sxQ
  xki1DK6Ks6tuDmcb
  YHkMHL6WppbXd42a
  Z5GIOZR45ieZ8M-W
  lt88kyLfD8Mqemla
  -qKylkN2UPxd7Mmg
  lSVEPWl_N_7MtcHe
  O0uTTRx5zcetDFX4
  kr-Om35JRqmA3Hzq
  56DcpvEI0Gawpidh
  FOFDH8py3aghc5kb
  hXjVvZ6oDDGQAQFj
  WxHB2b5HxA0Kuq5u
  dK5Glio51HTxdMu0
  Abqwk2RWxlBEyv0j
  KEMqb7dQlTCAEUx6
  9LhjfdN9LOrygqDi
  bauuigqCZbJFfk5q
  ZsVFAOnjnEPxJVDI
  AEJ61XaIaRill4cJ
  9QHzSiOYUD-RzEzM
  sz-H9BxaRaqxQ2S0
  FRTqjB2TL-Ix9GXW
  3mM3xaoFjNMQa22C
  AySdCEnP2nqRo1WM
  -_aUUFZaJ0CT1gks
  s4CzgVHP5cEkB9LD
  hAdJ9w9xBQkFgrRl
  J4XbCGPYNMigXcfZ
  NoJdNY6JTz-VJLwz
  xB86uC_i8sO2U41-
  L7890s1B44FqSiGC
  vbg20SqFS_gBntTQ
  VXA4-0_ZN4o8q3vK
  lHL_BeE8kcYk_PFm
  FvHwyEGJDAnhCOmy
  IvU7qOuioP04a4eX
  d1HpinVF79zaGnJY
  cMvT_WqtiQCCf9c4
  yk80SYvdMuQFF1MD
  mweCx1v9-T6gDXH8
  3YlG68yLpoTW8HEj
  vzanWTXLIajkUaaT
  IlWrXUM6C11vXm1S
  8_M2uwvmyM-BadY9
  aq7ltaIQ6ZJUY0jR
  RhI-l8fGE2DtXgXV
  HtgP9v8SoWbq_jxi
  3jUdJyOi9pgbxBTK
  2H4HY2CBNyJHBCrP
  IIZIkBSZAmb9nFZb
  PS7enm5lVZiIvEKV
  b-1LP0pKWL1tNgml
  c8BzreHTk1GG2R4z
  mmLFHtCjt_6jw0vT
  sX0PcxM_Ie2ctBGH
  sBLwTd5womVX8JOw
  TXbEUrHXNFlYBBKb
  Xtp0vUDvtAfi1xkH
  BPHlOW9jPs79KtW4
  4NLtOv1m0azv9rGL
  VDwnGxAo68C8U8vC
  s58clrg2fe0MO7Y-
  yHToO6ssaQHz5kIP
  n7vovxcDTVG4gClo
  tWll9uiMafMXfOGw
  ```
</Accordion>
