YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
VNTTS-Clone 🇻🇳🎙️
Một hệ thống AI siêu nhẹ và tối ưu hóa chuyên biệt cho tác vụ Zero-Shot Voice Cloning (sao chép giọng nói) và tổng hợp giọng nói (Text-To-Speech) với chất lượng phòng thu.
🚀 Tính năng nổi bật
- Sao Chép Giọng Nhanh (Zero-Shot): Chỉ cần cung cấp duy nhất 1 đoạn âm thanh mẫu từ 3 đến 10 giây, AI có thể lập tức học và nhại lại giọng điệu, cảm xúc của người nói mà không cần train lại (fine-tune).
- Tối ưu cực tốt cho Tiếng Việt: Xử lý mượt mà các dấu câu, âm sắc và ngữ điệu phức tạp của Tiếng Việt.
- Hoạt Động Offline 100%: Thiết kế đặc biệt cho môi trường cục bộ (Local), sau khi tải model về bạn có thể ngắt mạng hoàn toàn để sử dụng với tính bảo mật tuyệt đối.
- Kiến trúc siêu nhẹ & Nhanh: Inference speed (tốc độ sinh giọng) cực kỳ nhanh, phù hợp tích hợp vào các hệ thống Bot, Web AI tự động.
💻 Hướng Dẫn Sử Dụng
1. Cài đặt môi trường
Bạn nên tạo một môi trường ảo (ví dụ: conda hoặc venv) trước khi cài để tránh xung đột.
Bước 1: Cài đặt PyTorch (với hệ thống dùng NVIDIA GPU)
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 --extra-index-url https://download.pytorch.org/whl/cu128
(Nếu bạn dùng Apple Silicon (MacOS) thì chạy: pip install torch==2.8.0 torchaudio==2.8.0)
Bước 2: Cài đặt package thư viện Clone/Tải thư mục repository này về máy, di chuyển vào thư mục và chạy lệnh sau để tự động cài đặt toàn bộ phụ thuộc:
# Nếu dùng pip:
pip install -e .
# Đã hỗ trợ chạy qua UV (nhanh hơn):
# uv sync
2. Chuẩn bị giọng mẫu (Reference Audio)
- Cắt 1 đoạn âm thanh chứa giọng nói bạn muốn clone (định dạng
.wavhoặc.mp3), độ dài lý tưởng là 3 đến 10 giây. - Đổi tên file đó thành
ref.wavvà đặt vào ngay thư mục gốc của project này.
3. Khởi chạy
Chạy trực tiếp file script có sẵn để test:
python test_tts.py
Kết quả sinh ra sẽ được lưu thành file output_clone.wav ngay trong thư mục!
🛠 Cách dùng API qua Python
Bạn hoàn toàn có thể tự code tích hợp tts này vào project riêng của mình cực kỳ đơn giản:
import torch
import torchaudio
# Load cấu trúc mô hình
print("Đang tải mô hình tạo giọng...")
text_can_doc = """
Chào các bạn, đây là hệ thống sao chép giọng nói AI tự động.
Nó có thể đọc bất kỳ đoạn văn bản nào bạn truyền vào!
"""
ref_path = "ref.wav" # File giọng đọc mẫu
ref_text = "Nội dung file đọc mẫu" # Viết lại nội dung file wav mẫu để AI bám sát giọng hơn
# Chạy tạo giọng
audio_clone = model.generate(
text=text_can_doc,
ref_audio=ref_path,
ref_text=ref_text,
num_step=32, # Số bước khuếch tán (càng cao chất lượng càng tốt)
)
# Lưu file kết quả
torchaudio.save("ketqua_AI.wav", audio_clone[0], 24000)
print("Đã lưu giọng thành công vào file ketqua_AI.wav")
📝 Lưu ý & Mẹo
- Chất lượng file mẫu (
ref_audio): File mẫu càng ít tạp âm, không có nhạc nền, giọng nói rõ ràng thì base clone ra sẽ càng giống. - Độ dài file mẫu: Đừng để quá dài (hơn 15 giây) AI có thể sẽ bị lú, lý tưởng nhất là một câu nói trọn vẹn, ngắt nghỉ rõ ràng dài tầm 5 giây.