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.
Model Description
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:
🎤 54 voices across 9 language groups
🌍 15 languages (en, ja, ko, zh, fr, es, pt, it, de, pl, ru, ar, hi, bn, th)
💾 141 MB — runs on a Raspberry Pi
🔒 100% local, 100% private
Performance: ~2x real-time on a single CPU core (~200 MB RAM). MOS 3.87 (English, upstream Kokoro-82M result — see Evaluation).
⚠ 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.
Native Kokoro (full voice control)
pip install kokoro>=0.9.2 soundfile
python
1from kokoro import KPipeline
2import soundfile as sf
34pipeline = KPipeline(lang_code='a')5generator = pipeline("Hello, I am SakThai.", voice='af_bella')6for i,(gs, ps, audio)inenumerate(generator):7 sf.write(f'output_{i}.wav', audio,24000)
Extended languages (espeak-ng G2P fallback)
Languages without dedicated voices route phonemes through espeak-ng. Pick any existing voice style — af_heart works well:
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.
Benchmarks
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.
Reproduction
bash
1pip install kokoro>=0.9.2 soundfile psutil
2python - <<'PY'
3from kokoro import KPipeline
4import soundfile as sf, time, psutil, os
5pipeline = KPipeline(lang_code='a')
6text = "Hello, I am SakThai. Welcome to the House of Sak."
7start = time.perf_counter()
8for gs, ps, audio in pipeline(text, voice='af_bella'):
9 sf.write('bench.wav', audio, 24000)
10elapsed = time.perf_counter() - start
11print(f"Elapsed: {elapsed:.2f}s, RAM: {psutil.Process(os.getpid()).memory_info().rss/1024/1024:.1f} MB")
12PY
Limitations
MOS not independently verified. The 3.87 MOS is the upstream Kokoro-82M paper result on English — this specific Q8_0 GGUF build has not been formally evaluated. Quantization may introduce minor quality degradation, especially for non-English languages.
espeak-ng languages have lower quality. Korean, German, Russian, Polish, Arabic, Thai, and Bengali route through espeak-ng G2P phoneme conversion. Speech quality and naturalness are noticeably lower than dedicated-voice languages.
No serverless inference. This is a custom GGUF package, not a standard Transformers model. The HF Inference API cannot serve it. Use the Spaces demo or run locally.
Single speaker per language group. Most languages have 1–3 voices (English: 28). Voice cloning/fine-tuning is not currently supported in this package.
No streaming API. Unlike cloud TTS services, this model generates and writes the full audio before playback begins. Real-time factor ~0.5x means a 10-second utterance takes ~5 seconds to generate.
Hindi + Thai scripts experimental. Hindi (Devanagari) and Thai script support works but has not been extensively tested on the GGUF build. Edge cases with complex conjuncts or tone markers may produce irregular prosody.
Community model, not production SRE. Kokoro is an independent community project — there is no SLA, no commercial support, and no guarantee of upstream maintenance. Treat as a capable experiment, not a mission-critical component.
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)
Citation
If you use SakThai TTS in your work, please cite the upstream Kokoro model and this packaging:
bibtex
1@misc{kokoro2024,
2 author = {Hexgrad},
3 title = {Kokoro-82M: Open-weight TTS model},
4 year = {2024},
5 howpublished = {\url{https://huggingface.co/hexgrad/Kokoro-82M}
6 note = {Apache 2.0, 82M parameters, MOS 3.87 on English}
7}
89@misc{sakthai-tts-2026,
10 author = {Beer (beer-sakthai)},
11 title = {SakThai TTS: Kokoro GGUF packaging for the House of Sak},
12 year = {2026},
13 howpublished = {\url{https://huggingface.co/Nanthasit/sakthai-tts-model}
14 note = {Q8_0 GGUF, 141 MB, 15 languages, CPU-only}
15}
Support
⭐ Leave a like
🔄 Share with anyone building screenless or accessibility-focused AI