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

GitHub Repository Hugging Face Model Audio Quality Inference Speed

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