use case
verified July 2026
What makes a reference clip usable.
Most cloning problems are reference problems. The clip has a second person in it, or room tone, or a music bed, and the clone inherits all of it. This page is what a working reference looks like and how to check one before you build on it.
01
What the engine needs
References are fingerprinted and cached, so the first request pays the cloning work and every reuse of the same clip skips it.
- Five to ten seconds of ONE speaker talking naturally — not a montage, not a duet, not a voice over music.
- WAV, up to about 1.5 MB, which is roughly thirty seconds of headroom.
- A quiet room. Room tone and reverb are part of what a clone copies, because to the model they are part of the voice.
- A consenting speaker. That is a requirement, not a courtesy, and every clip we synthesise carries an inaudible provenance watermark applied at generation.
02
Verifying a clip belongs to the speaker
POST /speaker_match takes two clips and returns the cosine similarity of their speaker embeddings — the same encoder the clone path conditions on. Use it before accepting a new reference for a voice you already enrolled: same speaker scores near 1.0, unrelated speakers land far lower, and you pick the threshold that suits your tolerance.
That is the check worth automating. A catalogue drifts when someone uploads a slightly different take and nobody notices until the output does not match.
curl -s https://tts.gandr.ai/speaker_match \
-H "Authorization: Bearer $GANDR_KEY" -H "content-type: application/json" \
-d '{"wav_a_b64":"<base64 wav>","wav_b_b64":"<base64 wav>"}'
# {"cosine": 0.91} — same speaker scores near 1.0
03
What this API does not do
It does not isolate a voice from a mix, remove background noise, strip a music bed, or separate two overlapping speakers. There is no source-separation endpoint here, and we would rather say so on the page than have you discover it mid-project.
If your only audio is a finished mix, clean it with a tool built for that and bring the result. Ten usable seconds is a low bar once you are looking for ten seconds rather than a whole track — one answer in an interview, one clean sentence between music cues.
04
Notes — an engineer's checklist
01Can Gandr remove background noise from my clip?
No. There is no noise reduction, source separation or voice isolation on this API — it synthesises speech and clones from a reference. Clean the audio with a dedicated tool and send the result; you only need five to ten usable seconds.
02What happens if the reference has two people in it?
The clone inherits the ambiguity and the output is unreliable. Cut to a stretch where one person is speaking alone, then use /speaker_match to confirm the clip matches the voice you meant.
03How long can a reference be?
Five to ten seconds is the working range and about thirty seconds is the cap, at roughly 1.5 MB of WAV. Longer is not better — a short clean clip beats a long noisy one.
04Do I have to re-upload the reference on every request?
You can, and it costs nothing extra: references are fingerprinted and cached, so identical clips skip the cloning work after the first call. A registered voice id is available when you would rather not send audio each time.
See also — related sheets
capability
0
Voice cloning from ten seconds, in the request
Zero-shot voice cloning: a ten-second reference rides inside each request, no training job, and the identity holds across 23 languages.
use case
23
The same voice, in a language it never recorded
One ten-second reference carries one identity across 23 languages, so a dubbed track keeps the original speaker instead of replacing them with a stranger.
capability
never
Provenance and privacy, applied at generation
The policy surface of the engine: an inaudible watermark on every sample, reference audio that never trains, and per-key audit trails at GET /v1/usage.
who it’s for
1
Gandr for localisation and dubbing studios
Carry one speaker across 23 languages and price a back catalogue by the seats it runs on rather than by its total length.
A key and one seat to build this on — the same production API this page measures.
Request access for this use case