--- 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). kokoro