Simple Voice Clone - TTS
Generate voice variants from a reference clip, optionally add radio post-processing, and download a ZIP.
Sending the audio and configuration to the backend.
Generate voice variants from a reference clip, optionally add radio post-processing, and download a ZIP.
Sending the audio and configuration to the backend.
Performance, timing and credit accuracy across your recent generations.
Completed jobs · hover for timestamp and duration
Estimated vs settled credits · hover for job details
Current distribution of recent jobs.
This page documents the versioned developer API contract.
GET /api/v1/billing/policy — read the active server-side billing policy.GET /api/v1/account — read the API key owner's account balance.POST /api/v1/generate — submit a generation; it requires the generation:write API key scope and is currently disabled.GET /api/v1/jobs — list recent jobs owned by the API key.GET /api/v1/jobs/{request_id} — read one job's status and billing details.GET /api/v1/jobs/{request_id}/download — download a completed ZIP.Create one API key from the signed-in Account panel. The raw secret is displayed once and is never stored or recoverable; if it is lost, create a replacement. Do not put an API key into browser source code or commit it to a repository. CLI and external integrations send the generated secret in X-API-Key on /api/v1 requests.
| Field | Type | Purpose |
|---|---|---|
sample | Audio file | WAV, MP3, MP4/M4A, OGG, FLAC, or WEBM reference voice clip. The server normalizes it before inference. |
text | string | Text to generate. |
intended_use | string | Intended use, for example Game, Fictional scene, or Satire/parody. |
ai_disclosure_accepted | boolean | Must be true after reviewing the AI disclosure. |
control | string | Optional control/style prefix. |
prompt_text | string | Optional transcript for Ultimate Cloning. Do not combine it with control: upstream VoxCPM ignores the style prefix in that mode. |
duration | number | Reference audio duration in seconds. |
cfg | number | Classifier-free guidance strength, limited to 1.0..5.0; the recommended range is about 1..3. |
output_format | string | Output format: wav, flac, ogg, mp3, or m4a. |
count | integer | Number of requested outputs, up to the configured maximum (default 10). |
timesteps | integer | Inference timesteps, limited to 1..30; the model documentation recommends 4..30. |
client_request_id | string | Unique ID for one logical generation. Reusing an existing ID returns 409 Conflict because that job already exists; use GET /api/v1/jobs/{request_id} to inspect it and choose a new ID for a new generation. |
Set apply_post=true to enable one post-processing profile. Each profile adds its own fields to the request.
| Field | Type | Purpose |
|---|---|---|
radio_low_hz | number | Radio band lower edge, 0..24000 Hz; default 300. |
radio_high_hz | number | Radio band upper edge, 0..24000 Hz and above radio_low_hz; default 3000. |
radio_transition_hz | number | Filter transition width, 0..24000 Hz; default 150. |
radio_noise_level | number | Radio noise level, 0..1; default 0.08. |
radio_drive | number | Radio saturation drive, 0.1..10; default 2.2. |
radio_crackle_level | number | Crackle intensity, 0..1; default 0.35. |
radio_crackle_rate | number | Crackle rate, 0..1000; default 8. |
output_peak | number | Output normalization peak, 0.01..1; default 0.92. |
radio_seed | integer | Deterministic radio randomness seed, -2147483648..2147483647; default 1337. |
radio_squelch | boolean | Enable radio squelch bursts; default false. |
radio_squelch_ms | number | Squelch duration, 0..10000 ms; default 80. |
radio_squelch_level | number | Squelch level, 0..1; default 0.12. |
POST /api/v1/generate returns 202 Accepted with a job_id. Poll the job endpoint until its status is ready, then download the result with the same API key. If the submitted client_request_id is already used, the API returns 409 Conflict and identifies the existing job; use a new ID for another generation.
$apiKey = "API_KEY"
$jobId = "generation-002"
# Check the current status
curl.exe -H "X-API-Key: $apiKey" `
"https://voiclone.it/api/v1/jobs/$jobId"
# Download after the response reports status=ready and download_available=true
curl.exe -H "X-API-Key: $apiKey" `
-o ".\$jobId.zip" `
"https://voiclone.it/api/v1/jobs/$jobId/download"
These examples target the production domain. Replace API_KEY with the secret displayed once when you create an API key.
curl -X POST "https://voiclone.it/api/v1/generate" \ -H "X-API-Key: API_KEY" \ -F "sample=@/path/to/example.wav" \ -F "text=The airdrop has been dispatched!" \ -F "duration=20" \ -F "output_format=wav" \ -F "timesteps=10" \ -F "count=1" \ -F "apply_post=true" \ -F "client_request_id=generation-$(date +%s)"
See the official EU AI Act, Article 50 and the European Commission guidance on AI-generated content transparency.