tronghieuit/v-tts

The lightest Vietnamese Text-to-Speech with Multi-Speaker TTS and Zero-Shot Voice Cloning.

Python

383

22 commits

updated Jul 23, 2026

See the code

README

V-TTS

Vietnamese Text-to-Speech with Multi-Speaker TTS and Zero-Shot Voice Cloning.

The lightest Vietnamese zero-shot voice cloning model — only 74.8M parameters, runs entirely on CPU, 3-4x faster than realtime. No GPU required.

📅 Cập nhật: Tháng 4/2026 — Đã phát hành phiên bản Windows App (.exe), không cần cài đặt Python hay chạy source code phức tạp!

📥 Download Windows App (Khuyến nghị)

Dành cho người dùng Windows — Tải file .exe, chạy trực tiếp, không cần cài đặt Python, không lo lỗi source code!

Phiên bảnHệ điều hànhDownload
v1.0.5 (Mới nhất)Windows 10/11 (64-bit)📥 Tải VTTS.exe (394MB)

✨ Tính năng Windows App:

  • ✅ Không cần cài đặt Python — Chạy trực tiếp file .exe
  • ✅ Không lo lỗi source code — Đã đóng gói sẵn toàn bộ dependencies
  • ✅ Giao diện đẹp — Dark mode hiện đại, dễ sử dụng
  • ✅ 5 giọng đọc có sẵn — NF, SF, NM1, SM, NM2 (Bắc/Nam, Nam/Nữ)
  • ✅ Xử lý hàng loạt — Tạo nhiều audio từ file .txt/.srt
  • ✅ Tốc độ tùy chỉnh — Điều chỉnh từ 0.5x đến 2.0x
  • ✅ Nghe thử & Lưu file — Preview và export audio dễ dàng

Ảnh chụp ứng dụng:

V-TTS Windows App - Giao diện tiếng Việt

🚀 Hướng dẫn sử dụng:

  1. Tải file VTTS.exe từ Releases
  2. Chạy file .exe (lần đầu sẽ tự tải model từ HuggingFace — cần kết nối Internet)
  3. Nhập văn bản tiếng Việt → Chọn giọng đọc → Nhấn "Tạo Audio"
  4. Nghe thử hoặc lưu file .wav

Lưu ý: File .exe có dung lượng ~394MB do đã bao gồm toàn bộ PyTorch và dependencies. Lần chạy đầu tiên sẽ tải model (~100MB) từ HuggingFace.


🐳 Chạy bằng Docker (Windows / Mac / Linux)

Dành cho mọi hệ điều hành — Chạy trong Docker, không cần cài đặt Python, cách ly hoàn toàn!

Yêu cầu:

Cách chạy:

Cách 1: Dùng docker-compose (Khuyến nghị)

git clone https://github.com/tronghieuit/v-tts.git
cd v-tts
docker-compose up -d

Cách 2: Dùng Docker trực tiếp

docker build -t v-tts .
docker run -d -p 7860:7860 --name v-tts v-tts

Mở trình duyệt: http://localhost:7860

✨ Tính năng Docker:

  • ✅ Đa nền tảng — Windows, macOS, Linux
  • ✅ Cách ly hoàn toàn — Không ảnh hưởng hệ thống
  • ✅ Gradio Web UI — Giao diện web đẹp, dễ dùng
  • ✅ Auto-download model — Tự tải model lần đầu
  • ✅ 5 giọng đọc — NF, SF, NM1, SM, NM2

Lưu ý: Docker image ~2-3GB do bao gồm PyTorch và dependencies. Lần chạy đầu tiên sẽ tải model từ HuggingFace.


Highlights

  • 🪶 Ultra-lightweight: 74.8M params — the lightest Vietnamese zero-shot voice clone model
  • ⚡ CPU-only: RTF ~0.24 on CPU (4x faster than realtime), no GPU needed
  • 🎯 Zero-shot: Clone any voice from 3-10s of audio, no fine-tuning
  • 🎨 Prosody Transfer: Transfer intonation, rhythm, emotion from reference voice
  • 🇻🇳 Vietnamese-native: Dedicated Vietnamese phonemizer with Northern/Southern support
  • 📦 Multi-speaker TTS: 5 built-in Vietnamese voices (Northern/Southern, Male/Female)
  • 🔌 Simple API: pip install and use with 2 lines of code

