Voice Cloning API
Voice cloning API: clone a voice from a few seconds of audio
Save a voice once from a few seconds of audio, then send its ID with any text to hear it speak.
Available now as a local API in the desktop app. Cloud API coming soon.
curl -X POST "http://127.0.0.1:8100/api/v1/generation/clone?sync=true" \ -H "Content-Type: application/json" \ -d '{ "voice_id": "VOICE_ID", "target_text": "Thanks for watching. See you next week.", "language": "English" }'What developers build with it
Cloning is zero-shot: no training step, no waiting. A clean clip of 3 to 10 seconds gives the best match.
- A creator's own voice reading new scripts, without recording each one
- Consistent character voices across every episode of a series
- Localized lines in the original speaker's voice, in any of 600+ languages
{ "success": true, "status": "Generated successfully", "audio_base64": "UklGRiQAAABXQVZFZm10..."}Need voice cloning as a cloud endpoint for your users?
Endpoints
Voice cloning endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /api/v1/voices | Save a reference clip and transcript as a voice |
| POST | /api/v1/generation/clone | Generate speech in a cloned voice |
| POST | /api/v1/generation/clone/stream | Stream cloned speech as it generates |
| GET | /api/v1/voices | List saved voices |
Cloud API
Join the cloud API waitlist
We're building a cloud API. Pick the features you need and roughly how much you'd use, and your answers decide which ones come first.
FAQ
Common Questions
3 to 10 seconds of clear speech gives the best clone. Longer clips don't improve it. Include the transcript of the clip as ref_text for the closest match.
Yes. Save the clip with POST /api/v1/voices, then pass the returned voice_id to /api/v1/generation/clone. The saved audio is used automatically on every request.
Yes, with the Qwen3-TTS model: set emotion and intensity on the request to choose from 13 emotions at 5 intensities. With OmniVoice, emotion comes from the reference clip instead.
Yes. POST /api/v1/generation/clone/stream returns audio as it is generated, so playback can start before the full line is finished.
Explore
Related APIs
Text to speech
Turn text into speech with preset speakers in 10 languages.
Voice design
Describe a voice in words and generate speech in it.
Speech to text
Transcribe audio with word timestamps and speaker labels.
Dubbing
Dub videos into 21 languages, keeping each speaker's voice.
Subtitles
Generate SRT caption files with word-level timing.
Clips
Cut long videos into short, captioned clips.
AI Cut
Remove silences, filler words and bad takes, then render.
Avatars
Make a lip-synced talking-head video from one photo.
Voice changer
Re-voice a recording while keeping its timing and emotion.
Audiobooks
Narrate a manuscript with a voice for every character.