phoonnx
July 24, 2026 · View on GitHub
phoonnx
Multilingual phonemization and Text-to-Speech using ONNX models. phoonnx loads
and runs TTS voices from several ecosystems (native phoonnx, Piper, Mimic3, Coqui, MMS,
Transformers) through one onnxruntime-based interface, and ships a training pipeline for
building your own voices.
It reaches 1000+ languages and voices across the bundled voice indexes. See the full list in VOICES.md.
30-second quickstart
pip install phoonnx
Download a voice and synthesize a WAV from the command line:
# populate the local voice catalog, then fetch one voice
phoonnx-voices update-cache
phoonnx-voices download OpenVoiceOS/phoonnx_pt-PT_miro_tugaphone
The same thing from Python:
import wave
from phoonnx.voice import TTSVoice
voice = TTSVoice.load("model.onnx", "model.json")
with wave.open("hello.wav", "wb") as wav_file:
voice.synthesize_wav("Hello world!", wav_file)
New here? Start with the Quickstart — it downloads a voice and speaks a sentence end-to-end.
Train your own voice in an afternoon
Record (or obtain) a single-speaker dataset, preprocess it, train a VITS model on one GPU,
export to ONNX, and load it back — all with the bundled phoonnx_train toolkit. Follow the
golden path in docs/training/quickstart.md.
Features
| Capability | Where |
|---|---|
| Run ONNX voices on CPU or GPU (CUDA/ROCm/DirectML/CoreML/OpenVINO) | Usage · Configuration |
| ~40 phonemizer backends across many languages | Phonemizers |
| Load Piper / Mimic3 / Coqui / Transformers / MMS voices | Architecture |
| 17 synthesis engines behind one adapter registry | Engines |
| Zero-shot voice cloning (YourTTS, StyleTTS2, ZipVoice, F5-TTS, Chatterbox) | Cloning |
| Low-latency streaming for VITS voices | Streaming |
| Optional 48 kHz audio super-resolution over synthesized audio | OVOS plugin |
| Download and cache voices from HuggingFace and other sources | Voice manager |
| Train and fine-tune new voices | Training |
| Drop-in OpenVoiceOS TTS plugin | OVOS plugin |
Documentation
The docs are organized around three reader paths — see the documentation index:
- Use a voice — Installation → Quickstart → Usage
- Train a voice — Training quickstart → Datasets → Export
- Understand the internals — Architecture → Phonemizers → Engines
OpenVoiceOS plugin
phoonnx ships the ovos-tts-plugin-phoonnx TTS plugin. Configure it in mycroft.conf:
"tts": {
"module": "ovos-tts-plugin-phoonnx",
"ovos-tts-plugin-phoonnx": {
"voice": "OpenVoiceOS/phoonnx_pt-PT_miro_tugaphone"
}
}
Full options in docs/ovos_plugin.md.
Docker / TTS server
docker compose up
See docs/docker.md.
License and credits
phoonnx is licensed under Apache-2.0. Copyright Casimiro Ferreira.
It builds on the work of others, including jaywalnut310/vits (the VITS backbone), and interoperates with the Piper, Mimic3, Coqui, MMS and Transformers voice formats. Language-specific components are credited on the Phonemizers page.
The SuperTonic inference code (phoonnx/engines/supertonic.py) is adapted from Supertone
Inc.'s MIT-licensed reference implementation. SuperTonic model weights
(Supertone/supertonic-3) are licensed OpenRAIL-M, not Apache-2.0 — review the model's
license before commercial use.