🚀 Live Demo — Try it now!

Clone any voice from 3-10 seconds of audio. No GPU required. Try it directly in your browser!

▶️ Watch Zero-Shot Demo Video


🎧 Zero-Shot Voice Cloning Examples

Same text, cloned with 6 different reference voices:

Reference VoiceDescriptionCloned Audio
Thu HàSoft female voice▶️ example_thu_ha.wav
Minh ĐứcDeep male voice▶️ example_minh_duc.wav
Thanh TâmYoung female voice▶️ example_thanh_tam.wav
Quang HuyYoung male voice▶️ example_quang_huy.wav
Ngọc ÁnhProfessional female▶️ example_ngoc_anh.wav
Hoàng NamStrong male voice▶️ example_hoang_nam.wav

Multi-Speaker TTS Examples

SpeakerRegionGenderAudio
NFNorthernFemale▶️ example_NF.wav
SFSouthernFemale▶️ example_SF.wav
NM1NorthernMale▶️ example_NM1.wav
SMSouthernMale▶️ example_SM.wav
NM2NorthernMale▶️ example_NM2.wav

Clone the repo and listen to files in examples/ for the best audio quality.


⚡ Performance — CPU is all you need

Zero-Shot Voice Cloning (74.8M params)

ComponentParametersPurpose
Synthesizer56.45MVoice synthesis
Speaker Encoder8.03MVoice identity extraction
Style Encoder7.80MProsody/style extraction
Prosody Predictor2.52MF0/energy prediction
Total74.80M~285 MB (FP32)

Zero-Shot CPU Benchmark

Runs entirely on CPU — no GPU needed!

Input LengthInference TimeAudio LengthRTFSpeed
Short (16 chars)506ms1.07s0.4752.1x realtime
Medium (60 chars)1,030ms3.61s0.2863.5x realtime
Long (156 chars)2,229ms9.45s0.2364.2x realtime

Multi-Speaker TTS (57.97M params)

ModeShortMediumLong
CPU (i5-14500)392ms / RTF 0.54854ms / RTF 0.381,653ms / RTF 0.34
CUDA (RTX 4060 Ti)45ms / RTF 0.0652ms / RTF 0.0269ms / RTF 0.01

RTF (Real-Time Factor): Processing time / audio duration. RTF < 1 = faster than realtime.


Installation

# From Git
pip install git+https://github.com/tronghieuit/v-tts.git

# From Source
git clone https://github.com/tronghieuit/v-tts.git
cd v-tts
pip install -e .

Requirements

  • Python 3.8+
  • PyTorch 2.0+
  • No GPU required (CUDA optional for multi-speaker acceleration)
  • Linux recommended for best phonemization quality

Quick Start

Multi-Speaker TTS (2 lines)

from v_tts import TTS

tts = TTS()  # Auto-downloads model from Hugging Face
tts.speak("Xin chào các bạn", speaker="NF", output_path="hello.wav")

# Get audio array
audio, sr = tts.synthesize("Xin chào các bạn", speaker="NM1")

# Available speakers: NF, SF, NM1, SM, NM2
print(tts.list_speakers())

Zero-Shot Voice Cloning (2 lines)

from v_tts import ZeroShotTTS

tts = ZeroShotTTS()  # Auto-downloads model, CPU by default
tts.clone_voice(
    text="Xin chào, tôi là giọng nói được nhân bản",
    reference_audio="your_voice.wav",
    output_path="output.wav"
)

# Or get audio array
audio, sr = tts.synthesize(
    text="Đây là văn bản tiếng Việt",
    reference_audio="references/thu_ha.wav"
)

Command Line

# Zero-shot voice cloning
python infer_zeroshot.py \
  --reference references/thu_ha.wav \
  --text "Buổi sáng ở thành phố bắt đầu bằng những âm thanh quen thuộc" \
  --output cloned_voice.wav

