🍵 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.


⚡ Đ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).
  • Xử lý ký tự đặc biệt & ngoại lai: Bộ lọc và phiên âm ký tự lạ (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

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

# 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/:

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:

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:

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

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:

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):
    python3 train_full_22050.py
    
  • Huấn luyện Vocos Vocoder:
    python3 train_vocos_the_gioi_hoan_my.py
    

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

  • Mã nguồn: MIT 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!
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support