Voice cloning
Speech in the voice of a reference clip on 12 cloning models, with the clip rules and consent.
Access: Keys with the media:read or media:generate scope, on an account with media access granted by Albastar Corp.
A cloning model speaks any text in the voice of a reference clip. The clone copies the speaker, the room and the microphone of the clip: noise, music and a second speaker in the clip come back in every line the voice speaks.
Reference and clone
The reference clip is Narrator A, a synthetic voice made with Kokoro's built-in voice af_heart; no person speaks in
the clip. The clone is omnivoice speaking a new line in the voice of the clip, from the shared voice
vo_tBeDCRb2byGFjB6HGyQq6a.
ReferenceNarrator A · synthetic
Transcript Okay, so here's the plan. We land just after sunset, grab the bags, and head straight for the harbour. If the ferry's late again — and honestly, it usually is — we'll get dinner by the water and wait it out. Sound good?
CloneOmniVoice in the reference voice
Transcript I found the photos from the lake house. Do you remember that summer? We stayed up until three, arguing about the stars, and you swore you'd seen a comet. I still think it was a plane.
The clone of the same clip by every cloning model: Voice models.
The clip
| Aspect | Aim for | Avoid |
|---|---|---|
| Length | 20 s of speech; 3 s minimum, 60 s maximum | A clip under 3 s or over 60 s: POST /v1/media/voices refuses the clip |
| Speakers | One speaker | A second voice, a reply, a crowd |
| Background | A quiet room, close to the microphone | Music, traffic, fans, the echo of a large room |
| Delivery | Whole sentences at the pace the voice speaks later | Whispering, shouting, a list of single words |
| Level | Speech clearly audible, no clipping | Audio that distorts on loud syllables |
| Format | WAV or FLAC; MP3 at 128 kbit/s or more | Phone-call audio, heavily compressed files |
- Before cloning, the silence at both ends of the clip is removed. A clip longer than a model's limit is cut at a pause near the model's cut point (Cloning models). With 20 s of speech, every cloning model except VoxCPM 2 uses the whole clip.
- Send the exact words of the clip as
transcript: a cloning model reads the words together with the clip. Without a transcript, the API transcribes the clip on first use and stores the text on the voice. When a model cuts the clip, the model reads the words of the kept part from a transcript of the clip. - Files up to 20 MB in WAV, MP3, M4A, Ogg, WebM or FLAC. The length comes from the file's header; a WebM clip has
duration_snull, and only its first 60 s are used.
Consent
A cloned voice is a person's voice. Clone your own voice, or the voice of a speaker who agreed, and write the
agreement in consent: who, for what use, and when. The consent note is visible to the voice's own account only.
Never clone a film or TV character or a public figure. A designed voice (POST /v1/media/voices/design) needs no
speaker: the model makes the voice from a description.
Check a saved voice
- Save the voice with
POST /v1/media/voices.statusisreadyat once, andpreview_jobnames the job making the preview. - Wait for
preview_urland listen to the preview: the voice'sdefault_modelreads one sentence in the voice. - Generate a paragraph of the text the voice is for. A clone that sounds muffled, echoing or noisy repeats the clip: record the clip again.
- Each model in the voice's
modelsmakes its own clone of the clip: generate the same paragraph on a second model and compare the two files.
The example generates one paragraph in a saved voice on two models. Replace vo_your_voice_id with the voice's id.
VOICE=vo_your_voice_id
TEXT="Thanks for calling the harbour office. The next ferry leaves at \
a quarter past six from pier two, and tickets are on sale at the kiosk \
by the gate until ten minutes before departure."
for MODEL in omnivoice qwen3-tts; do
curl https://api.albastov.com/v1/audio/speech \
-H "Authorization: Bearer $ALBASTAR_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\": \"$MODEL\", \"voice\": \"$VOICE\",
\"input\": \"$TEXT\"}" \
--output "check-$MODEL.mp3"
doneCloning models
Every cloning model takes voice, reference_text, seed and format. A model uses a clip up to its limit whole;
a longer clip is cut at a pause near the model's cut point. Languages and a sample of each model:
Voice models.
| Model | model | Limit | Cut point | Other parameters |
|---|---|---|---|---|
| BreezeTTS 2 | breeze2 | 20 s | 12 s | instruct |
| Chatterbox | chatterbox | 20 s | 12 s | None |
| CosyVoice 3 | cosyvoice3 | 20 s | 12 s | None |
| FireRedTTS 3 | fireredtts3 | 20 s | 12 s | None |
| Fish Audio S2 Pro | fish-s2pro | 20 s | 12 s | None |
| Higgs Audio v3 | higgs3 | 20 s | 12 s | None |
| IndexTTS 2.5 | indextts2.5 | 20 s | 12 s | language |
| MioTTS | miotts | 20 s | 12 s | None |
| MOSS-TTS Local Transformer | moss-local | 20 s | 12 s | None |
| OmniVoice | omnivoice | 24 s | 20 s | language, speed |
| Qwen3-TTS | qwen3-tts | 22 s | 18 s | language |
| VoxCPM 2 | voxcpm2 | 11 s | 8 s | None |
A saved voice's models lists every model that speaks the voice. OmniVoice also takes instruct, which designs a
voice only when the request has no voice.
Reference
- Voices: clone, design, list, copy and delete saved voices.
- Voices reference: every voice route, parameter and error.
- Media jobs reference: each model's parameter schema.