Wayu-Paxa-TTS-Edge

Fixed-voice Thai–English text-to-speech: 82M parameters, 12 voices, 24 kHz, fast enough to run on CPU. It reads Thai, English and code-switched Thai–English text. Release artifact for the paper Building and Evaluating Fixed-Voice Thai TTS from Synthetic Speech.

Not to be confused with Paxa TTS Flash — the two target different needs. Wayu-Paxa-TTS-Edge is research-focused and small enough to run locally; Paxa TTS Flash is the production-ready service, with markedly more realistic voices. If you are shipping to users, that is the one you want.

Research artifact. Released for reproducibility and further research alongside the paper above. Not a product: no maintenance or availability commitment, and no warranty. There is no staffed support channel — but community help is very welcome, so please open an issue or a pull request on wayu-research/wayu-tts-inference.

Code: wayu-research/wayu-tts-inference. Evaluation: wayu-research/thai-tts-eval.

Usage

pip install git+https://github.com/wayu-research/wayu-tts-inference
apt-get install espeak-ng      # optional: English words no dictionary lists
from wayu_tts import ThaiTTS

tts = ThaiTTS.from_pretrained("wayu-ai/wayu-paxa-tts-edge")
audio = tts("เมื่อวานเรียก Grab ไปทำงาน รถมาเร็วมาก", voice="m_young_clear")
tts.save("out.wav", audio)
wayu-tts "สวัสดีค่ะ" --voice f_young_clear --out hello.wav

Text longer than the 512-token context is split at sentence boundaries and rejoined, so there is no length limit at the call site. Generation is not bit-reproducible unless you pass seed=.

Voices

voice design delivery
f_teen_bright female, teenager, high pitch engaging
f_young_bright female, young adult, high pitch engaging
f_young_clear female, young adult, moderate pitch neutral
f_young_warm female, young adult, low pitch read
f_mid_clear female, middle-aged, moderate pitch neutral
f_mid_warm female, middle-aged, low pitch read
f_elderly_soft female, elderly, moderate pitch neutral
f_elderly_low female, elderly, low pitch read
m_teen_bright male, teenager, high pitch engaging
m_young_clear male, young adult, moderate pitch neutral
m_mid_warm male, middle-aged, low pitch read
m_elderly_deep male, elderly, very low pitch read

The voices are synthetic — distilled from a zero-shot voice-cloning teacher (OmniVoice) on designed reference prompts, and there is no cloning path. Because OmniVoice was trained on in-the-wild speech, these synthetic voices may incidentally resemble real individuals; we did not crawl speech data or intentionally clone any real person.

Frontend

Thai spans go through tltk, Latin spans through misaki-en (the upstream English G2P), and both land in the model's single shared IPA inventory — so a code-switched sentence comes out as one phoneme string with no script left in it. Numbers, ฿, %, and common abbreviations are expanded to spoken Thai first.

Evaluation

Two benchmarks live in thai-tts-eval, both scoring audio against text and prescribing nothing about how the audio was made:

  • wayu-ai/thai-tts-keyword-bench — 1,531 sentences, each with one hard keyword (brand, name, rare compound, chat spelling): Challenge-Set Keyword Accuracy. A perfect system cannot score 100% — the scoring ASR sometimes writes an unlisted homophone of a correctly spoken word — so compare systems against each other, never against 100%.
  • wayu-ai/thai-tts-pause-bench — 210 long sentences with frozen gold break masks, scoring where the system breathes: Prosody Pause Accuracy.

Results from the paper. Keyword accuracy uses the 1,531 items and Thai CER a separate 500-sentence set; English CER uses 500 held-out LibriTTS lines; pause and speaker metrics use the 210 long sentences.

system params keyword ↑ CER Thai ↓ CER English ↓ pause precision ↑ PPER ↓ intra-word pause ↓ pauses/clip speaker sim. ↑
Wayu-Paxa-TTS-Edge 82M 68.2% 3.7% 1.1% 91.4% 6.7% 1.4% 0.89 0.890
OmniVoice teacher 600M 72.8% 4.6% 0.9% 89.9% 17.6% 5.2% 1.79 0.899
Gemini 3.1 Flash TTS ≥405B (literature-derived proxy) 79.8% 3.3% 0.8% 96.4% 13.8% 1.9% 4.44 0.816

Limitations

  • Central Thai only. No dialect coverage.
  • Dictionary-based G2P. Informal and chat spellings are mis-segmented; ambiguous written forms are read by rule, not by lexicon.
  • Long sentences drift. Style buckets past the longest length seen in training reuse the longest style available, and rate control degrades there.
  • Fixed voices. No cloning, no reference-audio input, no style control beyond speed.
  • Synthetic speech. Do not present output as a recording of a real person.

Disclaimer

Provided "as is", without warranty of any kind, express or implied, to the fullest extent permitted by law (CC-BY-NC-4.0, section 5). The authors, the maintainers and their affiliated institutions accept no responsibility and no liability for any damage, loss, cost or claim arising from use or misuse of this model or its output, and are not responsible for how third parties use it.

This model generates synthetic speech. You are solely responsible for what you synthesize and for complying with the law wherever you deploy it: do not present output as a recording of a real person, do not use it to impersonate anyone or to produce misleading, defamatory or fraudulent audio, and disclose that audio is machine-generated wherever a listener could reasonably be misled.

License

CC-BY-NC-4.0 — attribution required, commercial use not permitted. For Thai TTS in a commercial product, use Paxa TTS Flash.

Acceptable use. By downloading or using this model you agree to the Wayu Research Acceptable Use terms.

Citation

@misc{pipatanakul2026buildingevaluatingfixedvoicethai,
      title={Building and Evaluating Fixed-Voice Thai TTS from Synthetic Speech}, 
      author={Kunat Pipatanakul and Potsawee Manakul and Warit Sirichotedumrong and Sittipong Sripaisarnmongkol and Pakorn Nathong and Phatrasek Jirabovonvisut},
      year={2026},
      eprint={2609.03502},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2609.03502}, 
}

Contact

Kunat Pipatanakul — research@wayuresearch.org

Downloads last month
111
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using wayu-ai/wayu-paxa-tts-edge 1

Collection including wayu-ai/wayu-paxa-tts-edge

Paper for wayu-ai/wayu-paxa-tts-edge