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

Step 2: Create voice with dataset URL

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

$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

$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 to train the model:

$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:

Monitoring Training Progress

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

1{
2 "ok": true,
3 "id": "voice-uuid",
4 "status": "finished"
5}

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

Next Steps