Text-to-Speech
Safetensors
Vietnamese
lfm2
File size: 7,279 Bytes
958ad81
 
 
 
 
8a06488
958ad81
 
 
 
 
2bd5c50
3fb7723
2bd5c50
ad977bb
 
 
2bd5c50
 
55fd4c1
3fb7723
ad977bb
abd4720
 
2bd5c50
 
 
 
abd4720
2bd5c50
 
 
0cfcb2a
 
8c0c54b
 
 
0cfcb2a
 
 
 
 
8c0c54b
 
 
 
 
 
 
 
 
 
 
0cfcb2a
8c0c54b
 
0cfcb2a
 
 
 
 
2bd5c50
 
 
8e27664
 
2bd5c50
a342039
 
 
a0354d6
8bdc167
445b69f
cea33c2
a0354d6
cea33c2
2bd5c50
18e3dc7
 
 
2bd5c50
f5db679
 
2bd5c50
f5db679
 
 
72bf627
924df26
cfd2c2f
f5db679
 
924df26
f5db679
 
 
 
 
 
 
2bd5c50
f5db679
 
 
 
 
 
2bd5c50
b292333
 
 
 
 
 
2bd5c50
 
 
 
 
 
 
 
 
 
 
 
 
 
8bdc167
2bd5c50
 
8bdc167
2bd5c50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95a3137
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
---
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

[![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/pnnbao97/Kani-TTS-Vie)
[![Hugging Face](https://img.shields.io/badge/Hugging%20Face-Model-yellow)](https://huggingface.co/pnnbao-ump/kani-tts-370m-vie)

**Fast and Expressive Vietnamese Text-to-Speech Model**

![logo-removebg-preview](/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2Fs83RYjg6BCrSPTNNXMu4u.png%3C%2Fspan%3E)

**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:

<div align="center">

[![Buy Me a Coffee](https://img.shields.io/badge/☕_Mua_tôi_một_ly_cà_phê-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/pnnbao)

</div>

**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

<div align="center">

*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ộ!* 🙏

</div>

---

## 🎤 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."

<audio controls src="/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2FrDS7z178YfiE3O68uq0q9.wav%26quot%3B%3C%2Fspan%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%3Cspan class="language-xml"></audio>

- **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ả."

<audio controls src="/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2Fv7JvkkN2mhMjDsmHGkJ4Z.wav%26quot%3B%3C%2Fspan%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%3Cspan class="language-xml"></audio>

- **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."

<audio controls src="/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2F62AGPQEbFcVK4aZJnRgdX.wav%26quot%3B%3C%2Fspan%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%3Cspan class="language-xml"></audio>

---

### 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."

<audio controls src="/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2FjY7B-tjuzSYo7O-F8V4-3.wav%26quot%3B%3C%2Fspan%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%3Cspan class="language-xml"></audio>
- **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."

<audio controls src="/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2F3Uaqx-Dj4lxtq-ChYUTq_.wav%26quot%3B%3C%2Fspan%3E%26gt%3B%3C%2Fspan%3E%3C%2Fspan%3E%3Cspan class="language-xml"></audio>

---

### 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)