> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt.
> For full documentation content in one file, see https://docs.sarvam.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# How to choose a voice

> How Sarvam AI Dubbing decides what your dub sounds like. Voice cloning preserves each original speaker across languages, with 15 preset voices as an alternative when cloning is not the right fit.

**Voice cloning** learns each speaker from the source audio and re-performs them in the target language, so the dub keeps the original speaker's voice rather than substituting a narrator.

This is the default and the recommended choice for most content. Nothing needs enabling and no voice needs picking: create a job and each speaker comes back as themselves.

#### Voice cloning

On by default. Preserves every original speaker's voice identity in each target language, and handles multi-speaker files by cloning each speaker separately.

Cloning also scales to conversations. Set `num_speakers` to the number of people in the file (1 to 10), or `-1` to auto-detect, and each speaker is cloned and kept distinct through the dub.

## When to reach for a preset voice instead

Cloning needs enough clean speech per speaker to work from. When it does not have that, or when you deliberately do not want the original voice reproduced, dubbing can re-voice the file with one of 15 **preset voices** instead, chosen with `voice_id`.

Consider a preset voice when:

* **The source audio is too noisy, too short, or too heavily processed** to clone from, so a cloned result would sound unstable.
* **You want one consistent narrator** across a large library recorded by many different people.
* **You must not reproduce the original speaker's voice**, whether for consent, privacy, or contractual reasons.
* **The source is synthetic already**, so there is no human identity worth preserving.

**A preset voice needs `voice_cloning: false`.** Because cloning is the default, passing `voice_id` on its own has no effect: the API discards both `voice_id` and `pace_preset` without raising an error. If your dub comes back in the original speaker's voice despite naming a voice, this is why.

## Using a preset voice

Turn cloning off and name the voice. Everything else about the job is unchanged.

```python
created = client.dubbing.create(
    source_language_code="en-IN",
    target_language_codes=["hi-IN"],
    export_options=["video"],
    num_speakers=1,
    voice_cloning=False,
    voice_id="ishita",
    pace_preset="normal",
    job_name="explainer-01",
)
```

One preset voice narrates every target language in the job, so a three-language job with `ishita` returns three dubs in that same voice. For the surrounding upload, start, and poll steps, see the [Dubbing Overview](/api/api-guides-tutorials/dubbing/overview).

Preset voices are single-speaker only. The API resolves your parameters like this:

| `num_speakers`              | `voice_cloning`  | What you get                                                                                                                                                 |
| --------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `1` (default)               | `false`          | The preset `voice_id` you named. `voice_id` is **required**; omitting it fails with `422`.                                                                   |
| `1` (default)               | `true` (default) | The cloned original voice. `voice_id` and `pace_preset` are discarded.                                                                                       |
| `> 1` or `-1` (auto-detect) | any value        | Cloning, always. Multi-speaker jobs force `voice_cloning: true` and discard `voice_id` silently, because one preset voice cannot represent several speakers. |

`voice_id` is case- and whitespace-insensitive, so `"Ishita"` and `" ishita "` both resolve to `ishita`. An unrecognised name fails with a `422 unprocessable_entity_error` that lists every accepted value. The Python SDK types it as a plain string rather than an enum, so your editor will not autocomplete it or catch a typo.

## Adjusting the pace

`pace_preset` controls how fast a preset voice speaks. It applies **only** when cloning is off, and defaults to `normal`.

| Value      | Effect                                                            |
| ---------- | ----------------------------------------------------------------- |
| `slow`     | Slower delivery, useful for instructional and educational content |
| `moderate` | Slightly slower than normal                                       |
| `normal`   | Default delivery                                                  |
| `fast`     | Quicker delivery, useful for dense narration and promos           |

Dubbing fits each translated segment to the original speaker's timing, so a target language that needs more syllables than the source gets compressed to fit. If a dub sounds rushed, `slow` gives that fitting step more room to work with.

---

## The 15 preset voices

Only these 15 names are valid for `voice_id`. Every sample reads the same Hindi line, **"वाह, यह तो कमाल है! Sarvam AI के साथ अपनी भाषा में बात करना अब बहुत आसान हो गया है।"**, so you can compare them directly.

### Male

### Female

These previews are [Bulbul v3](/api/getting-started/models/bulbul) recordings of the same voice identities, shared with [text-to-speech](/api/api-guides-tutorials/text-to-speech/voices). Treat them as a guide to timbre and character rather than an exact preview: dubbing renders through its own engine and fits speech to the original timing. Note also that text-to-speech offers 30+ speakers, and only the 15 above are accepted by dubbing.

## Next steps

#### [Control Translation Tone](/api/api-guides-tutorials/dubbing/how-to/control-translation-tone)

Pick the `register` that matches your audience.

#### [Choose Export Formats](/api/api-guides-tutorials/dubbing/how-to/choose-export-formats)

Decide which formats each target language produces.