AI SeedbankHelp preserve open and free AI for humanity's future

← All models

pnnbao-ump_VieNeu-TTS-v3-Turbo

pnnbao-ump · View on Hugging Face ↗

Get this model

Download TorrentMagnet Link

Seeders: · Leechers:

Model card

The complete upstream card, rendered from this payload's README.md — the same hash-verified bytes the torrent distributes. Images and off-site links are removed; the original card on Hugging Face carries them.


license: apache-2.0 datasets:

  • pnnbao-ump/VieNeu-TTS-10k-ENVI language:
  • vi
  • en pipeline_tag: text-to-speech tags:
  • voice-cloning
  • code-switching
  • podcast
  • emotion-control
  • 48khz

🦜 VieNeu-TTS v3 Turbo

Overview

VieNeu-TTS v3 Turbo is the next generation of Vietnamese TTS — 48 kHz high-fidelity speech, 20 built-in preset voices across three regions (North / Central / South), instant voice cloning, real-time streaming, inline emotion cues, and seamless bilingual (En–Vi) code-switching.

The reference implementation is the vieneu Python SDK (v3.3.0). Its minimal install is torch-free: on CPU everything runs on ONNX Runtime (PyTorch is never imported), and on a CUDA machine it auto-switches to the PyTorch engine with automatic batching — same API, no code change.

[!IMPORTANT] What's new in SDK v3.3.0:

  • 20 preset voices covering North / Central / South, both genders and several reading characters.
  • Torch-free voice cloning on CPU — cloning, denoising and add_voice now work on the ONNX-only install (kaldi-native-fbank + soxr), no PyTorch needed.
  • int8 backbone by default on CPU — ~1.6× faster and ~4× smaller than fp32 with quality preserved; use Vieneu(precision="fp32") for max fidelity.
  • Sliding-window repetition penalty for more stable long generations.

🏗️ Architecture & Credits

The VieNeu-TTS v3 Turbo architecture is an original design by the author, Phạm Nguyễn Ngọc Bảo, and is trained from scratch on ~10,000 hours of English–Vietnamese speech — it is not a fine-tune, distillation, or adaptation of any existing TTS model.

  • Model architecture & training: designed and trained from scratch by Phạm Nguyễn Ngọc Bảohttps://github.com/pnnbao97
  • Audio codec: MOSS-Audio-Tokenizer-Nano (OpenMOSS-Team) — 48 kHz neural audio codec.
  • Phonemizer: sea-g2p — fast Vietnamese/English grapheme-to-phoneme, also by the author.

Tác giả: Phạm Nguyễn Ngọc Bảo


🔥 Quick Start (Web UI)

git clone https://github.com/pnnbao97/VieNeu-TTS.git
cd VieNeu-TTS
  • Option 1: CPU & macOS (minimal, torch-free) — recommended — runs v3 Turbo via ONNX

    uv sync
    

    ⚡ Use uv sync, not pip install, for the fastest CPU inference — it reproduces the locked environment with the optimized ONNX Runtime build. On Apple Silicon this ONNX/CPU path is faster than the MPS/PyTorch build.

  • Option 2: GPU (CUDA ≥ 12.8)v3 Turbo on GPU (PyTorch), batched automatically

    uv sync --group gpu
    

Start the Web UI:

uv run vieneu-web

The UI opens at http://127.0.0.1:7860 with a Default voice tab, a Voice Cloning tab, and a Conversation tab (batched multi-speaker podcasts).


📦 Using the Python SDK (vieneu)

CPU (default) — torch-free, runs v3 Turbo via ONNX Runtime. Most users want this:

pip install vieneu

GPU (CUDA) — only if you have an NVIDIA GPU; install a CUDA build of PyTorch yourself first:

pip install torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
pip install "transformers==4.57.6"   # Qwen3 backbone + MOSS codec (pinned — most stable)
pip install vieneu

ℹ️ When is GPU actually worth it? The GPU win comes from batching, so it only pays off on long text (many chunks generated together in one forward — long-form or bulk synthesis). For short text the torch-free CPU/ONNX path is usually faster. Use CPU for short, interactive calls; reach for GPU for long-form or high-throughput work.

Full features guide

from vieneu import Vieneu
from time import time

# Default = v3 Turbo (48 kHz). CPU → ONNX (torch-free, int8); GPU → PyTorch (auto-detected).
tts = Vieneu()                    # int8 backbone (default, fastest on CPU)
# tts = Vieneu(precision="fp32")  # max fidelity, slower on CPU