# Use your own voice
python infer_zeroshot.py \
  --reference your_voice.wav \
  --text "Văn bản tiếng Việt của bạn" \
  --output output.wav --cpu

# Multi-speaker TTS
python infer.py --text "Xin chào các bạn" --speaker NF --output hello.wav
python infer.py --interactive

Gradio Demos

# Zero-shot voice cloning demo
python app_zeroshot.py
# Open: http://localhost:7860

# Multi-speaker TTS demo
python app.py

🎤 Zero-Shot Voice Cloning — Details

Architecture

Reference Audio
    ├─→ Speaker Encoder → Speaker Embedding (512-dim)
    └─→ Mel Extraction → Style Encoder → Prosody Embedding (128-dim)

Input Text → Vietnamese Phonemizer → Text Encoder → Text Representation

[Speaker Emb + Prosody Emb + Text Repr] → Voice Generator → Output Audio

Components

  1. Speaker Encoder (512-dim) — Extracts speaker identity from raw audio waveform. L2-normalized for generalization.
  2. Style Encoder (128-dim) — Extracts prosody/style from mel spectrograms (80 channels). Captures rhythm, emotion, speaking style.
  3. Prosody Predictor — Predicts F0 (pitch) and energy contours from text + style embedding.
  4. Voice Generator — Neural vocoder with style-dependent normalization (FiLM conditioning for F0/energy).

Reference Audio Requirements

For best results:

✅ Good❌ Bad
3-10 seconds duration< 2s (poor representation)
Clean, clear speechNoisy background
Single speakerMultiple speakers
Neutral emotionExtreme emotion/shouting
Any languageMusic or sound effects
# Prepare reference audio
ffmpeg -i full_audio.wav -ss 00:00:10 -t 5 -ar 24000 reference.wav
ffmpeg -i input.mp3 -ar 24000 -ac 1 reference.wav

6 Built-in Reference Voices

Available in references/:

VoiceFileDescription
Thu Hàthu_ha.wavSoft, warm female voice
Minh Đứcminh_duc.wavDeep, composed male voice
Thanh Tâmthanh_tam.wavYoung, bright female voice
Quang Huyquang_huy.wavYoung, energetic male voice
Ngọc Ánhngoc_anh.wavProfessional female anchor
Hoàng Namhoang_nam.wavStrong, deep male voice

Upload your own reference audio (3-10 seconds, clear speech) to clone any voice.

Advanced Usage

Speaker Interpolation

# Blend two voices
spk_emb_1 = tts.extract_embeddings("voice_1.wav")[0]
spk_emb_2 = tts.extract_embeddings("voice_2.wav")[0]

alpha = 0.5  # 50-50 blend
spk_emb_mixed = alpha * spk_emb_1 + (1 - alpha) * spk_emb_2

Limitations

  • Vietnamese synthesis works best (model supports multiple languages but optimized for Vietnamese)
  • Cannot improve upon reference audio quality
  • Very unique voices may not be perfectly replicated
  • Not optimized for real-time streaming (yet)

🔊 Multi-Speaker TTS — Details

5 Vietnamese Voices

SpeakerRegionGenderCode
NFNorthern (Miền Bắc)FemaleNF
SFSouthern (Miền Nam)FemaleSF
NM1Northern (Miền Bắc)MaleNM1
SMSouthern (Miền Nam)MaleSM
NM2Northern (Miền Bắc)MaleNM2

Parameters

ParameterDefaultDescription
speed1.0< 1.0 = faster, > 1.0 = slower
noise_scale0.667Voice variability
noise_scale_w0.8Duration variability
sdp_ratio0.00 = deterministic, 1 = stochastic

Model Auto-Download

Models are automatically downloaded from Hugging Face and cached:

  • Windows: %LOCALAPPDATA%\v_tts\models\
  • Linux/Mac: ~/.cache/v_tts/models/

Project Structure

