Viterbox là mô hình Text-to-Speech tiếng Việt chất lượng cao, được fine-tune từ Chatterbox trên 3000+ giờ dữ liệu tiếng Việt.
| Tính năng | Mô tả |
|---|---|
| 🇻🇳 Tiếng Việt tự nhiên | Phát âm chuẩn, ngữ điệu tự nhiên, hỗ trợ đầy đủ dấu thanh |
| 🎯 Zero-shot Voice Cloning | Clone giọng nói chỉ với 3-10 giây audio mẫu |
| 🌍 Đa ngôn ngữ | Hỗ trợ tiếng Việt và 23 ngôn ngữ khác từ Chatterbox |
| ⚡ Inference nhanh | Tối ưu cho GPU với mixed precision (FP16) |
| 🎨 Giao diện đẹp | Web UI với Gradio, dễ sử dụng |
| 📝 Xử lý văn bản dài | Tự động chia câu, ghép audio với crossfade |
Viterbox được xây dựng trên kiến trúc Chatterbox của Resemble AI:
Model được fine-tune trên 3000+ giờ dữ liệu tiếng Việt chất lượng cao:
| Dataset | Mô tả | Thời lượng |
|---|---|---|
| ViVoice | Dữ liệu giọng đọc đa dạng | ~1000h |
| PhoAudiobook | Sách nói tiếng Việt | ~1000h |
| Dolly-Audio | Dữ liệu nội bộ, đa giọng | ~1000h |
# Clone repo
git clone https://github.com/iamdinhthuan/viterbox-tts.git
cd viterbox
# Tạo virtual environment (khuyến nghị)
python -m venv venv
source venv/bin/activate # Linux/Mac
# hoặc: venv\Scripts\activate # Windows
# Cài đặt dependencies
pip install -r requirements.txt
pip install -e .
python app.py
Mở trình duyệt tại http://localhost:7860
Giao diện web cho phép:
from viterbox import Viterbox
# Load model (tự động download từ HuggingFace)
tts = Viterbox.from_pretrained("cuda")
# Tạo audio với giọng mặc định
audio = tts.generate("Xin chào, tôi là Viterbox!")
# Tạo audio với voice cloning
audio = tts.generate(
text="Xin chào, tôi là Viterbox!",
language="vi",
audio_prompt="path/to/reference.wav",
exaggeration=0.5,
cfg_weight=0.5,
temperature=0.8,
sentence_pause_ms=500,
)
# Lưu file
tts.save_audio(audio, "output.wav")
# Tạo audio đơn giản
python inference.py --text "Xin chào ạ, em là trợ lý ảo của bạn, em có thể giúp gì cho anh ạ?" --output output.wav
# Với voice cloning và các tham số
python inference.py \
--text "Việt Nam là một đất nước xinh đẹp." \
--lang vi \
--ref reference.wav \
--exaggeration 0.5 \
--sentence-pause 0.5 \
--output output.wav
| Tham số | Mô tả | Giá trị | Mặc định |
|---|---|---|---|
text | Văn bản cần đọc | string | (bắt buộc) |
language | Mã ngôn ngữ | "vi", "en" | "vi" |
audio_prompt | Audio mẫu cho voice cloning | path/tensor | None |
exaggeration | Mức độ biểu cảm | 0.0 - 2.0 | 0.5 |
cfg_weight | Độ bám sát giọng mẫu | 0.0 - 1.0 | 0.5 |
temperature | Độ ngẫu nhiên/sáng tạo | 0.1 - 1.0 | 0.8 |
top_p | Top-p sampling | 0.0 - 1.0 | 0.9 |
repetition_penalty | Phạt lặp từ | 1.0 - 2.0 | 1.2 |
sentence_pause_ms | Thời gian ngắt giữa câu | 0 - 2000 | 500 |
crossfade_ms | Thời gian crossfade | 0 - 100 | 50 |
viterbox/
├── app.py # Gradio Web UI
├── inference.py # CLI inference script
├── requirements.txt # Dependencies
├── pyproject.toml # Package config
├── README.md
├── wavs/ # Thư mục chứa giọng mẫu
│ └── *.wav
└── viterbox/ # Core library
├── __init__.py
├── tts.py # Main Viterbox class
└── models/ # Model components
├── t3/ # T3 Text-to-Token model
├── s3gen/ # S3Gen vocoder
├── s3tokenizer/ # Speech tokenizer
├── voice_encoder/ # Speaker encoder
└── tokenizers/ # Text tokenizer
Model được host trên HuggingFace Hub: dolly-vn/viterbox
| File | Mô tả | Kích thước |
|---|---|---|
t3_ml24ls_v2.safetensors | T3 model (fine-tuned) | ~2GB |
s3gen.pt | S3Gen vocoder | ~1GB |
ve.pt | Voice Encoder | ~20MB |
tokenizer_vi_expanded.json | Tokenizer với vocab tiếng Việt | ~50KB |
conds.pt | Default voice conditioning | ~1MB |
text = """
Việt Nam là một quốc gia nằm ở phía đông bán đảo Đông Dương.
Đất nước có hình chữ S với chiều dài hơn 1600 km.
Thủ đô Hà Nội là trung tâm chính trị và văn hóa của cả nước.
"""
audio = tts.generate(
text=text,
language="vi",
sentence_pause_ms=600, # Nghỉ 0.6s giữa các câu
)
tts.save_audio(audio, "vietnam.wav")
# Clone giọng từ file WAV (3-10 giây)
audio = tts.generate(
text="Xin chào, tôi có thể nói bằng giọng của bạn!",
audio_prompt="my_voice.wav",
exaggeration=0.3, # Giọng tự nhiên
cfg_weight=0.7, # Bám sát giọng mẫu
)
CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial 4.0)
Liên hệ thương mại: contextbox.ai
Made with ❤️ by Dolly VN @ ContextBoxAI
Python
100.0%
Viterbox là mô hình Text-to-Speech tiếng Việt chất lượng cao, được fine-tune từ Chatterbox trên 3000+ giờ dữ liệu tiếng Việt.
| Tính năng | Mô tả |
|---|---|
| 🇻🇳 Tiếng Việt tự nhiên | Phát âm chuẩn, ngữ điệu tự nhiên, hỗ trợ đầy đủ dấu thanh |
| 🎯 Zero-shot Voice Cloning | Clone giọng nói chỉ với 3-10 giây audio mẫu |
| 🌍 Đa ngôn ngữ | Hỗ trợ tiếng Việt và 23 ngôn ngữ khác từ Chatterbox |
| ⚡ Inference nhanh | Tối ưu cho GPU với mixed precision (FP16) |
| 🎨 Giao diện đẹp | Web UI với Gradio, dễ sử dụng |
| 📝 Xử lý văn bản dài | Tự động chia câu, ghép audio với crossfade |
Viterbox được xây dựng trên kiến trúc Chatterbox của Resemble AI:
Model được fine-tune trên 3000+ giờ dữ liệu tiếng Việt chất lượng cao:
| Dataset | Mô tả | Thời lượng |
|---|---|---|
| ViVoice | Dữ liệu giọng đọc đa dạng | ~1000h |
| PhoAudiobook | Sách nói tiếng Việt | ~1000h |
| Dolly-Audio | Dữ liệu nội bộ, đa giọng | ~1000h |
# Clone repo
git clone https://github.com/iamdinhthuan/viterbox-tts.git
cd viterbox
# Tạo virtual environment (khuyến nghị)
python -m venv venv
source venv/bin/activate # Linux/Mac
# hoặc: venv\Scripts\activate # Windows
# Cài đặt dependencies
pip install -r requirements.txt
pip install -e .
python app.py
Mở trình duyệt tại http://localhost:7860
Giao diện web cho phép:
from viterbox import Viterbox
# Load model (tự động download từ HuggingFace)
tts = Viterbox.from_pretrained("cuda")
# Tạo audio với giọng mặc định
audio = tts.generate("Xin chào, tôi là Viterbox!")
# Tạo audio với voice cloning
audio = tts.generate(
text="Xin chào, tôi là Viterbox!",
language="vi",
audio_prompt="path/to/reference.wav",
exaggeration=0.5,
cfg_weight=0.5,
temperature=0.8,
sentence_pause_ms=500,
)
# Lưu file
tts.save_audio(audio, "output.wav")
# Tạo audio đơn giản
python inference.py --text "Xin chào ạ, em là trợ lý ảo của bạn, em có thể giúp gì cho anh ạ?" --output output.wav
# Với voice cloning và các tham số
python inference.py \
--text "Việt Nam là một đất nước xinh đẹp." \
--lang vi \
--ref reference.wav \
--exaggeration 0.5 \
--sentence-pause 0.5 \
--output output.wav
| Tham số | Mô tả | Giá trị | Mặc định |
|---|---|---|---|
text | Văn bản cần đọc | string | (bắt buộc) |
language | Mã ngôn ngữ | "vi", "en" | "vi" |
audio_prompt | Audio mẫu cho voice cloning | path/tensor | None |
exaggeration | Mức độ biểu cảm | 0.0 - 2.0 | 0.5 |
cfg_weight | Độ bám sát giọng mẫu | 0.0 - 1.0 | 0.5 |
temperature | Độ ngẫu nhiên/sáng tạo | 0.1 - 1.0 | 0.8 |
top_p | Top-p sampling | 0.0 - 1.0 | 0.9 |
repetition_penalty | Phạt lặp từ | 1.0 - 2.0 | 1.2 |
sentence_pause_ms | Thời gian ngắt giữa câu | 0 - 2000 | 500 |
crossfade_ms | Thời gian crossfade | 0 - 100 | 50 |
viterbox/
├── app.py # Gradio Web UI
├── inference.py # CLI inference script
├── requirements.txt # Dependencies
├── pyproject.toml # Package config
├── README.md
├── wavs/ # Thư mục chứa giọng mẫu
│ └── *.wav
└── viterbox/ # Core library
├── __init__.py
├── tts.py # Main Viterbox class
└── models/ # Model components
├── t3/ # T3 Text-to-Token model
├── s3gen/ # S3Gen vocoder
├── s3tokenizer/ # Speech tokenizer
├── voice_encoder/ # Speaker encoder
└── tokenizers/ # Text tokenizer
Model được host trên HuggingFace Hub: dolly-vn/viterbox
| File | Mô tả | Kích thước |
|---|---|---|
t3_ml24ls_v2.safetensors | T3 model (fine-tuned) | ~2GB |
s3gen.pt | S3Gen vocoder | ~1GB |
ve.pt | Voice Encoder | ~20MB |
tokenizer_vi_expanded.json | Tokenizer với vocab tiếng Việt | ~50KB |
conds.pt | Default voice conditioning | ~1MB |
text = """
Việt Nam là một quốc gia nằm ở phía đông bán đảo Đông Dương.
Đất nước có hình chữ S với chiều dài hơn 1600 km.
Thủ đô Hà Nội là trung tâm chính trị và văn hóa của cả nước.
"""
audio = tts.generate(
text=text,
language="vi",
sentence_pause_ms=600, # Nghỉ 0.6s giữa các câu
)
tts.save_audio(audio, "vietnam.wav")
# Clone giọng từ file WAV (3-10 giây)
audio = tts.generate(
text="Xin chào, tôi có thể nói bằng giọng của bạn!",
audio_prompt="my_voice.wav",
exaggeration=0.3, # Giọng tự nhiên
cfg_weight=0.7, # Bám sát giọng mẫu
)
CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial 4.0)
Liên hệ thương mại: contextbox.ai
Made with ❤️ by Dolly VN @ ContextBoxAI
Python
100.0%