---
license: apache-2.0
datasets:
- pnnbao-ump/VieNeu-TTS-140h
- pnnbao-ump/VieNeu-TTS-140h-nanocodec
- pnnbao-ump/VieNeu-TTS-500h-dialects
language:
- vi
base_model:
- nineninesix/kani-tts-370m
pipeline_tag: text-to-speech
---
# 😻 Kani TTS Vie
[](https://github.com/pnnbao97/Kani-TTS-Vie)
[](https://huggingface.co/pnnbao-ump/kani-tts-370m-vie)
**Fast and Expressive Vietnamese Text-to-Speech Model**

**Kani TTS Vie** là mô hình chuyển văn bản thành giọng nói tiếng Việt tốc độ cao, hỗ trợ streaming, rất phù hợp cho ứng dụng thời gian thực, được fine-tune từ mô hình nền [kani-tts-370m](https://huggingface.co/nineninesix/kani-tts-370m) trên dữ liệu:
- **VieNeu-TTS-500h-dialects** (đa vùng miền)
- **VieNeu-TTS-140h** + **140h-nanocodec** (giọng phổ thông & dữ liệu nén cao chất lượng)
## ✨ Tính năng
- 🚀 **Siêu nhanh**: Inference chỉ ~3 giây cho đoạn văn ngắn
- 🎭 **Đa giọng**: Hỗ trợ nhiều giọng đọc tiếng Việt (Nam/Nữ, Bắc/Nam). Lưu ý: các bạn hoàn toàn có thể sử dụng giọng của các ngôn ngữ khác để inference tiếng Việt.
- 📝 **Chuẩn hóa văn bản**: Tự động chuẩn hóa số, ký hiệu, từ viết tắt
- 🎯 **Chất lượng cao**: Âm thanh tự nhiên, rõ ràng với sample rate 22.05kHz
## 💝 Ủng hộ dự án
**Kani TTS Vie** là dự án mã nguồn mở hoàn toàn miễn phí. Tuy nhiên, việc fine-tuning mô hình TTS trên **hơn 500 giờ dữ liệu đa vùng miền** đòi hỏi chi phí GPU rất lớn.
Nếu mô hình này hữu ích cho bạn, hãy cân nhắc ủng hộ để giúp dự án tiếp tục phát triển:
[](https://buymeacoffee.com/pnnbao)
**Sự đóng góp của bạn sẽ giúp:**
- 💰 **Trang trải chi phí GPU**: Training model trên hàng trăm giờ dữ liệu tốn hàng nghìn USD
- 🚀 **Phát triển tính năng mới**: Voice cloning, emotion control, speaking style
- 📊 **Mở rộng dataset**: Thu thập thêm giọng đọc đa dạng (Bắc, Trung, Nam)
- 🎯 **Nâng cao chất lượng**: Cải thiện độ tự nhiên và rõ ràng của giọng đọc
- 🌍 **Duy trì dự án**: Cập nhật model, sửa lỗi, hỗ trợ cộng đồng
*Mỗi đóng góp, dù nhỏ, đều có ý nghĩa rất lớn với dự án!*
*Cảm ơn bạn đã tin tưởng và ủng hộ!* 🙏
---
## 🎤 Giọng đọc hỗ trợ
### Tiếng Việt
> **Tất cả các mẫu âm thanh tiếng Việt dưới đây đều được sinh ra (inferred) từ mô hình Kani TTS Vie.**
- **Khoa** – Nam miền Bắc
> "Cũng trong thập niên 1960, Jones quyết định đương đầu với một thử thách mới, viết nhạc phim."
- **Hùng** – Nam miền Nam
> "Ông biết hiện giờ nhiều người không còn thích đọc sách nữa, thế nên dù ai đó chỉ vô tình ghé hiệu sách, ông cũng đều trân trọng cả."
- **Trinh** – Nữ miền Nam
> "Đi vào chi tiết Làm việc nhóm và tính cứng nhắc cá nhân là hai điều không thể nào tương thích với nhau."
---
### Tiếng Anh
> **💡 Lưu ý:** Các bạn hoàn toàn có thể dùng giọng của những ngôn ngữ khác để **inference cho tiếng Việt**!
- **David** – British
> "Ngược lại, những người không thể đào tạo sẽ gặp khó khăn với sự thay đổi và kết quả là họ không thể thích nghi."
- **Katie** – Irish
> "Những người này sẽ vò đầu bứt tai, chịu đựng nỗi đau thể chất khi nghĩ đến chuyện làm những điều khác biệt."
---
### Các Giọng Khác để Test (Cross-lingual)
**(Sử dụng các giọng này với tiếng Việt để tạo hiệu ứng giọng nước ngoài đọc tiếng Việt)**
* **English:** Puck (Gemini), Kore (Gemini), Andrew, Jenny (Irish), Simon
* **Korean:** Seulgi
* **German:** Bert, Thorsten (Hessisch)
* **Spanish:** Maria
* **Chinese:** Mei (Cantonese), Ming (Shanghai)
* **Arabic:** Karim, Nur
### Cần finetune giọng của riêng bạn?
Bạn hoàn toàn có thể **tinh chỉnh (fine-tuning) mô hình Kani TTS Vie** trên tập dữ liệu cá nhân của mình bằng phương pháp LoRA.
Vui lòng truy cập thư mục `finetune/` trong repository này để tìm các Notebook hướng dẫn chi tiết:
🔗 [https://github.com/pnnbao97/Kani-TTS-Vie](https://github.com/pnnbao97/Kani-TTS-Vie)
## 🔧 Sử dụng
### Trên Hugging Face Space
Truy cập trực tiếp tại: [pnnbao-ump/Kani-TTS-Vie](https://huggingface.co/spaces/pnnbao-ump/Kani-TTS-Vie)
### Local Installation
```bash
# Clone repository
git clone https://github.com/pnnbao97/Kani-TTS-Vie.git
cd Kani-TTS-Vie
# Cài đặt dependencies
uv sync
# Chạy ứng dụng
uv run uvicorn server:app
```
### Python API
```python
from kani_vie.tts_core import Config, KaniModel, NemoAudioPlayer
from utils.normalize_text import VietnameseTTSNormalizer
# Khởi tạo model
config = Config()
player = NemoAudioPlayer(config)
kani = KaniModel(config, player)
normalizer = VietnameseTTSNormalizer()
# Tạo giọng nói
text = "Xin chào! Tôi là Kani TTS."
processed_text = normalizer.normalize(text)
audio, _ = kani.run_model(processed_text, speaker_id="nam-mien-nam")
# Lưu file
import soundfile as sf
sf.write("output.wav", audio, 22050)
```
## 📊 Thông số kỹ thuật
| Thông số | Giá trị |
|----------|---------|
| **Model size** | 370M parameters |
| **Sample rate** | 22,050 Hz |
| **Inference time** | ~3s cho văn bản ngắn |
| **RTF** | ~0.1-0.3x (real-time factor) |
| **Base model** | [nineninesix/kani-tts-370m](https://huggingface.co/nineninesix/kani-tts-370m) |
## 📚 Datasets
Model được fine-tune trên:
- [VieNeu-TTS-140h](https://huggingface.co/datasets/pnnbao-ump/VieNeu-TTS-140h)
- [VieNeu-TTS-140h-nanocodec](https://huggingface.co/datasets/pnnbao-ump/VieNeu-TTS-140h-nanocodec)
- [VieNeu-TTS-500h-dialects](https://huggingface.co/datasets/pnnbao-ump/VieNeu-TTS-500h-dialects)