CoolFace
Modelpublic

pnnbao-ump/VieNeu-TTS-v2-Turbo-GGUF

sourceHugging Faceapache-2.0updated 6mo agoView on Hugging Face
4likes4.1kdownloads
Model Card

🦜 VieNeu-TTS v2 Turbo — GGUF

Ultra-fast Vietnamese & English TTS — runs entirely on CPU, no GPU required.

<audio controls src="https://cdn-uploads.huggingface.co/production/uploads/68b923a86c86c127a1975eda/HETtJpyL5HIfBY0Gj5V.wav"></audio>

![Apache 2.0](https://opensource.org/licenses/Apache-2.0) ![VieNeu GitHub](https://github.com/pnnbao97/VieNeu-TTS) ![Discord](https://discord.gg/yJt8kzjzWZ)


📖 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

FileDescription
vieneu-v2-turbo-*.ggufGGUF quantized LLM backbone (multiple quant levels)

🚀 Quickstart

Option 1 — Install via vieneu SDK (Recommended)

bash
# Minimal installation (Turbo/CPU Only)
pip install vieneu

# Optional: Pre-built llama-cpp-python for CPU (if building fails)
pip install vieneu --extra-index-url https://pnnbao97.github.io/llama-cpp-python-v0.3.16/cpu/

# Optional: macOS Metal acceleration
pip install vieneu --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/metal/
python
from vieneu import Vieneu

# Initialize in Turbo mode (Default - Minimal dependencies)
tts = Vieneu()

# 1. Simple synthesis (uses default Southern Male voice 'Xuân Vĩnh')
text = "Hệ thống điện chủ yếu sử dụng alternating current because it is more efficient."
audio = tts.infer(text=text)

# Save to file
tts.save(audio, "output_Xuân Vĩnh.wav")
print("💾 Saved to output_Xuân Vĩnh.wav")

# 2. Using a specific Preset Voice
voices = tts.list_preset_voices()
for desc, voice_id in voices:
    print(f"Voice: {desc} (ID: {voice_id})")

my_voice_id = voices[1][1] if len(voices) > 1 else voices[0][1] # Giọng Phạm Tuyên
voice_data = tts.get_preset_voice(my_voice_id)

audio_custom = tts.infer(text="Tôi đang nói bằng giọng của Bác sĩ Tuyên.", voice=voice_data)

# 3. Save to file
tts.save(audio_custom, "output_Phạm Tuyên.wav")
print("💾 Saved to output_Phạm Tuyên.wav")

🦜 Zero-shot Voice Cloning (SDK) <a name="cloning"></a>

Clone any voice with only 3-5 seconds of audio using the local Turbo engine:

python
from vieneu import Vieneu

tts = Vieneu() # Defaults to Turbo mode

# 1. Encode the reference audio (extracts speaker embedding)
# Supported formats: .wav, .mp3, .flac
my_voice = tts.encode_reference("examples/audio_ref/example.wav")

# 2. Synthesize with the cloned voice
# No reference text required for Turbo v2!
audio = tts.infer(
    text="Đây là giọng nói được clone trực tiếp bằng SDK của VieNeu-TTS.", 
    voice=my_voice
)

tts.save(audio, "cloned_voice.wav")

Option 2 — Web UI (Full repo)

bash
git clone https://github.com/pnnbao97/VieNeu-TTS.git
cd VieNeu-TTS
uv sync          # minimal install (Turbo/CPU)
uv run vieneu-web
# → Open http://127.0.0.1:7860

🔬 Model Architecture

VieNeu-TTS v2 Turbo is a two-stage TTS system:

  1. 1.LLM Backbone (GGUF): A transformer language model conditioned on text tokens and speaker embeddings. It predicts discrete audio codec tokens autoregressively.
  2. 2.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.

DatasetLanguageDescription
pnnbao-ump/VieNeu-TTS-1000hVietnameseCurated studio-quality Vietnamese speech corpus
pnnbao-ump/vietnamese-audio-corpusVietnameseDiverse multi-speaker Vietnamese audio
amphion/Emilia-DatasetMultilingualLarge-scale multilingual speech dataset
facebook/multilingual_librispeechEnglish + othersMultilingual read speech

🗺️ Roadmap

  • —[x] GGUF/ONNX Turbo engine
  • —[x] Bilingual (Vietnamese–English) code-switching
  • —[x] Turbo Voice Cloning
  • —[ ] Mobile SDK (Android / iOS)
  • —[ ] Streaming output API

🤝 Related Resources

ResourceLink
📦 PyPI Packagepip install vieneu
🐙 GitHubpnnbao97/VieNeu-TTS
📖 Documentationdocs.vieneu.io
🤗 Full Model (GPU)pnnbao-ump/VieNeu-TTS
💬 Discord CommunityJoin here
☕ Support the projectbuymeacoffee.com/pnnbao

📄 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](https://github.com/pnnbao97) and contributors.