AI Voice Cloning · 2026 Guide
Best AI voice cloning in 2026: how to clone your voice
One voice, seven systems, tested properly. I cloned myself with six open-source models and a paid ElevenLabs clone, fine-tuned and zero-shot, and ranked every result blind. You can play all of them below, including a recording of the real me. Here is what won, what lost, and the steps to do it yourself.
I write about markets and AI for a living. Most of what I publish never becomes a video, because making one means setting up a camera and reading my own writing out loud, and I would rather spend those hours on the research. I wanted to feed in the text and get narration in my voice. A paid clone was the obvious first try and it was not good enough, so I trained my own.
The short answer
Fine-tune CosyVoice 3 or VibeVoice. Those are the only two that captured both my voice and the way I speak.
Press play on any row. Ranked on one question only: does it sound like me. Several of these are excellent synthesis that happens to be someone else. Every clip reads the identical script, and each zero-shot model cloned from the same 20 seconds cut out of the recording the fine-tunes trained on.
This table merges three blind rounds run over two days: an early screening round, the reader test below, and the ranking session near the end. Each round covered part of the field, and the ranks here are my ordering across all three. Read adjacent rows as ties.
The best zero-shot voice cloning model is Chatterbox. It produced the most natural, usable audio of the four I ran with no training at all. It ranks sixth in the table above because that table asks one question only, does it sound like me, and on that question IndexTTS-2 and Qwen3-TTS got closer while getting the rhythm wrong.
Twenty seconds of reference audio buys you half a voice. IndexTTS-2 and Qwen3-TTS caught what I sound like but not how I talk: the words are right, the voice is close, the rhythm is not mine. Chatterbox did the opposite, landing the pacing and missing the voice.
Only fine-tuning gave me both at once, and not automatically: the fine-tuned Qwen3-TTS lower down is clean, natural audio that is somebody else. In my first screening round, five files ranked blind, the two I said sound like me were the two fine-tuned adapters in that set and the three I said did not were all zero-shot. That round predates the Qwen fine-tune and did not contain it.
CosyVoice 3 and Qwen3-TTS each appear twice, trained and untrained, on the same reference and script. Whatever you hear between those pairs is what the training bought.
Two limits worth stating: the fine-tunes had 45 minutes and the zero-shot models had 20 seconds, so I measured 20s zero-shot against 45min fine-tuning, not zero-shot as a technique. The ElevenLabs row also used cleaner source audio than my corpus, so it is not matched on input either.
Take the test
Try it yourself: one of these five is a real human
This is a reader exercise, not one of my ranking sessions. I assembled it from the same clips under the same conditions so you can try the thing I did: identical script, loudness matched, labels hidden. The session that actually produced the rankings is near the end of the article, and it used a different five files.
The setup
How to clone your voice, in one pass
- Record 30 to 45 minutes in one session. One room, one mic, one sitting. Mine was an iPhone with no interface and no treated room. Do not pool old clips from different days: that was the single biggest quality jump in my testing.
- Convert to 24 kHz mono and skip enhancement.
ffmpeg -i src.mov -ar 24000 -ac 1 -c:a pcm_s16le audio.wav. I tested an enhanced version of the same recording and it scored worse. - Cut into 4 to 12 second clips on sentence boundaries, then check the clip manifest against your recording length. My first chunker dropped over-long segments instead of splitting them and silently lost 27 of 52 minutes.
- Transcribe with
openai-whisper, modellarge-v3, running on the same GPU. Each training row is a (text, audio) pair. - Rent one 24 GB GPU and prove it is real before installing anything:
python -c "import torch; assert torch.cuda.is_available()". A silent fall back to CPU will hide a dead machine for a whole run. - Read the project's Dockerfile. It is the only authoritative record of the environment. For CosyVoice the load-bearing details are Python 3.10 and
pyninifrom conda-forge. - Train, saving a checkpoint per epoch. About 22 seconds per epoch for 45 minutes of audio. Do not assume the last checkpoint is the best one: mine peaked at epoch 4 of 31.
- Render three takes per checkpoint, then transcribe each one and diff it against your script. Generation is stochastic and most of these models take no seed, so takes differ in how much of the script they actually speak. I measured 25%, 54% and 90% word coverage across three renders of one input. Keep the take with the highest coverage and re-render anything below about 90%.
- Rank blind. Normalise loudness, pad to one duration, hide the labels until after you commit.
Copy-paste plan for an AI coding agent
Paste this into Claude Code, Cursor, or any agent with shell access. It encodes every failure that cost me time, including the ones that fail silently.
What mattered
Two levers moved the result. The rest were a wash or worse.
One clean recording beat everything I scraped
I started by scraping audio out of videos I had already published, because it was free and it was there. My first clone came from 2 minutes 33 seconds of it and was good enough to be my keeper for weeks. Here it is:
Scraping more of it stopped helping quickly. I built a second corpus of 14 minutes 28 seconds from the same videos and it tied with the 2.5 minute version in a blind ranking.
Then I sat down and recorded 45 minutes in one session, one room, one microphone, one sitting. That corpus produced both of the winners at the top of this page.
Record properly instead of scraping. Clips pulled from videos shot across different rooms and days carry all those rooms into the model. Forty five minutes recorded on purpose is a couple of hours of your time and it is the single biggest quality jump I found.
The peak arrives early
With one model I extended a run from 3200 to 6400 steps because the curve looked like it was still climbing. The first 3200 were the whole gain. My CosyVoice keeper peaked even earlier, at epoch 4 of 31, so plan on auditioning early checkpoints rather than training longer.
Blind test 2
The ranking that picked the winners
A different five files from the test at the top of this page: both ElevenLabs voices, both of my fine-tunes, and the real recording. This is the set that decided the ranking, and it includes both paid clones so the comparison is against the service at its best and its worst.
| File | What it was | What I said, before the reveal |
|---|---|---|
| A | ElevenLabs, scavenged source | "bad" |
| B | ElevenLabs, cleaner source | "good" |
| C | VibeVoice, fine-tuned | "good, maybe slightly better. honestly best" |
| D | Me, the real recording | "so good that I think it's probably legit me" |
| E | CosyVoice, fine-tuned | "good, maybe slightly better than B" |
Read C and D together. I called the fine-tuned model "honestly best" and, separately, flagged the real recording as "probably legit me." I did identify the human. I also rated a synthetic clone at the top of the set while doing it. Both paid clones landed below both fine-tunes.
That is the practical bar for narration, and 45 minutes of phone audio cleared it.
Cost
What each option actually costs
| Option | Cost | Limit | You own it? |
|---|---|---|---|
| ElevenLabs Creator | $22/mo forever | 100k credits, ~100 min | no |
| ElevenLabs Pro | $99/mo forever | 500k credits | no |
| Fine-tune your own | under $1 per run ~$5 to a first clone plus GPU time to render | none | yes, the weights |
The whole project, including every failed experiment and dozens of training runs, came to about $17 of GPU time. That is less than one month of the cheapest tier that supports professional voice cloning.
I did not provision or run any of this infrastructure by hand. I described what I wanted to an AI coding agent, it stood up the environment, rented the GPU, ran the training, and shut the machine down when it was done. The plan above is the instruction set, and everything it needs to get right is already in it.
The cost is a few dollars of rented GPU and the time it takes you to record.
One honest asterisk on that comparison: the $22 a month buys inference too, and self-hosting does not. Training is a one-off, but every minute of narration afterwards needs a GPU. At my volume that is pennies of pod time per batch. If you are generating a hundred minutes a month you should price it against the tier that covers it, not against the training run.
Generalisation
Does it hold up on text it has never seen?
A clone that only works on the paragraph you tested is not useful. This is 124 words the model never saw in training, including finance jargon it has no special reason to pronounce correctly.
Word coverage across three renders came back at 96%, 91% and 93% when transcribed and diffed against the source, with the residual differences being transcription artifacts rather than missing speech.
Before you ship it
Licence, consent, and the things that decide this in practice
Check the licence before you pick a winner
"You own the weights" in the cost table is doing more work than it looks. You own the adapter you trained, on top of a base model whose terms you did not write. Checked on Hugging Face, 24 August 2026:
| Base model | Licence |
|---|---|
| FunAudioLLM/Fun-CosyVoice3-0.5B-2512 | Apache 2.0 |
| vibevoice/VibeVoice-1.5B | MIT |
| IndexTeam/IndexTTS-2 | custom: "bilibili Model Use License Agreement" |
| Qwen/Qwen3-TTS-12Hz-1.7B-Base | Apache 2.0 |
| ResembleAI/chatterbox | MIT |
| coqui/XTTS-v2 | Coqui Public Model License 1.0.0, non-commercial |
Two of these want reading rather than glancing. IndexTTS-2 ships a LICENSE.txt headed "bilibili Model Use License Agreement", with its own definitions of derivative works and acceptance-on-use terms. XTTS-v2 is Coqui Public Model License 1.0.0, which permits non-commercial use only, and that restriction covers the model's outputs as well as its weights. The model that came last is also the one you are least free to publish from.
One provenance note: I trained on vibevoice/VibeVoice-1.5B, a community copy, and Microsoft's first-party microsoft/VibeVoice-1.5B is also live and also MIT. Prefer the first-party repo, and read the licence on the specific checkpoint you pull, since a mirror can carry different terms than its source and terms change between releases.
Clone your own voice, and say that it is synthetic
Everything here is my voice, my recording, my consent. Cloning someone else's without permission is a legal problem in a growing number of places: Tennessee's ELVIS Act covers voice explicitly, right-of-publicity law applies in many US states, and the EU AI Act carries transparency obligations for synthetic media. None of that is legal advice, and all of it is worth ten minutes before you point this at a voice that is not yours. Label synthetic narration as synthetic.
Where this test stops
Seven systems is what I ran, and the field is bigger. F5-TTS, Fish Speech, Higgs Audio, and Sesame CSM went untried. F5-TTS is the one I would run next, because it fine-tunes and therefore competes in the same category as the winners rather than the zero-shot group. Length is the other open question: my generalisation test runs 124 words, the use case is ten-minute narration, and long-form drift is where these models tend to struggle.
Versions
Text to speech moves monthly, so these results are pinned to what I ran in August 2026: FunAudioLLM/Fun-CosyVoice3-0.5B-2512, vibevoice/VibeVoice-1.5B, IndexTeam/IndexTTS-2, Qwen/Qwen3-TTS-12Hz-1.7B-Base, coqui/XTTS-v2, and chatterbox-tts from PyPI. Assume a model released after this article behaves differently, and re-run the test rather than trusting the table.
What I would tell someone starting today
Fine-tune. Every zero-shot model I tried got half of it and missed the other half, and it split evenly: two landed my voice and missed the rhythm, two landed the rhythm and missed the voice. None got both.
Record one clean session before you touch a model. Forty five minutes from a phone in a quiet room beat everything I scavenged.
Then rank blind. Every time I evaluated with the labels visible, I confirmed what I already believed.
So I can narrate the research instead of filming it
I run NexusTrade, an AI-powered trading research platform, and I publish what it finds. The writing is the work; recording it was the tax. Now the articles narrate themselves and I spend the time on the analysis.
The platform is built the same way this test was: run the experiment, rank it blind, publish the number even when it says you were wrong.
Explore NexusTradeBuild the strategy this article describes
Create a free account to backtest ideas against market history, inspect the risk, and deploy to paper or live markets when you're ready.
or create an account with email
Free to browse. No credit card required.
No comments yet.