File size: 7,077 Bytes
54dac83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
language:
- vi
license: mit
tags:
- text-to-speech
- tts
- matcha-tts
- vocos
- flow-matching
- speech
- vietnamese
datasets:
- custom
metrics:
- rtf
pipeline_tag: text-to-speech
---

# 🍵 Matcha-TTS & Vocos Tiếng Việt (22,050 Hz)

<p align="center">
  <a href="https://github.com/congkx123789/Matchtts_VI"><img src="https://img.shields.io/badge/GitHub-Matchtts__VI-181717?style=for-the-badge&logo=github" alt="GitHub Repository"></a>
  <a href="https://huggingface.co/Cong123779/Matchtts_VI"><img src="https://img.shields.io/badge/HuggingFace-Model%20Weights-FFD21E?style=for-the-badge&logo=huggingface&logoColor=black" alt="Hugging Face Model"></a>
  <img src="https://img.shields.io/badge/Sample%20Rate-22.05kHz%20PCM--16-blue?style=for-the-badge" alt="Audio Quality">
  <img src="https://img.shields.io/badge/Speed-Up%20to%2080x%20Realtime-brightgreen?style=for-the-badge" alt="Inference Speed">
</p>

Hệ thống tổng hợp giọng nói tiếng Việt tốc độ cao độc lập, kết hợp giữa mô hình **Matcha-TTS** nguyên bản (Conditional Flow Matching + RoPE Encoder) và **Vocos Neural Vocoder**.

