🦜 VieNeu-TTS v2 Turbo — GGUF
Ultra-fast Vietnamese & English TTS — runs entirely on CPU, no GPU required.
📖 Model Description
VieNeu-TTS v2 Turbo is the lightweight, CPU-optimized edition of the VieNeu-TTS family — a state-of-the-art Vietnamese Text-to-Speech system. Quantized to GGUF format and paired with an ONNX neural codec, this model delivers near-real-time speech synthesis on commodity hardware: laptops, edge devices, and even Raspberry Pi class machines.
This repository hosts the GGUF quantized weights intended for use with llama-cpp-python as the inference backend, alongside the companion ONNX codec for waveform generation.
What makes it special?
- 🇻🇳🇺🇸 Bilingual (Code-switching): Naturally handles mixed Vietnamese–English sentences, powered by sea-g2p. No need to pre-label language boundaries.
- ⚡ Extreme Speed: Optimized GGUF quantization achieves real-time or faster inference on a standard CPU.
- 💻 Zero GPU Dependency: Runs fully offline on any x86_64 / ARM64 machine with sufficient RAM.
- 🔇 AI Watermarking: Audio output embeds an imperceptible identifier for responsible AI content tracing.
- 🔊 24 kHz Audio: High-fidelity waveform output suitable for production applications.
🗂️ Repository Contents
| File | Description |
|---|
vieneu-v2-turbo-*.gguf | GGUF quantized LLM backbone (multiple quant levels) |
🚀 Quickstart
Option 1 — Install via vieneu SDK (Recommended)
1# Minimal installation (Turbo/CPU Only)
2pip install vieneu
3
4# Optional: Pre-built llama-cpp-python for CPU (if building fails)
5pip install vieneu --extra-index-url https://pnnbao97.github.io/llama-cpp-python-v0.3.16/cpu/
6
7# Optional: macOS Metal acceleration
8pip install vieneu --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/metal/
1from vieneu import Vieneu
2
3# Turbo mode is the default — no GPU needed
4tts = Vieneu()
5
6# Vietnamese only
7audio = tts.infer(text="Xin chào! Đây là VieNeu TTS phiên bản Turbo.")
8tts.save(audio, "output.wav")
9
10# Bilingual code-switching
11audio = tts.infer(
12 text="Trước đây, hệ thống điện sử dụng direct current, nhưng Tesla đã chứng minh alternating current is more efficient."
13)
14tts.save(audio, "output_bilingual.wav")
Option 2 — Web UI (Full repo)
1git clone https://github.com/pnnbao97/VieNeu-TTS.git
2cd VieNeu-TTS
3uv sync # minimal install (Turbo/CPU)
4uv run vieneu-web
5# → Open http://127.0.0.1:7860
🌐 Bilingual Code-Switching
VieNeu-TTS v2 Turbo can handle natural Vietnamese–English mixed text without any special markup. The sea-g2p engine automatically identifies language boundaries and generates accurate phonemes for both languages.
1from vieneu import Vieneu
2
3tts = Vieneu()
4
5examples = [
6 "Hôm nay tôi sẽ trình bày về machine learning và deep learning.",
7 "The new feature là rất hữu ích cho developers.",
8 "VieNeu supports both Vietnamese và English seamlessly.",
9]
10
11for i, text in enumerate(examples):
12 audio = tts.infer(text=text)
13 tts.save(audio, f"bilingual_{i}.wav")
🎙️ Preset Voices
The model ships with multiple preset voices. List and use them via the SDK:
1from vieneu import Vieneu
2
3tts = Vieneu()
4
5# List available preset voices
6voices = tts.list_preset_voices()
7for description, voice_id in voices:
8 print(f" {description} → ID: {voice_id}")
9
10# Use a specific voice
11voice_data = tts.get_preset_voice("xuan_vinh") # default: Southern Male
12audio = tts.infer(
13 text="Giọng đọc này được tổng hợp bởi VieNeu Turbo.",
14 voice=voice_data
15)
16tts.save(audio, "preset_voice.wav")
Note: Instant Voice Cloning is not yet available in Turbo mode. It is planned for a future release. For cloning, use the standard GPU-based VieNeu-TTS-v2 model.
🔬 Model Architecture
VieNeu-TTS v2 Turbo is a two-stage TTS system:
- LLM Backbone (GGUF): A transformer language model conditioned on text tokens and speaker embeddings. It predicts discrete audio codec tokens autoregressively.
- Neural Codec (ONNX): A VQ-VAE-based neural codec (VieNeu-Codec) decodes the predicted token sequence into a 24 kHz waveform.
The bilingual capability is enabled by sea-g2p, which converts mixed-language graphemes to phonemes before the LLM backbone processes them.
📊 Training Data
The model was trained on over 20,000 hours of combined Vietnamese and English speech data, covering a wide range of speakers, accents, recording conditions, and speaking styles.
| Dataset | Language | Description |
|---|
pnnbao-ump/VieNeu-TTS-1000h | Vietnamese | Curated studio-quality Vietnamese speech corpus |
pnnbao-ump/vietnamese-audio-corpus | Vietnamese | Diverse multi-speaker Vietnamese audio |
amphion/Emilia-Dataset | Multilingual | Large-scale multilingual speech dataset |
facebook/multilingual_librispeech | English + others | Multilingual read speech |
🗺️ Roadmap
🤝 Related Resources
📄 License
This model is released under the Apache License 2.0 — free for personal and commercial use.
Made with ❤️ for the Vietnamese TTS community by @pnnbao97 and contributors.