text = """[cười] Trời ơi, cái giọng nó tự nhiên mà nó mượt mà dã man, nghe không khác gì người thật luôn. Giờ thì tha hồ mà quẩy content với cả kho giọng nói đa dạng, đủ mọi sắc thái biểu cảm. Mọi người bật loa lên rồi cùng trải nghiệm thử với mình nhé!"""

# 1. Default voice (Adam) — 48 kHz, no reference needed
start = time()
audio = tts.infer(text)
tts.save(audio, "output.wav")
print(f"Time taken: {time() - start:.2f} seconds")

# 2. Built-in voices by name
for label, voice_id in tts.list_preset_voices():
    print(label, voice_id)
audio = tts.infer("Mình là Xuân Vĩnh nè!", voice="Xuân Vĩnh")
tts.save(audio, "output_xuan_vinh.wav")

# 3. Emotion / non-verbal cues — EXPERIMENTAL: [cười] [thở dài] [hắng giọng]
audio = tts.infer("Nghe hay quá đi [cười]. Để mình nói tiếp [hắng giọng].", voice="Phạm Tuyên")

# 4. Instant voice cloning from a 3–8s reference clip (works on the torch-free CPU install too)
audio = tts.infer("Đây là giọng được nhân bản tức thì.", ref_audio="my_voice.wav", denoise=True)

[!TIP] A temperature around 0.8 gives the most stable result for v3 Turbo. Higher values add expressiveness but can be less stable.

🔊 Real-time streaming

v3 Turbo streams frame-by-frame — first audio in ~300 ms, RTF < 1 on CPU (~2–3× realtime on a laptop, ~7× on Apple Silicon). Streaming runs on the ONNX/CPU engine; the GPU/PyTorch engine is built for batch throughput, not streaming, so pin backend="onnx" for realtime:

vieneu = Vieneu(backend="onnx")   # force ONNX/CPU — the streaming path (int8)
for chunk in vieneu.infer_stream("Xin chào các bạn!", voice="Adam"):
    play(chunk)   # np.float32 @ 48 kHz, play/write as it arrives

A full FastAPI streaming demo ships in apps/web_stream.py.

⚡ Batched generation (GPU)

infer_batch() runs many texts in one batched forward — same API on every backend (on CPU it still works, just sequentially). The batch caps at max_batch_size (default 32); pass batch_size=1 to disable. A single long infer() also auto-batches its own chunks.

audios = vieneu.infer_batch(texts, voice="Adam")   # or infer_batch(..., batch_size=64)

🦜 Voice cloning & saved voices

# Clone from a 3–8s clip; the reference is auto-denoised and trimmed to ≤ 8s
audio = vieneu.infer("Chào bạn, đây là giọng của tôi.", ref_audio="voice.wav", denoise=True)

# Enroll once, then reuse by name like a built-in voice
vieneu.add_voice("Giọng của tôi", "voice.wav")
audio = vieneu.infer("Câu này dùng giọng đã lưu.", voice="Giọng của tôi")

# Just clean up a clip (no synthesis)
wav, sr = vieneu.denoise("noisy.wav", out_path="clean.wav")

denoise, add_voice and cloning work on every backend, including the torch-free CPU/ONNX install.

⚠️ Reading style is deprecated

style is still accepted by infer, infer_stream, infer_batch and add_voice so existing code keeps running, but it is ignored on v3 Turbo: the reading style is already baked into the reference itself (the speaker embedding + reference codes of the preset voice or of your cloned clip). Pick the reading character through the voice instead.


🎭 Preset Voices (20)

Call any of them by name via voice="<name>" — no reference audio required.

Voice Region Character Voice Region Character
Adam Nam Natural Quang Sơn Trung Natural
Phạm Tuyên Bắc Natural Ngọc Trân Trung Natural
Minh Đức Bắc News Xuân Vĩnh Nam Natural
Thanh Bình Bắc Storytelling Thái Sơn Nam Storytelling
Ngọc Huyền Bắc Natural Minh Triết Nam News
Trúc Ly Bắc Natural Đức Trí Nam Audiobook
Đoan Trang Bắc Natural Thục Đoan Nam Storytelling
Ngọc Linh Bắc Storytelling Thùy Dung Nam News
Mai Anh Bắc News Mỹ Duyên Nam Audiobook
Quỳnh Anh Bắc Audiobook Kim Thanh Nam Audiobook

For any other voice, use voice cloning with a short reference clip (ref_audio="...").


🔬 Model Variants

Model Format Device Sample Rate Quality Features
VieNeu-TTS-v3-Turbo (default) ONNX (CPU) / PyTorch (GPU) CPU/GPU 48 kHz ⭐⭐⭐⭐⭐ 20 preset voices, cloning, streaming, emotion cues, conversation
VieNeu-TTS-v2 PyTorch GPU/CPU 24 kHz ⭐⭐⭐⭐⭐ Podcast, En-Vi code-switching
VieNeu-TTS-v2 (GGUF) GGUF Q4 CPU 24 kHz ⭐⭐⭐⭐ Fastest on CPU, Podcast
VieNeu-TTS-v1 PyTorch GPU 24 kHz ⭐⭐⭐⭐ Stable (Vi only)

