Skip to main content

KorvaTTS — Vietnamese-first, on-device text-to-speech

🇻🇳 Tiếng Việt

Models License: Apache-2.0 GitHub stars

KorvaTTS is an open-source text-to-speech system focused on Vietnamese with natural code-switching (Vietnamese sentences that contain English words, brand names, tech terms). It runs entirely on-device through ONNX Runtime: no GPU required, no API calls, 44.1 kHz output.

The model is our own re-implementation of the 99M-parameter Supertonic 3 architecture (flow-matching TTS), trained from scratch on Vietnamese data, with a vocoder based on BlueCodec. Upstream Supertonic is being archived by its authors; KorvaTTS continues the line with a Vietnamese focus and an open roadmap toward voice cloning and training.

Highlights

  • 🇻🇳 Vietnamese-first — trained on Vietnamese audiobook speech plus a private code-switching set
  • 🔀 Code-switching — English words inside Vietnamese sentences are read naturally
  • Fast on CPU — real-time factor well below 1 on a laptop CPU; GPU optional
  • 🔊 44.1 kHz WAV output, no external upsampler
  • 🧩 Drop-in compatible with Supertonic 3 runtimes (see Compatibility)
  • 🪪 Apache-2.0 for both code and weights

Roadmap

Phase Scope Status
1. ONNX inference Python package, CLI, published weights + voice styles on Hugging Face ✅ this release
2. Voice cloning + training Reference-audio → voice style encoder, PyTorch training / fine-tuning recipes, dataset tooling 🔜 planned
3. Architecture improvements Original changes to the TTS + cloning architecture for better Vietnamese prosody and cloning fidelity. Breaks Supertonic compatibility. 🧭 later

Phase 2 starts once the phase-1 release has a healthy community around it — our goal is 1,000 GitHub starsGitHub stars. Star the repo to move the roadmap forward, and follow the issues tab / discussions for progress.

Star History Chart

Language support

  • Primary: Vietnamese (lang="vi"), including English words embedded in Vietnamese text.
  • English (lang="en"): part of the training data is English, so plain English works, but we do not guarantee English quality matches — or exceeds — the original Supertonic 3 English voices. Vietnamese is what this model is built for.
  • Other languages: the Supertonic 3 tag set (31 languages) is still accepted by the text encoder, but those languages were not in the training data; quality is untested.

Training data

Installation

pip install korvatts

Requires Python ≥ 3.10. For GPU inference install onnxruntime-gpu (CUDA) instead of onnxruntime.

Quick start

from korvatts import TTS

tts = TTS()  # first run downloads weights + voices from Hugging Face
print(tts.list_voices())

wav, duration = tts.synthesize(
    "Hôm nay team mình sẽ demo tính năng text-to-speech mới.",
    voice="khanh_vy",
    lang="vi",
    total_steps=32,  # default; best quality. Lower (8-16) for faster synthesis
    speed=1.0,       # 0.5 .. 2.0
)
tts.save_audio(wav, "output.wav")

Command line:

korvatts voices
korvatts synth "Xin chào, đây là KorvaTTS." -v khanh_vy -o hello.wav

Use local assets instead of downloading: pass TTS(assets_dir="path/to/assets") or set KORVATTS_ASSETS_DIR. The directory must contain onnx/ and voice_styles/.

Voices

10 bundled voices — 5 female, 5 male. Listen to every voice on the Hugging Face model card.

Female Male
bao_kim — Bảo Kim gia_bao — Gia Bảo
khanh_vy — Khánh Vy hoang_nam — Hoàng Nam
ngoc_huyen — Ngọc Huyền huu_dat — Hữu Đạt
phuong_linh — Phương Linh quang_huy — Quang Huy
quynh_nhu — Quỳnh Như thanh_phong — Thanh Phong

Compatibility with Supertonic

The phase-1 weights keep the exact ONNX graph signatures and voice-style JSON format of Supertonic 3. You can copy the KorvaTTS onnx/ and voice_styles/ folders into any Supertonic 3 runtime (Python, Node.js, browser/WebGPU, Rust, C++, Swift, Flutter, …) and they will work unchanged.

This compatibility is intentional for phases 1–2. Phase 3 will change the architecture and will not be loadable by Supertonic runtimes. Version tags on Hugging Face will make it clear which checkpoints are compatible.

Licenses

Component License
Source code in this repository Apache-2.0
Model weights & voice styles Apache-2.0 — trained from scratch, not derived from Supertonic weights

Portions of the inference code are adapted from Supertonic (MIT, © Supertone Inc.); the vocoder follows BlueCodec from BlueTTS (MIT). See NOTICE. KorvaTTS is not affiliated with Supertone Inc.

Acknowledgements & citation

KorvaTTS builds on the work of others. If you use it, please also cite them:

@misc{korvatts2026,
  title        = {KorvaTTS: Vietnamese-first on-device text-to-speech},
  author       = {dogenthq},
  year         = {2026},
  howpublished = {\url{https://github.com/dogenthq/KorvaTTS}}
}

@article{kim2025supertonictts,
  title   = {SupertonicTTS: Towards Highly Efficient and Streamlined Text-to-Speech System},
  author  = {Kim, Hyeongju and Yang, Jinhyeok and Yu, Yechan and Ji, Seunghun and Morton, Jacob and Bous, Frederik and Byun, Joon and Lee, Juheon},
  journal = {arXiv preprint arXiv:2503.23108},
  year    = {2025}
}

@misc{melichov2025bluetts,
  title        = {BlueTTS},
  author       = {Melichov, Max},
  year         = {2025},
  howpublished = {\url{https://github.com/maxmelichov/BlueTTS}}
}

@inproceedings{vu2025phoaudiobook,
  title     = {Zero-Shot Text-to-Speech for Vietnamese},
  author    = {Vu, Thi and Nguyen, Linh The and Nguyen, Dat Quoc},
  booktitle = {Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Short Papers)},
  year      = {2025}
}

Support the project

KorvaTTS is free and open source. Training runs and voice recordings cost real money — if this project is useful to you, a small donation goes directly into the voice cloning and training work in phase 2. Scan the VietQR code below with any Vietnamese banking app (international options coming later).

VietQR — Techcombank 19035566489014 — LE TAN NGHIA

Contributing

Issues and pull requests are welcome. Run the checks locally:

pip install -e ".[dev]"
ruff check .
pytest        # model tests auto-skip unless ./assets exists

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

korvatts-0.1.0.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

korvatts-0.1.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file korvatts-0.1.0.tar.gz.

File metadata

  • Download URL: korvatts-0.1.0.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for korvatts-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f54af7326e7d868d8003533ac76fda35b3f3c71fe09ac16becb518cc98586a99
MD5 5ff386e24ef905f9d2bdd32eeff2bfbc
BLAKE2b-256 b866051d13f181a6818ce091d05704c0285405622542a1e3a4b59708a8c7a1d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for korvatts-0.1.0.tar.gz:

Publisher: publish.yml on dogenthq/KorvaTTS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file korvatts-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: korvatts-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for korvatts-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16e726fe9c3d2e1976d47efef808c82db1743e42be4e9e233104aa0b0c84f7dd
MD5 4303d1b05e2c435ac1fd3b22103d43bd
BLAKE2b-256 805edfca09a6373b7e77c63bd9244d59e1552440f752cf4f32f34906bdc0c55a

See more details on using hashes here.

Provenance

The following attestation bundles were made for korvatts-0.1.0-py3-none-any.whl:

Publisher: publish.yml on dogenthq/KorvaTTS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page