New: AI video tools. Cut, clip, caption and dub your videos. See all video tools →
Clone

Generate cloned speech

POST
/api/v1/generation/clone

Clone a voice from reference audio or a saved voice ID.

Provide ref_audio_base64 with a 3-15 second WAV clip of clear speech, plus ref_text (the transcript of that audio) for best quality. Alternatively, provide a voice_id from the voice library — the saved audio is used automatically, and ref_audio_base64 can be omitted.

Use ?sync=true to block until audio is ready (up to 600s). Otherwise, poll GET /api/v1/generation/progress and GET /api/v1/generation/result.

Query Parameters

sync?Sync

Wait for generation to complete and return audio directly

Defaultfalse

Request Body

application/json
  1. body
ref_audio_base64?|

Base64-encoded reference audio (WAV). Optional if voice_id is provided.

ref_text?Ref Text

Transcript of the reference audio

Default""
target_text*Target Text

Text to generate speech for

language?Language

Target language. Query GET /api/v1/models/active for supported languages per variant.

Default"Auto"
voice_id?|

Voice ID for prompt caching. If provided, saved audio is used as fallback when ref_audio_base64 is omitted.

quality?|

Quality/variant tier. Query GET /api/v1/models/active for available tiers.

generation_params?|

Advanced sampling parameters

model_family?|

TTS model to use. If omitted, uses the currently configured model. Triggers auto-load if needed.

emotion?|

Emotion to apply. If set and not 'neutral', uses emotional clone. Query GET /api/v1/models/active for supported emotions.

intensity?|

Emotion intensity (very_mild/mild/normal/strong/extreme). Defaults to 'normal' when emotion is set.

Response Body

Generation started (async) or completed result (sync).

application/json
  1. response
started*Started

Whether the generation job was enqueued

queue_position*Queue Position

Position in the generation queue (0 = next to run)

Example Request
curl -X POST 'http://127.0.0.1:8100/api/v1/generation/clone' \  -H 'Content-Type: application/json' \  -d '{  "target_text": "Welcome to the voice cloning demo."}'
Example Response
{  "started": true,  "queue_position": 0}