๐ฃ๏ธ Kokoro TTS Locally: The 82M-Parameter Voice Model Setup
Why a tiny Apache-2.0 model with no voice cloning is still the narration tool I install first, plus the actual pip-install-to-first-spoken-line steps.
Derek Holt ยท Local AI & Hardware Writer
ยท 4 min read

Kokoro can't clone a single voice, ships with a fixed set of 54 presets, and I still reach for it before anything else when a script just needs to be read out loud. 82 million parameters is small enough that my CPU clears a paragraph faster than I can type the next one.
By the numbers
- 82M parameters, Apache 2.0: the only one of the major local voice models where "commercial use" doesn't come with an asterisk (hexgrad/Kokoro-82M)
- 54 voices across 8 languages, built on StyleTTS 2 with an ISTFTNet vocoder, no diffusion step, which is most of why it's fast
- Training ran about $1,000 of A100 80GB time against a few hundred hours of licensed audio, a rounding error next to what closed voice models cost to build
- Hit #1 on the community TTS Arena blind-vote leaderboard in January 2026, sharing a board with systems it could fit inside a hundred times over; as of this writing it holds roughly Elo 1056-1057 with a 54.4% win rate across 5,368 head-to-head match-ups (TTS Arena leaderboard)
Install (five minutes, no GPU required)
pip install "kokoro>=0.9.4" soundfile torch
Plus one system dependency, espeak-ng (apt-get -qq -y install espeak-ng on Linux, brew install espeak-ng on macOS, a prebuilt binary or conda package on Windows). Five more lines gets you a spoken sentence:
from kokoro import KPipeline
import soundfile as sf
pipeline = KPipeline(lang_code="a") # 'a' = American English
generator = pipeline("This is Kokoro, running entirely offline.", voice="af_heart")
for i, (graphemes, phonemes, audio) in enumerate(generator):
sf.write(f"line_{i}.wav", audio, 24000)
Voice names front-load language and gender: af_heart is American, female, the "Heart" preset. Swap lang_code and the voice name to reach the other 7 languages and the remaining presets. All 54 ship inside the package, no extra download.
Common install snags
espeak-ng not foundon Windows. The pip package doesn't bundle the binary; grab a prebuilt release from the espeak-ng project or install it through conda before touching the kokoro line.- First run pulls voice weights from Hugging Face. If your target machine is genuinely offline, run it once on a connected network so the cache populates, then disconnect.
- The generator yields one audio chunk per sentence-ish unit, not one file for the whole input. Long paragraphs come back as several
(graphemes, phonemes, audio)tuples; concatenate them yourself or write each chunk and stitch with ffmpeg. - Output lands at 24kHz. Fine for narration, video, and podcasts; resample down if you're feeding a telephony pipeline that expects 8kHz.
Why no voice cloning is the point, not the limitation
Every time someone asks me for "the best local TTS," they're really asking one of two different questions โ give me a good voice, or give me one specific voice. Kokoro only answers the first, on purpose. Cloning models like Chatterbox and XTTS want real GPU time and come with their own license fine print, solving a problem most narration work doesn't actually have. If a script just needs to sound human and ship without a legal review, Apache 2.0 plus 54 presets is the boring, correct answer. Where cloning genuinely earns its weight, I cover that trade-off in the Kokoro vs Chatterbox vs XTTS comparison and the dedicated XTTS cloning guide.
Speed: the one guide where I don't have to talk about VRAM
Full weights land under 1GB at fp16, and if you do route it to a GPU it asks for maybe 2-3GB. A footnote next to what I'd spend loading an LLM. On CPU alone, independent hands-on tests report anywhere from roughly 5x real time on a 32-core machine up to over 30x on a free-tier cloud CPU. On my own RTX 4080 desk rig I don't even bother sending this one to the GPU โ the CPU cores are done before I've finished typing the next line.
Where it fits in a bigger voice stack
Pair Kokoro with Whisper for the listening half of a voice pipeline, or with Ollama for the talking-back half of a conversational one. If your target hardware is a Raspberry Pi rather than a real desktop or laptop, Kokoro isn't the move. That's Piper's job, built for hardware this small isn't.
The honest limits
- No cloning, worth repeating before you install anything.
- Eight languages total, against XTTS's 17 or Chatterbox's 23-language multilingual variant.
- No emotion or delivery-style control. Chatterbox has a dial for that, Kokoro doesn't.
- 54 fixed presets. If none of them fit the voice in your head, cloning is the only door left, and it isn't this one.
How I picked these numbers
Parameter count, license, and architecture come straight from the model's own Hugging Face card and GitHub repo. The leaderboard figures are pulled from TTS Arena's public blind-vote board, which I trust more than any single reviewer's ear: 5,368 appearances is a real sample size, not a cherry-picked clip. Kokoro's own card doesn't publish a formal real-time-factor number, so the CPU speed claims above are cross-checked across more than one independent hands-on test rather than taken on faith from one blog post.
Kokoro is where I tell people to start, never where I tell them to stop.
Once you know exactly which voice problem you actually have (cloning, emotion, a language outside its eight), the comparison against Chatterbox and XTTS tells you whether you've outgrown it.
Frequently asked questions
โธIs Kokoro free for commercial use?
Yes. It's Apache 2.0, no asterisk, which puts it ahead of XTTS (non-commercial license) for anyone shipping a real product.
โธDoes Kokoro need a GPU?
No. It runs faster than real time on CPU alone in every hands-on test I've cross-checked. A GPU only shaves the number further, and barely, since the model is already under 1GB.
โธCan Kokoro clone a voice?
No. It ships 54 fixed presets and nothing else. For cloning, look at Chatterbox or XTTS instead.
โธHow many voices and languages does Kokoro support?
54 voices spread across 8 languages, as of the current release.
The 5 best AI video finds, every week
New models, tested prompts, and what actually worked in our production โ one short email a week. No spam, unsubscribe anytime.
Written by Derek Holt
Local AI & Hardware Writer
Runs the site's local-inference rig and benchmarks every GPU, quant, and speed-stack claim on it personally before it goes in a guide. Will not shut up about VRAM bandwidth.
Keep learning
GuidesLocal Voice AI: Whisper, TTS & Offline Assistants (2026)
The complete map of the self-hosted voice stack: Whisper and faster-whisper for speech-to-text, Kokoro/Piper/Chatterbox/XTTS for voices, Ollama for the brain, and how they wire together offline.
2026-07-27
ComparisonsKokoro vs Chatterbox vs XTTS: Best Local TTS in 2026
A same-question comparison of the three local voice models that actually matter: what each one clones, what license lets you ship, and which one your hardware can even run.
2026-07-27
GuidesXTTS Voice Cloning Locally: Clone Any Voice, Fully Offline
XTTS clones a voice from a 6-second sample on your own GPU, fully offline. The correct 2026 install, real VRAM numbers, and where long-form narration quality actually breaks down.
2026-07-27
GuidesPiper TTS: Fast Offline Voice Synthesis on a Raspberry Pi
Piper runs real-time neural text-to-speech on a Raspberry Pi with no GPU at all. The install, the license change nobody mentions, and which quality tier actually fits a Pi 4 versus a Pi 5.
2026-07-27