📜 Usage Rights & Licensing FAQ

Does Apache-2.0 cover every artifact in this repository? Yes. The license applies to all artifacts shipped here — model.safetensors, the ONNX exports, configs and tokenizers, and the bundled preset-voice assets (speaker embeddings + reference codes in voices_v3_turbo.json).

May I use the preset voices and the generated audio commercially? Yes. The bundled preset voices are distributed under the same Apache-2.0 license as the rest of the repository, and audio generated with them may be used in commercial and monetized content (voice-over, videos, products, services) — no additional license or fee.

Did the speakers behind the preset voices consent to AI training and synthetic speech? Yes. The speakers (or rightsholders) behind the shipped preset-voice assets granted appropriate rights and consent for their voice data to be used in AI training and synthetic speech generation, which is what allows those assets to be distributed under Apache-2.0 for both non-commercial and commercial synthetic audio generation.

What about the training dataset? The detailed internal data-collection and processing pipeline for the training corpus is not publicly disclosed, and the VieNeu-TTS-10k-ENVI dataset is gated. The confirmations above cover the preset voices shipped in this repository and the model weights released here, which are the artifacts you actually redistribute or generate audio with.

Which preset list is authoritative? vieneu.list_preset_voices() at the version you have installed. This card documents SDK v3.3.0 (20 voices, default Adam); earlier revisions shipped fewer voices under partly different names, so pin the SDK version if the exact roster matters to you.

Third-party components — all permissively licensed, keep their notices when redistributing:

[!WARNING] Voice cloning is your responsibility. The consent confirmation above covers the bundled preset voices only. If you clone a voice from your own reference clip, you must have the right to use that person's voice. Do not clone real people without their permission, and do not use this model to impersonate, defraud, or produce misleading content.


License

This model package is distributed under Apache License 2.0, matching the upstream model repository.

When you reuse, redistribute, or convert these assets, please keep the license notice and attribution intact for both:

If you bundle additional third-party assets, their own licenses still apply as well.


📑 Citation

@misc{vieneutts2026,
  title        = {VieNeu-TTS v3 Turbo: 48kHz Vietnamese Text-to-Speech with Instant Voice Cloning and Emotion Control},
  author       = {Pham Nguyen Ngoc Bao},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/pnnbao-ump/VieNeu-TTS-v3-Turbo}}
}

Made with ❤️ for the Vietnamese TTS community

Magnet link

Opens the swarm directly in your torrent client — no file download needed. Copy-paste works too:

magnet:?xt=urn:btih:67c08ef3e01a7d6c4b1ac63563540391810bf86e&dn=pnnbao-ump_VieNeu-TTS-v3-Turbo

Open magnet in torrent client · infohash 67c08ef3e01a7d6c4b1ac63563540391810bf86e

Files & hashes