v-tts/
├── v_tts/           # pip install package
│   ├── tts.py            # Multi-speaker TTS API
│   └── zeroshot.py       # Zero-shot voice cloning API
├── src/
│   ├── models/           # All model architectures
│   │   ├── synthesizer_zeroshot.py  # Zero-shot synthesizer
│   │   ├── synthesizer.py          # Multi-speaker synthesizer
│   │   ├── encoders.py             # Speaker/Style/Prosody encoders
│   │   └── adain.py                # Style conditioning module
│   ├── nn/               # Neural network components + mel processing
│   ├── text/             # Text/phoneme processing
│   └── vietnamese/       # Vietnamese text normalization + phonemizer
├── pretrained/
│   ├── zeroshot/         # Zero-shot checkpoint + config
│   ├── hasp/             # Speaker encoder weights
│   ├── onnx/             # ONNX export models
│   └── config.json       # Multi-speaker config
├── references/           # 6 reference voices for zero-shot
├── examples/
│   ├── zeroshot/         # Zero-shot cloned audio samples
│   └── *.wav             # Multi-speaker audio samples
├── deployments/          # Edge / Web / Android deployments
├── infer_zeroshot.py     # Zero-shot CLI inference
├── infer.py              # Multi-speaker CLI inference
├── app_zeroshot.py       # Gradio demo (zero-shot)
└── app.py                # Gradio demo (multi-speaker)

📱 Deployment Options

PlatformTechnologySizeOffline
HuggingFace SpacesGradioCloudNo
EdgeONNX Runtime~165MBYes
WebONNX Runtime Web~165MBYes
AndroidONNX Runtime Mobile~185MBYes

See deployments/ for detailed guides.

Citation

