Home / How it works
How VoiceLab conversion works
The flow below is the real website flow: this page talks to api.php on the same site, which forwards allowed requests to the conversion server.
Choose a voice model
The homepage loads
GET /v1/modelsthrough the site gateway. You only see models the server returns. If loading fails, wait and reload; the site does not invent model IDs.Select an audio file
Use the file button or drop a file. If this browser can decode it, a waveform appears and you can slide a window. The site currently keeps that window to 10 seconds. If decoding fails, the original file is sent and the server checks length.
Review settings
Optional pitch shift is a range from −12 to +12 semitones. Automatic pitch matching is sent as
auto_pitchon voice-change jobs.Accept the usage rule
The checkbox is a reminder that you need rights to the audio. It is not legal advice and it is not an automated rights check.
Start conversion
Convert is disabled while an upload is in progress. The site first reads
GET /v1/limits. If the server is not accepting jobs, nothing is uploaded. Otherwise it posts the clip toPOST /v1/jobswith the task and model fields.Watch real status
Jobs appear under “Your conversions”. While a job is queued or running, the page asks
GET /v1/jobson a timer. Percentages shown during “Converting” come from the serverprogressfield. If contact is lost several times, polling stops and you can press Refresh.Preview and download
When state is Ready, Download calls
GET /v1/jobs/{{id}}/resultand keeps the file in this browser. Save writes it to your device. Cancel/Remove on an active or ready job sendsDELETE /v1/jobs/{{id}}.Retention
When last checked, the server listed
result_retention_hours: 24. After a successful download, this site treats the server copy as gone if you try again. This website cannot see whether original uploads are deleted on the conversion machine. See Privacy.
Limits and wait times
Wait text uses the server’s estimated_wait_seconds or job eta_seconds. That is an estimate, not a promise. When last checked the queue cap was 5 pending jobs and a typical idle estimate was under a minute, but load changes.
Common errors
- Server full, offline, or not configured — wait or contact WhatsApp.
- File too large, too long, unreadable, or unsupported type — try a shorter WAV or MP3.
- Rate limited — you sent too many requests from the same network.
- Expired, already downloaded, or not found — convert again.
Also read Privacy and Acceptable use.