PathSizesha1sha256
README.md13.0 KB (13,318 B)d202164d9ebfdc24e4751f6a328e43889f2cedf6f8a7927b5a6f27d1ab54c63a22a3c010f8622b006c3239a691bcd014b108b2b7
config.json1.5 KB (1,553 B)aa9c4e4550e8b9cf06ee47ad16009ef9609c8928eee8e032cb936a60312f594a8156c086173a9c0255a545bd11a448f22a7c77ae
model.safetensors249.7 MB (261,835,312 B)ab1e52979116f9c25ecc95813cfd965a736877770ea96dbb5a7618814b10fde6b5027d9589bf91208f41b8954fdf184a608e9d2c
onnx/vieneu_backbone_shared.data396.1 MB (415,319,040 B)d4cb293229e55f0e732f6354a6d60ec6592a15ad6f28d66062bbd7a0b2c321cff7556baf416922de2b86400e8d1ef863dc91206f
onnx/vieneu_v3_heads.npz24.6 MB (25,809,928 B)966917b910db7047adf82addd9d4bc3c85d4db6237c416aecea3880908812a2504f37487f0bc17bd31d67ce58e904ff89c269965
onnx_int8/config.json2.1 KB (2,152 B)0f5d73f1779b514b9cd5692faeeb438898aeb36fa9f8d9c4b4736448ab355d1a98cfe48f5e39aecf2916c37b0806c228612e9a2d
onnx_int8/tokenizer.json21.8 KB (22,320 B)5c9785c19639481f69f407f8b96859f0ea0d65af6cc6bcbe380b8c37bd9f2514e37c5dfa3e00e122c6e3125dae5c4afe48e39158
onnx_int8/vieneu_backbone_shared.data99.1 MB (103,891,968 B)b76002b9a529f09b7911e5736a6e8b7af0a9b450429bfddd585b7a1907c7c9c944b3d91bc4da8b91f1f9982353351357140fd08f
onnx_int8/vieneu_v3_heads.npz49.8 MB (52,219,622 B)4acee768be44d3717976db2e4c532ffc1418f2a819ee6dd56530d7842c81fbd855f3d89440e2c3121e11f7e6ced447a559da585a
onnx_update/config.json2.1 KB (2,152 B)9d6c81dbafafaf833371207f5efe35664cb917ba17d89d414ee302a82db7b330bf57b4cdf8541569392119c81f552178cafcb79b
onnx_update/tokenizer.json21.8 KB (22,320 B)5c9785c19639481f69f407f8b96859f0ea0d65af6cc6bcbe380b8c37bd9f2514e37c5dfa3e00e122c6e3125dae5c4afe48e39158
onnx_update/vieneu_backbone_shared.data396.1 MB (415,319,040 B)4d38e6f7a00e39c2743507be184c359cca2975f0c7c072193db33d0542457e2612c7272c44c4279d1cafaf0aa4c379964911db2f
onnx_update/vieneu_v3_heads.npz49.8 MB (52,219,622 B)cb98a215a9a3a9b075b2fb8299095845b427f8b8fb22484baa424bbb775133a6e5f0d00d6299b2b256fbe3312a864b85b9aed01e
special_tokens_map.json855 B (855 B)662b1ddf69e8874c5fcabd6601a364a8394ea4a907a6a4c4c05e7489f6911d37a5dad11fb80529f9dd07269fe4a4f8a21bbc84d6
tokenizer.json21.9 KB (22,412 B)cb6b8a77f8b1e767356fc5926b5d6d89f757ef907ed8df3a1fa39a3a35a1ab4b72f9faa35980bea0b930ba4aa82f847d21c583af
tokenizer_config.json8.2 KB (8,410 B)463fd97dd19b06645053da7bbd7b21d88d4b36172627e5edf4af46487f6956581ef9bdf74f90d1eeb7fffaeda51031aa2d1b9d86
update/config.json2.1 KB (2,152 B)0f5d73f1779b514b9cd5692faeeb438898aeb36fa9f8d9c4b4736448ab355d1a98cfe48f5e39aecf2916c37b0806c228612e9a2d
update/model.safetensors236.5 MB (247,974,928 B)28cb8d077418c20f7c41df9dfcff77165e0f476582b24b3f02357d7c5ea69f5286dd2c2ec12041eca2a839843d3a4a21b5073f39
update/special_tokens_map.json1.1 KB (1,108 B)7857da5dcab823f7487da44c8c91b73692da3a62e7ad7c838b1e3c669a85e7caf940c01267e4d2448c99a14228e6d1708d7e99e6
update/tokenizer.json21.8 KB (22,320 B)5c9785c19639481f69f407f8b96859f0ea0d65af6cc6bcbe380b8c37bd9f2514e37c5dfa3e00e122c6e3125dae5c4afe48e39158
update/tokenizer_config.json8.4 KB (8,617 B)90be93d49d1629f8f1f802a9e8150447fff6d1a692275a9c86820184aef42a27439b1aab4605d96a694a1cc6e23970c6152c3fa6

Cite this release

Canonical URL
https://aiseedbank.org/models/pnnbao-ump_VieNeu-TTS-v3-Turbo/
Slug
pnnbao-ump_VieNeu-TTS-v3-Turbo
Infohash
67c08ef3e01a7d6c4b1ac63563540391810bf86e
License
apache-2.0
Signing key fingerprint
85a3b32c3712427b

Every file carries a locally computed sha256 — verify a download against the signed sums: pnnbao-ump_VieNeu-TTS-v3-Turbo.SHA256SUMS (+ minisign signature).

Provenance

Upstream repositorypnnbao-ump/VieNeu-TTS-v3-Turbo
Revision (pinned)1278db0090b98ccf23e56f2423857fc9d32a5118
Fetched at2026-09-04T05:30:24Z
License at fetchapache-2.0
Snapshot toolhuggingface · seedbank 0.1.0

Trackers

✓ verified · rehash-vs-hf-metadata at 2026-09-04T05:30:43Z

apache-2.01.47 GB (1,574,719,149 bytes)onnxsafetensorsvieneu_v3_turbovoice-cloningcode-switchingpodcastemotion-control48khztext-to-speech2 languages (vi, en)