@software{v_tts,
  title = {V-TTS with Zero-Shot Voice Cloning},
  author = {V-TTS},
  year = {2026},
  url = {https://github.com/tronghieuit/v-tts}
}

License

CC BY-NC 4.0 — Non-commercial use only. Commercial use requires written permission.

Acknowledgments

  • V-TTS for model training and development
  • Vietnamese phonemization community

tronghieuit/v-tts

The lightest Vietnamese Text-to-Speech with Multi-Speaker TTS and Zero-Shot Voice Cloning.

Python

383

22 commits

updated Jul 23, 2026

See the code

README

V-TTS

Vietnamese Text-to-Speech with Multi-Speaker TTS and Zero-Shot Voice Cloning.

The lightest Vietnamese zero-shot voice cloning model — only 74.8M parameters, runs entirely on CPU, 3-4x faster than realtime. No GPU required.

📅 Cập nhật: Tháng 4/2026 — Đã phát hành phiên bản Windows App (.exe), không cần cài đặt Python hay chạy source code phức tạp!

📥 Download Windows App (Khuyến nghị)

Dành cho người dùng Windows — Tải file .exe, chạy trực tiếp, không cần cài đặt Python, không lo lỗi source code!

Phiên bảnHệ điều hànhDownload
v1.0.5 (Mới nhất)Windows 10/11 (64-bit)📥 Tải VTTS.exe (394MB)

✨ Tính năng Windows App:

  • ✅ Không cần cài đặt Python — Chạy trực tiếp file .exe
  • ✅ Không lo lỗi source code — Đã đóng gói sẵn toàn bộ dependencies
  • ✅ Giao diện đẹp — Dark mode hiện đại, dễ sử dụng
  • ✅ 5 giọng đọc có sẵn — NF, SF, NM1, SM, NM2 (Bắc/Nam, Nam/Nữ)
  • ✅ Xử lý hàng loạt — Tạo nhiều audio từ file .txt/.srt
  • ✅ Tốc độ tùy chỉnh — Điều chỉnh từ 0.5x đến 2.0x
  • ✅ Nghe thử & Lưu file — Preview và export audio dễ dàng

Ảnh chụp ứng dụng:

V-TTS Windows App - Giao diện tiếng Việt

🚀 Hướng dẫn sử dụng:

  1. Tải file VTTS.exe từ Releases
  2. Chạy file .exe (lần đầu sẽ tự tải model từ HuggingFace — cần kết nối Internet)
  3. Nhập văn bản tiếng Việt → Chọn giọng đọc → Nhấn "Tạo Audio"
  4. Nghe thử hoặc lưu file .wav

Lưu ý: File .exe có dung lượng ~394MB do đã bao gồm toàn bộ PyTorch và dependencies. Lần chạy đầu tiên sẽ tải model (~100MB) từ HuggingFace.


🐳 Chạy bằng Docker (Windows / Mac / Linux)

Dành cho mọi hệ điều hành — Chạy trong Docker, không cần cài đặt Python, cách ly hoàn toàn!

Yêu cầu:

Cách chạy:

Cách 1: Dùng docker-compose (Khuyến nghị)

git clone https://github.com/tronghieuit/v-tts.git
cd v-tts
docker-compose up -d

Cách 2: Dùng Docker trực tiếp

docker build -t v-tts .
docker run -d -p 7860:7860 --name v-tts v-tts

Mở trình duyệt: http://localhost:7860

✨ Tính năng Docker:

  • ✅ Đa nền tảng — Windows, macOS, Linux
  • ✅ Cách ly hoàn toàn — Không ảnh hưởng hệ thống
  • ✅ Gradio Web UI — Giao diện web đẹp, dễ dùng
  • ✅ Auto-download model — Tự tải model lần đầu
  • ✅ 5 giọng đọc — NF, SF, NM1, SM, NM2

Lưu ý: Docker image ~2-3GB do bao gồm PyTorch và dependencies. Lần chạy đầu tiên sẽ tải model từ HuggingFace.


Highlights

  • 🪶 Ultra-lightweight: 74.8M params — the lightest Vietnamese zero-shot voice clone model
  • ⚡ CPU-only: RTF ~0.24 on CPU (4x faster than realtime), no GPU needed
  • 🎯 Zero-shot: Clone any voice from 3-10s of audio, no fine-tuning
  • 🎨 Prosody Transfer: Transfer intonation, rhythm, emotion from reference voice
  • 🇻🇳 Vietnamese-native: Dedicated Vietnamese phonemizer with Northern/Southern support
  • 📦 Multi-speaker TTS: 5 built-in Vietnamese voices (Northern/Southern, Male/Female)
  • 🔌 Simple API: pip install and use with 2 lines of code

🚀 Live Demo — Try it now!

Clone any voice from 3-10 seconds of audio. No GPU required. Try it directly in your browser!

▶️ Watch Zero-Shot Demo Video


🎧 Zero-Shot Voice Cloning Examples

Same text, cloned with 6 different reference voices:

Reference VoiceDescriptionCloned Audio
Thu HàSoft female voice▶️ example_thu_ha.wav
Minh ĐứcDeep male voice▶️ example_minh_duc.wav
Thanh TâmYoung female voice▶️ example_thanh_tam.wav
Quang HuyYoung male voice▶️ example_quang_huy.wav
Ngọc ÁnhProfessional female▶️ example_ngoc_anh.wav
Hoàng NamStrong male voice▶️ example_hoang_nam.wav

Multi-Speaker TTS Examples

SpeakerRegionGenderAudio
NFNorthernFemale▶️ example_NF.wav
SFSouthernFemale▶️ example_SF.wav
NM1NorthernMale▶️ example_NM1.wav
SMSouthernMale▶️ example_SM.wav
NM2NorthernMale▶️ example_NM2.wav

Clone the repo and listen to files in examples/ for the best audio quality.


⚡ Performance — CPU is all you need

Zero-Shot Voice Cloning (74.8M params)

ComponentParametersPurpose
Synthesizer56.45MVoice synthesis
Speaker Encoder8.03MVoice identity extraction
Style Encoder7.80MProsody/style extraction
Prosody Predictor2.52MF0/energy prediction
Total74.80M~285 MB (FP32)

Zero-Shot CPU Benchmark

Runs entirely on CPU — no GPU needed!

Input LengthInference TimeAudio LengthRTFSpeed
Short (16 chars)506ms1.07s0.4752.1x realtime
Medium (60 chars)1,030ms3.61s0.2863.5x realtime
Long (156 chars)2,229ms9.45s0.2364.2x realtime

Multi-Speaker TTS (57.97M params)

ModeShortMediumLong
CPU (i5-14500)392ms / RTF 0.54854ms / RTF 0.381,653ms / RTF 0.34
CUDA (RTX 4060 Ti)45ms / RTF 0.0652ms / RTF 0.0269ms / RTF 0.01

RTF (Real-Time Factor): Processing time / audio duration. RTF < 1 = faster than realtime.


Installation

# From Git
pip install git+https://github.com/tronghieuit/v-tts.git

# From Source
git clone https://github.com/tronghieuit/v-tts.git
cd v-tts
pip install -e .

Requirements

  • Python 3.8+
  • PyTorch 2.0+
  • No GPU required (CUDA optional for multi-speaker acceleration)
  • Linux recommended for best phonemization quality

Quick Start

Multi-Speaker TTS (2 lines)

from v_tts import TTS

tts = TTS()  # Auto-downloads model from Hugging Face
tts.speak("Xin chào các bạn", speaker="NF", output_path="hello.wav")

# Get audio array
audio, sr = tts.synthesize("Xin chào các bạn", speaker="NM1")

# Available speakers: NF, SF, NM1, SM, NM2
print(tts.list_speakers())

Zero-Shot Voice Cloning (2 lines)

from v_tts import ZeroShotTTS

tts = ZeroShotTTS()  # Auto-downloads model, CPU by default
tts.clone_voice(
    text="Xin chào, tôi là giọng nói được nhân bản",
    reference_audio="your_voice.wav",
    output_path="output.wav"
)

# Or get audio array
audio, sr = tts.synthesize(
    text="Đây là văn bản tiếng Việt",
    reference_audio="references/thu_ha.wav"
)

Command Line

# Zero-shot voice cloning
python infer_zeroshot.py \
  --reference references/thu_ha.wav \
  --text "Buổi sáng ở thành phố bắt đầu bằng những âm thanh quen thuộc" \
  --output cloned_voice.wav

# Use your own voice
python infer_zeroshot.py \
  --reference your_voice.wav \
  --text "Văn bản tiếng Việt của bạn" \
  --output output.wav --cpu

# Multi-speaker TTS
python infer.py --text "Xin chào các bạn" --speaker NF --output hello.wav
python infer.py --interactive

Gradio Demos

# Zero-shot voice cloning demo
python app_zeroshot.py
# Open: http://localhost:7860

# Multi-speaker TTS demo
python app.py

🎤 Zero-Shot Voice Cloning — Details

Architecture

Reference Audio
    ├─→ Speaker Encoder → Speaker Embedding (512-dim)
    └─→ Mel Extraction → Style Encoder → Prosody Embedding (128-dim)

Input Text → Vietnamese Phonemizer → Text Encoder → Text Representation

[Speaker Emb + Prosody Emb + Text Repr] → Voice Generator → Output Audio

Components

  1. Speaker Encoder (512-dim) — Extracts speaker identity from raw audio waveform. L2-normalized for generalization.
  2. Style Encoder (128-dim) — Extracts prosody/style from mel spectrograms (80 channels). Captures rhythm, emotion, speaking style.
  3. Prosody Predictor — Predicts F0 (pitch) and energy contours from text + style embedding.
  4. Voice Generator — Neural vocoder with style-dependent normalization (FiLM conditioning for F0/energy).

Reference Audio Requirements

For best results:

✅ Good❌ Bad
3-10 seconds duration< 2s (poor representation)
Clean, clear speechNoisy background
Single speakerMultiple speakers
Neutral emotionExtreme emotion/shouting
Any languageMusic or sound effects
# Prepare reference audio
ffmpeg -i full_audio.wav -ss 00:00:10 -t 5 -ar 24000 reference.wav
ffmpeg -i input.mp3 -ar 24000 -ac 1 reference.wav

6 Built-in Reference Voices

Available in references/:

VoiceFileDescription
Thu Hàthu_ha.wavSoft, warm female voice
Minh Đứcminh_duc.wavDeep, composed male voice
Thanh Tâmthanh_tam.wavYoung, bright female voice
Quang Huyquang_huy.wavYoung, energetic male voice
Ngọc Ánhngoc_anh.wavProfessional female anchor
Hoàng Namhoang_nam.wavStrong, deep male voice

Upload your own reference audio (3-10 seconds, clear speech) to clone any voice.

Advanced Usage

Speaker Interpolation

# Blend two voices
spk_emb_1 = tts.extract_embeddings("voice_1.wav")[0]
spk_emb_2 = tts.extract_embeddings("voice_2.wav")[0]

alpha = 0.5  # 50-50 blend
spk_emb_mixed = alpha * spk_emb_1 + (1 - alpha) * spk_emb_2

Limitations

  • Vietnamese synthesis works best (model supports multiple languages but optimized for Vietnamese)
  • Cannot improve upon reference audio quality
  • Very unique voices may not be perfectly replicated
  • Not optimized for real-time streaming (yet)

🔊 Multi-Speaker TTS — Details

5 Vietnamese Voices

SpeakerRegionGenderCode
NFNorthern (Miền Bắc)FemaleNF
SFSouthern (Miền Nam)FemaleSF
NM1Northern (Miền Bắc)MaleNM1
SMSouthern (Miền Nam)MaleSM
NM2Northern (Miền Bắc)MaleNM2

Parameters

ParameterDefaultDescription
speed1.0< 1.0 = faster, > 1.0 = slower
noise_scale0.667Voice variability
noise_scale_w0.8Duration variability
sdp_ratio0.00 = deterministic, 1 = stochastic

Model Auto-Download

Models are automatically downloaded from Hugging Face and cached:

  • Windows: %LOCALAPPDATA%\v_tts\models\
  • Linux/Mac: ~/.cache/v_tts/models/

Project Structure

v-tts/
├── v_tts/           # pip install package
│   ├── tts.py            # Multi-speaker TTS API
│   └── zeroshot.py       # Zero-shot voice cloning API
├── src/
│   ├── models/           # All model architectures
│   │   ├── synthesizer_zeroshot.py  # Zero-shot synthesizer
│   │   ├── synthesizer.py          # Multi-speaker synthesizer
│   │   ├── encoders.py             # Speaker/Style/Prosody encoders
│   │   └── adain.py                # Style conditioning module
│   ├── nn/               # Neural network components + mel processing
│   ├── text/             # Text/phoneme processing
│   └── vietnamese/       # Vietnamese text normalization + phonemizer
├── pretrained/
│   ├── zeroshot/         # Zero-shot checkpoint + config
│   ├── hasp/             # Speaker encoder weights
│   ├── onnx/             # ONNX export models
│   └── config.json       # Multi-speaker config
├── references/           # 6 reference voices for zero-shot
├── examples/
│   ├── zeroshot/         # Zero-shot cloned audio samples
│   └── *.wav             # Multi-speaker audio samples
├── deployments/          # Edge / Web / Android deployments
├── infer_zeroshot.py     # Zero-shot CLI inference
├── infer.py              # Multi-speaker CLI inference
├── app_zeroshot.py       # Gradio demo (zero-shot)
└── app.py                # Gradio demo (multi-speaker)

📱 Deployment Options

PlatformTechnologySizeOffline
HuggingFace SpacesGradioCloudNo
EdgeONNX Runtime~165MBYes
WebONNX Runtime Web~165MBYes
AndroidONNX Runtime Mobile~185MBYes

See deployments/ for detailed guides.

Citation

@software{v_tts,
  title = {V-TTS with Zero-Shot Voice Cloning},
  author = {V-TTS},
  year = {2026},
  url = {https://github.com/tronghieuit/v-tts}
}

License

CC BY-NC 4.0 — Non-commercial use only. Commercial use requires written permission.

Acknowledgments

  • V-TTS for model training and development
  • Vietnamese phonemization community

Significant stargazers

JarbasAI

340 followers · starred Apr 2026

Duy /zuey/

927 followers · starred Jun 2026