---
license: apache-2.0
license_name: "apache-2.0"
license_link: https://github.com/hexgrad/kokoro/blob/dfb907a02bba8152ca444717ca5d78747ccb4bec/LICENSE
library_name: synthesize.cpp
pipeline_tag: text-to-speech
language:
- en
tags:
- gguf
- synthesize.cpp
- text-to-speech
- tts
- kokoro
- styletts2
- istftnet
- multi-voice
- cpu
- cuda
synthesize_cpp:
model_family: kokoro
validation_level: port_validated
quality_evaluation: not_run
listening_audit: no_obvious_regression
sample_rate_hz: 24000
voice_count: 54
input_kinds:
- phonemes_utf8
- token_ids
frontend_provider: synthesize.symbol_map
profiles:
- F32
- F16
- Q8_MIXED
---
# Kokoro v1.0: synthesize.cpp GGUF
GGUF conversions of the official
[Kokoro-82M v1.0 checkpoint](https://huggingface.co/hexgrad/Kokoro-82M/resolve/f3ff3571791e39611d31c381e3a41a3af07b4987/kokoro-v1_0.pth) for
[synthesize.cpp](https://github.com/handy-computer/synthesize.cpp).
Ported from [hexgrad/kokoro](https://github.com/hexgrad/kokoro) revision
[`dfb907a02bba8152ca444717ca5d78747ccb4bec`](https://github.com/hexgrad/kokoro/tree/dfb907a02bba8152ca444717ca5d78747ccb4bec) and
validated on 2026-07-26 against the pinned upstream PyTorch implementation.
A self-contained Kokoro inference package converted from the official
Kokoro-82M v1.0 checkpoint. It is a StyleTTS 2 decoder with an iSTFTNet
generator, runs on CPU and CUDA through the same public library interface,
and carries all 54 preset Voices. The model is language-blind: it consumes
IPA phoneme token IDs and a style vector, so the Text Frontend is the
caller's concern rather than the package's.
## Downloads
| Profile | Download | Size | Tensor storage | SHA-256 |
| --- | --- | ---: | --- | --- |
| F32 | [kokoro-v1-0-F32.gguf](https://huggingface.co/jiangzhuo9357/kokoro-v1-0-gguf/resolve/main/kokoro-v1-0-F32.gguf) | 352.8 MB (352,813,952 bytes) | 511 F32 | `23cde0e3b2a3082fa97a84aed746d8c0cee79eca1ee9599c6e13b7e94ba0328b` |
| F16 | [kokoro-v1-0-F16.gguf](https://huggingface.co/jiangzhuo9357/kokoro-v1-0-gguf/resolve/main/kokoro-v1-0-F16.gguf) | 246.5 MB (246,451,648 bytes) | 384 F32 + 127 F16 | `951e4be979b8af5e72f2353de947c65372c84790b500dd0f53384c958ee2596e` |
| Q8_MIXED | [kokoro-v1-0-Q8_MIXED.gguf](https://huggingface.co/jiangzhuo9357/kokoro-v1-0-gguf/resolve/main/kokoro-v1-0-Q8_MIXED.gguf) | 216.1 MB (216,109,696 bytes) | 384 F32 + 14 F16 + 113 Q8_0 | `0d72f3778125a8f54c23468c6a2534f114d529121f9788e46ec45dc7d21b923c` |
All profiles use the same Kokoro architecture and public synthesize.cpp API. The
profile name describes a versioned storage policy, not the language or Execution
Backend.
## Validation status
`validation_level: port_validated`
7 graph stages were replayed for 15 cases on
DGX Spark CPU, NVIDIA GB10 CUDA 13.3. Duration structure was exact in every
case. CUDA placement contained zero executable CPU fallback nodes.
| Profile | CPU waveform correlation | DGX Spark CUDA waveform correlation |
| --- | ---: | ---: |
| F32 | 0.987437 | 0.987973 |
| F16 | 0.987445 | 0.988863 |
| Q8_MIXED | 0.98479 | 0.986341 |
Correlation is the honest measure for this family rather than a sample-wise
drift. Kokoro's excitation is a sine whose phase accumulates across the whole
utterance, so a difference in F0 of a few parts in ten thousand becomes
radians of phase by the last syllable: the waveforms diverge by construction
while the speech does not. The figure quoted is the worst case over the
suite. What is bit-exact, on every profile and both backends, is the
predicted durations.
**Quality evaluation has not been run.** These results establish that the port,
Voice selection,
deterministic request path, and CPU/CUDA execution work. They do
not claim perceptual equivalence, naturalness, intelligibility, or speaker
similarity.
**A listening audit found no obvious regression.** One maintainer compared a
small set against the reference and reported nothing audible. That is release
evidence, not a measurement: no rated comparison, no panel, no score, and it does
not change the validation level. It says a defect large enough to hear was not
found in what was heard.
## Voices and input
This package exposes 54 preset speaker IDs,
`preset-catalog`. It produces 24000 Hz
mono F32 audio. No default speaker is invented; every request must select a
Voice.
This package accepts UTF-8 phoneme strings through the built-in
`synthesize.symbol_map` frontend, and also accepts exact token IDs. The frontend
validates UTF-8, maps each Unicode scalar through the symbol table embedded in
the GGUF, and applies the model's blank-insertion rule.
The built-in frontend does not perform grapheme-to-phoneme conversion or text
normalization. Callers starting from raw text must currently run a compatible
G2P frontend externally. The runtime does not silently invoke eSpeak or download
a frontend.
## Usage
Build synthesize.cpp and synthesize a deterministic request:
```bash
git clone https://github.com/handy-computer/synthesize.cpp.git
cd synthesize.cpp
cmake -S . -B build -DSYNTH_BUILD_CLI=ON
cmake --build build -j
hf download jiangzhuo9357/kokoro-v1-0-gguf kokoro-v1-0-F16.gguf \
--local-dir models/kokoro-v1-0
build/bin/synthesize-cli \
--model models/kokoro-v1-0/kokoro-v1-0-F16.gguf \
--output output.wav \
--phonemes "ðə skˈI əbˈʌv ðə pˈɔɹt wʌz ðə kˈʌləɹ ʌv tˈɛləvˌɪʒən, tˈund tə ɐ dˈɛd ʧˈænᵊl." \
--language en \
--voice af_heart \
--seed 0
```
The same local GGUF can be loaded through the public C ABI and wrapped by C++,
Rust, or Python. Model loading never contacts Hugging Face.
## License and checkpoint provenance
Both the pinned source repository and the weights carry an explicit Apache-2.0
grant: the repository ships a [LICENSE at the ported revision](https://github.com/hexgrad/kokoro/blob/dfb907a02bba8152ca444717ca5d78747ccb4bec/LICENSE),
and the model card declares `license: apache-2.0`. The Voice packs are
distributed in the same weights repository at the same revision.
The upstream card lists CC BY training sources — Koniwa `tnc` and SIWIS —
which are credited here in accordance with that licence.
Both the source and the weights carry an explicit Apache-2.0 grant, so no
redistribution assumption is required for this variant. The upstream model
card lists CC BY training sources — Koniwa `tnc` and SIWIS — whose attribution
is carried forward here.
Only English is declared. The checkpoint also ships Voices for British
English, Japanese, Mandarin Chinese, Spanish, French, Hindi, Italian and
Brazilian Portuguese; those Voices load and run, but no language beyond `en`
has its own validation cases, so none is advertised.
---
## Original upstream project card
> Reproduced from [the pinned upstream repository card](https://huggingface.co/hexgrad/Kokoro-82M/blob/f3ff3571791e39611d31c381e3a41a3af07b4987/README.md)
> for offline provenance. The upstream repository remains authoritative.
**Kokoro** is an open-weight TTS model with 82 million parameters. Despite its lightweight architecture, it delivers comparable quality to larger models while being significantly faster and more cost-efficient. With Apache-licensed weights, Kokoro can be deployed anywhere from production environments to personal projects.
🐈 **GitHub**: https://github.com/hexgrad/kokoro
🚀 **Demo**: https://hf.co/spaces/hexgrad/Kokoro-TTS
> [!NOTE]
> As of April 2025, the market rate of Kokoro served over API is **under $1 per million characters of text input**, or under $0.06 per hour of audio output. (On average, 1000 characters of input is about 1 minute of output.) Sources: [ArtificialAnalysis/Replicate at 65 cents per M chars](https://artificialanalysis.ai/text-to-speech/model-family/kokoro#price) and [DeepInfra at 80 cents per M chars](https://deepinfra.com/hexgrad/Kokoro-82M).
>
> This is an Apache-licensed model, and Kokoro has been deployed in numerous projects and commercial APIs. We welcome the deployment of the model in real use cases.
> [!CAUTION]
> Fake websites like kokorottsai_com (snapshot: https://archive.ph/nRRnk) and kokorotts_net (snapshot: https://archive.ph/60opa) are likely scams masquerading under the banner of a popular model.
>
> Any website containing "kokoro" in its root domain (e.g. kokorottsai_com, kokorotts_net) is **NOT owned by and NOT affiliated with this model page or its author**, and attempts to imply otherwise are red flags.
- [Releases](#releases)
- [Usage](#usage)
- [EVAL.md](https://huggingface.co/hexgrad/Kokoro-82M/blob/main/EVAL.md) ↗️
- [SAMPLES.md](https://huggingface.co/hexgrad/Kokoro-82M/blob/main/SAMPLES.md) ↗️
- [VOICES.md](https://huggingface.co/hexgrad/Kokoro-82M/blob/main/VOICES.md) ↗️
- [Model Facts](#model-facts)
- [Training Details](#training-details)
- [Creative Commons Attribution](#creative-commons-attribution)
- [Acknowledgements](#acknowledgements)
### Releases
| Model | Published | Training Data | Langs & Voices | SHA256 |
| ----- | --------- | ------------- | -------------- | ------ |
| **v1.0** | **2025 Jan 27** | **Few hundred hrs** | [**8 & 54**](https://huggingface.co/hexgrad/Kokoro-82M/blob/main/VOICES.md) | `496dba11` |
| [v0.19](https://huggingface.co/hexgrad/kLegacy/tree/main/v0.19) | 2024 Dec 25 | <100 hrs | 1 & 10 | `3b0c392f` |
| Training Costs | v0.19 | v1.0 | **Total** |
| -------------- | ----- | ---- | ----- |
| in A100 80GB GPU hours | 500 | 500 | **1000** |
| average hourly rate | $0.80/h | $1.20/h | **$1/h** |
| in USD | $400 | $600 | **$1000** |
### Usage
You can run this basic cell on [Google Colab](https://colab.research.google.com/). [Listen to samples](https://huggingface.co/hexgrad/Kokoro-82M/blob/main/SAMPLES.md). For more languages and details, see [Advanced Usage](https://github.com/hexgrad/kokoro?tab=readme-ov-file#advanced-usage).
```py
!pip install -q kokoro>=0.9.2 soundfile
!apt-get -qq -y install espeak-ng > /dev/null 2>&1
from kokoro import KPipeline
from IPython.display import display, Audio
import soundfile as sf
import torch
pipeline = KPipeline(lang_code='a')
text = '''
[Kokoro](/kˈOkəɹO/) is an open-weight TTS model with 82 million parameters. Despite its lightweight architecture, it delivers comparable quality to larger models while being significantly faster and more cost-efficient. With Apache-licensed weights, [Kokoro](/kˈOkəɹO/) can be deployed anywhere from production environments to personal projects.
'''
generator = pipeline(text, voice='af_heart')
for i, (gs, ps, audio) in enumerate(generator):
print(i, gs, ps)
display(Audio(data=audio, rate=24000, autoplay=i==0))
sf.write(f'{i}.wav', audio, 24000)
```
Under the hood, `kokoro` uses [`misaki`](https://pypi.org/project/misaki/), a G2P library at https://github.com/hexgrad/misaki
### Model Facts
**Architecture:**
- StyleTTS 2: https://arxiv.org/abs/2306.07691
- ISTFTNet: https://arxiv.org/abs/2203.02395
- Decoder only: no diffusion, no encoder release
**Architected by:** Li et al @ https://github.com/yl4579/StyleTTS2
**Trained by**: `@rzvzn` on Discord
**Languages:** Multiple
**Model SHA256 Hash:** `496dba118d1a58f5f3db2efc88dbdc216e0483fc89fe6e47ee1f2c53f18ad1e4`
### Training Details
**Data:** Kokoro was trained exclusively on **permissive/non-copyrighted audio data** and IPA phoneme labels. Examples of permissive/non-copyrighted audio include:
- Public domain audio
- Audio licensed under Apache, MIT, etc
- Synthetic audio[1] generated by closed[2] TTS models from large providers
[1] https://copyright.gov/ai/ai_policy_guidance.pdf
[2] No synthetic audio from open TTS models or "custom voice clones"
**Total Dataset Size:** A few hundred hours of audio
**Total Training Cost:** About $1000 for 1000 hours of A100 80GB vRAM
### Creative Commons Attribution
The following CC BY audio was part of the dataset used to train Kokoro v1.0.
| Audio Data | Duration Used | License | Added to Training Set After |
| ---------- | ------------- | ------- | --------------------------- |
| [Koniwa](https://github.com/koniwa/koniwa) `tnc` | <1h | [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.ja) | v0.19 / 22 Nov 2024 |
| [SIWIS](https://datashare.ed.ac.uk/handle/10283/2353) | <11h | [CC BY 4.0](https://datashare.ed.ac.uk/bitstream/handle/10283/2353/license_text) | v0.19 / 22 Nov 2024 |
### Acknowledgements
- 🛠️ [@yl4579](https://huggingface.co/yl4579) for architecting StyleTTS 2.
- 🏆 [@Pendrokar](https://huggingface.co/Pendrokar) for adding Kokoro as a contender in the TTS Spaces Arena.
- 📊 Thank you to everyone who contributed synthetic training data.
- ❤️ Special thanks to all compute sponsors.
- 👾 Discord server: https://discord.gg/QuGxSWBfQy
- 🪽 Kokoro is a Japanese word that translates to "heart" or "spirit". It is also the name of an [AI in the Terminator franchise](https://terminator.fandom.com/wiki/Kokoro).