Kokoro
82M-parameter open-weight TTS model — near-commercial quality, 54 voices in 8 languages, Apache-2.0, runs on CPU.
About
Kokoro-82M is an open-weight text-to-speech model by hexgrad with just 82 million parameters, derived from the StyleTTS 2 architecture. Despite its small size it delivers quality widely reported as comparable to much larger cloud TTS systems, while running fast enough for CPU inference. The v1.0 release ships 54 preset voices across 9 locales (American/British English, Japanese, Mandarin, Spanish, French, Hindi, Italian, Brazilian Portuguese) under Apache-2.0 weights, making it deployable in commercial products without API fees. The companion kokoro PyPI package and the hexgrad/kokoro inference library provide a simple Python pipeline; the ecosystem adds OpenAI-compatible servers (Kokoro-FastAPI), Rust, and CoreML ports.
What it can do
- 82M-parameter non-autoregressive TTS model (StyleTTS 2 lineage) — small footprint (~82 MB weights), fast CPU inference
- 54 preset voices across 9 locales in v1.0: American English (20), British English (8), Japanese (5), Mandarin (8), Spanish (3), French (1), Hindi (4), Italian (2), Brazilian Portuguese (3)
- Apache-2.0 licensed weights — free for commercial deployment, no per-character fees (model card notes served cost under $1 per million characters via third-party APIs)
- 24 kHz audio output; `speed` parameter and text chunking to control pacing
- Phoneme-level input supported (e.g. `[Kokoro](/kˈOkəɹO/)` syntax) for pronunciation control
- Active port ecosystem: ONNX/Rust/CoreML conversions and OpenAI-compatible FastAPI servers exist in the community
Setup
Install the official inference library (Python 3.10–3.12):
```bash
pip install -q kokoro>=0.9.4 soundfile
# espeak-ng is required for grapheme-to-phoneme conversion:
apt-get -qq -y install espeak-ng
```
Basic usage:
```python
from kokoro import KPipeline
import soundfile as sf
pipeline = KPipeline(lang_code='a') # 'a' = American English
text = "Kokoro is an open-weight TTS model with 82 million parameters."
generator = pipeline(text, voice='af_heart')
for i, (gs, ps, audio) in enumerate(generator):
sf.write(f'{i}.wav', audio, 24000) # 24 kHz output
```
Weights (~82 MB) download automatically from Hugging Face on first run. Voice IDs encode locale + gender (e.g. af_heart = American female). For an OpenAI-compatible HTTP server, see the third-party remsky/Kokoro-FastAPI wrapper.
Prerequisites
Python 3.10–3.12 (PyPI classifier: <3.13, >=3.10). PyTorch. espeak-ng system package for G2P (note the GPL-3.0 licensing caveat below). Outbound network access for the first-run weight download from Hugging Face. No API key. CPU inference works; a GPU speeds up long batches.
Use cases
Works with
Trust score — 7/10
Scored 7/10 (verified tier, metrics-v1). Evidence: 9,280 GitHub stars (log-scaled vs catalog peers); blended with ~299,596 monthly package downloads; last push 432d ago; 0 releases/12mo; 214 open issues. Manual review: GitHub repo is hexgrad/kokoro (HF page is hexgrad/Kokoro-82M); repo quiet since Aug 2025; '#1 TTS Arena' is historical community vote; scam-site warning on model card. License: Apache-2.0 (inference lib; espeak-ng G2P dependency is GPL-3.0 — contamination risk for proprietary apps).
★ 9,280 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 7.7/10
- Maintenance · recency, releases, issue load
- 3.0/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 8.0/10
- · 9,280 GitHub stars (log-scaled vs catalog peers)
- · blended with ~299,596 monthly package downloads
- · last push 432d ago; 0 releases/12mo; 214 open issues
- · manual review: GitHub repo is hexgrad/kokoro (HF page is hexgrad/Kokoro-82M); repo quiet since Aug 2025; '#1 TTS Arena' is historical community vote; scam-site warning on model card
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.