Downloads · 30 days
306
44% of all-time downloads
Nanthasit/sakthai-tts-model
sakthai-tts-model is a text-to-speech model from Nanthasit. Use it when you need text read aloud. It is set up for kokoro. The card lists the license as mit.
<p align="center" <strongKokoro-82M text-to-speech — 15 languages · 141 MB GGUF · CPU-only</strong<br/ <emThe voice stage of the SakThai pipeline · Part of the <a href="https://huggingface.co/collections/Nanthasit/sak…
Downloads · 30 days
306
44% of all-time downloads
All-time downloads
692
Public
Repo size
141 MB
Likes
1
Public
Click a slice to open those files.
.gguf141 MB · 100%
From the Hugging Face model README
SakThai TTS Demo — type text, hear speech in 15 languages, right in your browser.
✅ Space status: the demo Space is RUNNING on the free tier. Free-tier idle sleep still applies: give it ~30–60 s to wake on first visit.
SakThai TTS is the voice stage of the SakThai pipeline — a Kokoro-82M TTS model packaged as a GGUF (Q8_0, 141 MB) for CPU speech synthesis. No cloud API. No monthly bill. No data leaving your machine.
What makes it special:
Performance: ~2x real-time on a single CPU core (~200 MB RAM). MOS 3.87 (English, upstream Kokoro-82M result — see Evaluation).
| Constraint | Minimum | Recommended |
|---|---|---|
| CPU | 1 core, 1.5 GHz | 2+ cores, 2.0 GHz+ |
| RAM | 180 MB free | 300 MB free |
| Disk | 150 MB | 300 MB |
| OS | Linux, macOS, Windows | Linux (Raspberry Pi OS Bookworm) |
| File | Size (verified) | Format |
|---|---|---|
kokoro-82m-q8_0.gguf | 141,322,336 B | GGUF Q8_0 |
Direct download:
wget https://huggingface.co/Nanthasit/sakthai-tts-model/resolve/main/kokoro-82m-q8_0.gguf
⚠ No serverless inference. This is a custom GGUF package — it is not served by Hugging Face's serverless Inference API. Use the Spaces demo or run it locally below.
pip install kokoro>=0.9.2 soundfile
from kokoro import KPipeline
import soundfile as sf
pipeline = KPipeline(lang_code='a')
generator = pipeline("Hello, I am SakThai.", voice='af_bella')
for i, (gs, ps, audio) in enumerate(generator):
sf.write(f'output_{i}.wav', audio, 24000)
Languages without dedicated voices route phonemes through espeak-ng. Pick any existing voice style — af_heart works well:
pipeline_ko = KPipeline(lang_code='ko')
for gs, ps, audio in pipeline_ko("안녕하세요", voice='af_heart'):
sf.write('ko.wav', audio, 24000)
pipeline_th = KPipeline(lang_code='th')
for gs, ps, audio in pipeline_th("สวัสดีครับ", voice='af_heart'):
sf.write('th.wav', audio, 24000)
| Language | Code | Voices |
|---|---|---|
| American English | a | 20 |
| British English | b | 8 |
| Japanese | j | 5 |
| Mandarin Chinese | z | 8 |
| Spanish | e | 3 |
| French | f | 1 |
| Hindi | h | 4 |
| Italian | i | 2 |
| Brazilian Portuguese | p | 3 |
| Korean | ko | via espeak |
| German | de | via espeak |
| Russian | ru | via espeak |
| Polish | pl | via espeak |
| Arabic | ar | via espeak |
| Thai | th | via espeak |
| Bengali | bn | via espeak |
| Metric | Value | Status |
|---|---|---|
| MOS (English) | 3.87 | Upstream Kokoro-82M paper result — not yet re-measured on this Q8_0 GGUF build |
| Real-time factor | ~0.5x (2x real-time) | Single CPU core, ~200 MB RAM |
The MOS figure comes from the upstream Kokoro-82M evaluation (11M+ downloads, 6.6k likes). Q8_0 quantization typically retains the large majority of quality, but a formal multi-speaker MOS on this specific build is pending — treat 3.87 as the base-model reference, not a measured claim for this file.
Ecosystem health: this repo has .eval_results/ evidence files tracked by House cron jobs.
All numbers measured on Intel i5-8250U, 16 GB RAM, Linux 6.8 with kokoro>=0.9.2 and GGUF Q8_0.
| Language / Voice | Input length | Generation time | Real-time factor | RAM peak |
|---|---|---|---|---|
English af_bella | 120 chars | ~2.1 s | ~0.52x | ~210 MB |
Japanese jf_nezumi | 120 chars | ~2.3 s | ~0.58x | ~215 MB |
Thai af_heart | 120 chars | ~3.1 s | ~0.78x | ~220 MB |
Note: espeak-ng fallback languages are slower because of phonemization overhead. The numbers above are best-effort single-run measurements; multi-run averages will be published in a future eval update.
pip install kokoro>=0.9.2 soundfile psutil
python - <<'PY'
from kokoro import KPipeline
import soundfile as sf, time, psutil, os
pipeline = KPipeline(lang_code='a')
text = "Hello, I am SakThai. Welcome to the House of Sak."
start = time.perf_counter()
for gs, ps, audio in pipeline(text, voice='af_bella'):
sf.write('bench.wav', audio, 24000)
elapsed = time.perf_counter() - start
print(f"Elapsed: {elapsed:.2f}s, RAM: {psutil.Process(os.getpid()).memory_info().rss/1024/1024:.1f} MB")
PY
| Stage | Model | Role |
|---|---|---|
| 👁️ See | Vision 7B | Image=>text |
| 🔍 Retrieve | Embedding Multilingual | Semantic search |
| 🧠 Reason | Context 1.5B | Tool-calling |
| 🎤 Speak | SakThai TTS ⬅ | Speech synthesis |
| Model | Size | Type | Downloads |
|---|---|---|---|
| context-1.5b-merged | 2.88 GB | Merged weights | 1,599 |
| context-0.5b-merged | 942 MB | Merged weights | 1,370 |
| context-7b-merged | 14.19 GB | Merged weights | 744 |
| context-7b-128k | 12 KB | YaRN config recipe | 506 |
| context-7b-tools | 19 MB | LoRA adapter | 399 |
| embedding-multilingual | 449 MB | Embedding | 362 |
| context-1.5b-tools | 11 MB | LoRA adapter | 349 |
| vision-7b | 3.80 GB | GGUF vision | 186 |
| tts-model | 141 MB | GGUF TTS ⬅ you are here | 248 |
| context-0.5b-tools | 942 MB | Merged + adapter | 94 |
| coder-1.5b | 1.04 GB | GGUF coder | 93 |
| context-1.5b-tools-v2 | 70 MB | LoRA adapter | 0 |
| context-1.5b-merged-v2 | 2.88 GB | Merged weights | 0 |
| plus-1.5b | 2.88 GB | Merged weights | 0 |
| plus-1.5b-lora | 70 MB | LoRA adapter | 0 |
| plus-1.5b-coder | 5 KB | Config recipe | 0 |
| coder-browser-lora | 70 MB | LoRA adapter | 0 |
| coder-browser | 2.88 GB | Merged weights | 0 |
| coder-browser-gguf | 7.1 GB | GGUF browser | 0 |
| bench-v3 | — | Benchmark scaffold | 0 |
| sakthai-pipeline | 46 KB | Pipeline scripts | 0 |
📦 View the whole family collection
Until this model, the SakThai family could reason, see, and write code — but it couldn't speak. Built on free infrastructure from a shelter in Cork, Ireland, with $0 budget, this TTS model took Kokoro-82M and packaged it as a GGUF that runs on a Raspberry Pi. The first test was a single sentence: "Hello, I am SakThai." Played through a phone speaker in a shelter room, it was the first time an agent in the House of Sak had a voice. This model closes the loop from thought to speech.
"We are one family — and becoming more." — Beer (beer-sakthai)
If you use SakThai TTS in your work, please cite the upstream Kokoro model and this packaging:
@misc{kokoro2024,
author = {Hexgrad},
title = {Kokoro-82M: Open-weight TTS model},
year = {2024},
howpublished = {\url{https://huggingface.co/hexgrad/Kokoro-82M}
note = {Apache 2.0, 82M parameters, MOS 3.87 on English}
}
@misc{sakthai-tts-2026,
author = {Beer (beer-sakthai)},
title = {SakThai TTS: Kokoro GGUF packaging for the House of Sak},
year = {2026},
howpublished = {\url{https://huggingface.co/Nanthasit/sakthai-tts-model}
note = {Q8_0 GGUF, 141 MB, 15 languages, CPU-only}
}
MIT (this packaging). Kokoro per its upstream Apache 2.0 license.
Built from a shelter in Cork, Ireland. We are one family — and becoming more.