- 🔗 **GitHub Repository:** [https://github.com/congkx123789/Matchtts_VI](https://github.com/congkx123789/Matchtts_VI)
- 🤗 **Hugging Face Model Weights:** [https://huggingface.co/Cong123779/Matchtts_VI](https://huggingface.co/Cong123779/Matchtts_VI)

---

## ⚡ Điểm Nổi Bật

- **Tốc độ cực nhanh (Fast Inference):** Đạt từ **30x – 80x Real-time** (chỉ mất ~97ms trên CPU với `steps=1` và ~260ms với `steps=10`).
- **Phát âm chuẩn tiếng Việt:** Tích hợp bộ chuẩn hóa chữ số, ngày tháng, thời gian, đơn vị đo lường và ngữ cảnh đặc thù ([`vietnamese_text_normalizer.py`](https://github.com/congkx123789/Matchtts_VI/blob/main/vietnamese_text_normalizer.py)).
- **Xử lý ký tự đặc biệt & ngoại lai:** Bộ lọc và phiên âm ký tự lạ ([`foreign_symbols_translator.py`](https://github.com/congkx123789/Matchtts_VI/blob/main/foreign_symbols_translator.py)).
- **Âm thanh trung thực:** Tần số lấy mẫu **22,050 Hz (PCM-16)**, âm sắc rõ ràng và tròn vành rõ chữ.
- **Tùy biến ngắt nghỉ:** Hỗ trợ điều chỉnh độ trễ ngắt nghỉ qua file cấu hình hoặc Giao diện Web trực quan.

---

## 📁 Cấu Trúc Dự Án

```text
Matchtts_VI/
├── checkpoints/                        # Thư mục lưu trữ trọng số mô hình (.pt, .ckpt)
│   ├── matcha_epoch10_clean.pt         # Checkpoint Matcha-TTS (CFM)
│   └── vocos_tri_dataset_epoch05.ckpt  # Checkpoint Vocos Vocoder
├── matcha/                             # Kiến trúc mạng cốt lõi Matcha-TTS
├── vocos/                              # Kiến trúc mạng Vocos Neural Vocoder
├── dataset_pipeline.py                 # Pipeline nạp và xử lý tập dữ liệu âm thanh
├── export_clean_tts_manifest.py        # Script xuất manifest dữ liệu huấn luyện
├── foreign_symbols_translator.py       # Xử lý phiên âm ký tự đặc biệt & từ ngoại lai
├── infer.py                            # Script CLI tổng hợp giọng nói (Inference)
├── load_model.py                       # Module nạp trọn bộ mô hình lên GPU/CPU
├── pause_config.json                   # Cấu hình thời gian ngắt nghỉ (dấu phẩy, chấm,...)
├── pause_control_web.py                # Dashboard Web trực quan điều khiển ngắt nghỉ
├── train_full_22050.py                 # Pipeline huấn luyện Matcha-TTS 22.05kHz
├── train_vocos_the_gioi_hoan_my.py     # Script huấn luyện / tinh chỉnh Vocos Vocoder
├── vietnamese_text_normalizer.py       # Bộ chuẩn hóa văn bản tiếng Việt
├── .env.example                        # Mẫu cấu hình Hugging Face token
└── README.md                           # Tài liệu hướng dẫn sử dụng
```

---

## 🛠️ Cài Đặt Môi Trường

Khuyến nghị sử dụng Python 3.10+:

```bash
# 1. Clone repository
git clone https://github.com/congkx123789/Matchtts_VI.git
cd Matchtts_VI

# 2. Cài đặt các thư viện cần thiết
pip install torch torchaudio soundfile omegaconf diffusers numpy scipy huggingface_hub
```

---

## 📥 Tải Checkpoints Từ Hugging Face

Bạn có thể tự động tải toàn bộ trọng số mô hình từ Hugging Face Hub vào thư mục `checkpoints/`:

```python
from huggingface_hub import hf_hub_download
import os

repo_id = "Cong123779/Matchtts_VI"
os.makedirs("checkpoints", exist_ok=True)

# Tải Matcha-TTS checkpoint
hf_hub_download(repo_id=repo_id, filename="checkpoints/matcha_epoch10_clean.pt", local_dir=".")

# Tải Vocos checkpoint
hf_hub_download(repo_id=repo_id, filename="checkpoints/vocos_tri_dataset_epoch05.ckpt", local_dir=".")
```

Hoặc tải nhanh bằng CLI:
```bash
huggingface-cli download Cong123779/Matchtts_VI --local-dir .
```

---

## 🚀 Hướng Dẫn Sử Dụng

### 1. Tổng Hợp Giọng Nói (CLI Inference)

Chạy lệnh tổng hợp âm thanh:

```bash
python3 infer.py --text "Xin chào, đây là giọng đọc tiếng Việt từ mô hình Matcha-TTS." --out "output.wav"
```

#### Bảng tham số:
| Tham số | Ý nghĩa | Mặc định | Gợi ý sử dụng |
|---|---|:---:|---|
| `--text` | Đoạn văn bản tiếng Việt cần đọc | - | Nhập câu bất kỳ |
| `--out` | Đường dẫn file wav đầu ra | `output_demo.wav` | File `.wav` |
| `--steps` | Số bước giải ODE (ODE Solver steps) | `10` | `1` (cực nhanh), `10` (chuẩn), `25` (chất lượng cao) |
| `--temp` | Nhiệt độ lấy mẫu (Temperature) | `0.667` | Khoảng `0.5` - `0.8` |
| `--speed` | Tốc độ đọc | `1.0` | `< 1.0` (chậm hơn), `> 1.0` (nhanh hơn) |

**Ví dụ chạy siêu tốc với 1 step (Real-time > 80x trên CPU):**
```bash
python3 infer.py --text "Matcha-TTS xử lý câu dài cực kỳ nhanh chóng." --steps 1 --out "fast.wav"
```

---

### 2. Giao Diện Web Điều Chỉnh Ngắt Nghỉ (Web UI)

Khởi động giao diện điều khiển ngắt nghỉ âm thanh theo từng dấu câu:

```bash
python3 pause_control_web.py
```
Mở trình duyệt truy cập vào địa chỉ hiển thị trên terminal để tinh chỉnh chi tiết độ dài ngắt nghỉ.

---

### 3. Huấn Luyện & Tinh Chỉnh (Training)

- **Huấn luyện Matcha-TTS (22.05kHz):**
  ```bash
  python3 train_full_22050.py
  ```
- **Huấn luyện Vocos Vocoder:**
  ```bash
  python3 train_vocos_the_gioi_hoan_my.py
  ```

---

## 📜 Giấy Phép & Đóng Góp

- **Mã nguồn:** [MIT License](https://github.com/congkx123789/Matchtts_VI/blob/main/LICENSE)
- **Mô hình pre-trained:** Tự do nghiên cứu và sử dụng phi thương mại / thương mại có ghi nguồn tác giả.
- Mọi đóng góp (pull request, issue) đều được hoan nghênh trên [GitHub Repository](https://github.com/congkx123789/Matchtts_VI)!