VoiceLab
Try the converter

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.

  1. Choose a voice model

    The homepage loads GET /v1/models through the site gateway. You only see models the server returns. If loading fails, wait and reload; the site does not invent model IDs.

  2. 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.

  3. Review settings

    Optional pitch shift is a range from −12 to +12 semitones. Automatic pitch matching is sent as auto_pitch on voice-change jobs.

  4. 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.

  5. 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 to POST /v1/jobs with the task and model fields.

  6. Watch real status

    Jobs appear under “Your conversions”. While a job is queued or running, the page asks GET /v1/jobs on a timer. Percentages shown during “Converting” come from the server progress field. If contact is lost several times, polling stops and you can press Refresh.

  7. Preview and download

    When state is Ready, Download calls GET /v1/jobs/{{id}}/result and keeps the file in this browser. Save writes it to your device. Cancel/Remove on an active or ready job sends DELETE /v1/jobs/{{id}}.

  8. 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

Also read Privacy and Acceptable use.