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

# Clone a Voice Overview

Voice cloning creates an AI model of a person's voice from audio samples. Once trained, you can generate speech in that voice using any text input.

The Voice Cloning API requires a Business plan or higher. [Upgrade your plan](https://app.resemble.ai/account/billing) to get started.

Create natural-sounding voice clones with just 10 seconds of audio. The process is designed with simplicity in mind—provide a clear audio sample and our AI model delivers a fully-functional voice clone ready for videos, audiobooks, podcasts, video games, and beyond.

* **Audio needed:** 10 seconds – 3 minutes
* **Training time:** Under 1 minute
* **Voice quality:** Excellent
* **Best for:** Demos, prototyping, videos, audiobooks, podcasts, video games, production apps

## Two Ways to Clone a Voice

Choose the method that fits your workflow:

### Method 1: Clone with a Dataset File

Best when you already have an audio file ready to upload.

**Step 1: Prepare your dataset**

* Single WAV file (≥10 seconds)
* [View supported formats →](https://resemble.notion.site/Resemble-AI-Supported-Datasets-64e94dffc7fe4f518989df48d815879f)

**Step 2: Create voice with dataset URL**

```bash
curl 'https://app.resemble.ai/api/v2/voices' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{
    "name": "Alex",
    "dataset_url": "https://example.com/audio-sample.wav"
  }'
```

**Step 3: Start training**

Call [Build Voice](/voice-creation/voices/build) to train the model.

***

### Method 2: Upload Individual Recordings

Best when you want to record and upload samples one-by-one.

**Step 1: Create an empty voice**

```bash
curl 'https://app.resemble.ai/api/v2/voices' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{
    "name": "Alex"
  }'
```

Save the `uuid` from the response - you'll need it for uploading recordings.

**Step 2: Upload recordings to the voice**

```bash
curl 'https://app.resemble.ai/api/v2/voices/{voice_uuid}/recordings' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F 'file=@audio.wav' \
  -F 'name=sample_01' \
  -F 'text=Transcript of the audio' \
  -F 'emotion=neutral' \
  -F 'is_active=true'
```

Repeat until you have 3+ recordings (≈10 seconds total).

**Step 3: Start training**

Call [Build Voice](/voice-creation/voices/build) to train the model:

```bash
curl 'https://app.resemble.ai/api/v2/voices/{voice_uuid}/build' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{}'
```

***

## After Training Completes

Once training finishes (status = `finished`), your voice is ready to use:

* Generate audio via [Text-to-Speech](/voice-generation/text-to-speech)
* Use it in [Speech-to-Speech](/voice-generation/speech-to-speech)
* Manage with [List Voices](/voice-creation/voices/list) and other endpoints

## Monitoring Training Progress

Set a `callback_uri` when creating your voice to receive a webhook notification when training completes:

```json
{
  "ok": true,
  "id": "voice-uuid",
  "status": "finished"
}
```

If there's a dataset issue, you'll receive details about problematic recordings including quality scores (STOI, PESQ, SI-SDR).

## Next Steps

#### [Create Voice](/voice-creation/voices/create)

Create a new voice via API

#### [Manage Recordings](/voice-creation/recordings)

Upload and manage audio samples

#### [Build Voice](/voice-creation/voices/build)

Trigger voice training

#### [Generate Speech](/guides/creating-clips/getting-started)

Start generating audio