Generate cloned speech
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.
sync?SyncWait for generation to complete and return audio directly
falseapplication/json- body
ref_audio_base64?|Base64-encoded reference audio (WAV). Optional if voice_id is provided.
ref_text?Ref TextTranscript of the reference audio
""target_text*Target TextText to generate speech for
language?LanguageTarget language. Query GET /api/v1/models/active for supported languages per variant.
"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.
Generation started (async) or completed result (sync).
application/json- response
started*StartedWhether the generation job was enqueued
queue_position*Queue PositionPosition in the generation queue (0 = next to run)
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."}'{ "started": true, "queue_position": 0}Get queue status GET
Return the number of pending jobs and whether a generation is currently running. Scoped per-user: callers only see their own queue depth and whether their own job is the active one.
Stream cloned speech POST
Start a streaming voice clone session. Returns a `session_id` immediately. Connect to `GET /api/v1/streaming/{session_id}/audio` to receive chunked WAV audio as it is generated. Call `POST /api/v1/streaming/{session_id}/finalize` when done to get the complete audio as base64. Cancels any in-progress generation to prioritize the stream.