Mô hình chuyển văn bản thành giọng nói tiếng Việt nhanh, rõ ràng và giàu biểu cảm, với điểm mạnh là inference cực nhanh và streaming mượt mà, xây dựng trên nền tảng Kani 370M. Kho lưu trữ này hỗ trợ cả script chạy cục bộ và các demo UI/API đi kèm với bản phát hành pnnbao-ump/kani-tts-370m-vie trên Hugging Face.
- 🚀 Inference nhanh – khoảng 3 giây cho đoạn văn ngắn trên GPU đơn, hệ số thời gian thực ~0.1–0.3×.
- 🎭 Đa giọng – 18 giọng đọc, bao gồm Tiếng Việt, Tiếng Anh, Hàn, Đức, Tây Ban Nha, Trung và Ả Rập. Lưu ý: bạn vẫn có thể dùng các giọng nước ngoài để đọc văn bản tiếng Việt.
- 📓 Notebooks đi kèm – Hướng dẫn chi tiết inference, chuẩn bị dataset, và fine-tuning LoRA trong thư mục
finetune/.
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 500+ giờ dữ liệu đa vùng miền đòi hỏi chi phí GPU rất lớn.
Nếu dự án này hữu ích cho bạn, hãy cân nhắc ủng hộ để tiếp tục phát triển:
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
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ộ! 🙏
Nghe mẫu sample tại đây: https://huggingface.co/pnnbao-ump/kani-tts-370m-vie
| Ngôn ngữ | Giọng đọc |
|---|---|
| Tiếng Việt | Khoa (Nam Bắc), Hùng (Nam Nam), Trinh (Nữ Nam) |
| Tiếng Anh | David (British), Puck (Gemini), Kore (Gemini), Andrew, Jenny (Irish), Simon, Katie |
| Tiếng Hàn | Seulgi |
| Tiếng Đức | Bert, Thorsten (Hessisch) |
| Tiếng Tây Ban Nha | Maria |
| Tiếng Trung | Mei (Cantonese), Ming (Shanghai) |
| Tiếng Ả Rập | Karim, Nur |
- Python 3.12
- GPU
- VRAM: Cần tối thiểu 2 GB VRAM để inference (sinh giọng nói) được mượt mà và ổn định.
- Driver & CUDA: Cần có Driver GPU và CUDA Toolkit tương thích với phiên bản PyTorch đang được sử dụng.
- Hệ điều hành
- Linux (Khuyến nghị): Được hỗ trợ nguyên bản.
- Windows: Bắt buộc phải sử dụng môi trường WSL 2 (Windows Subsystem for Linux). Xem cách cài đặt tại đây: https://learn.microsoft.com/en-us/windows/wsl/install
- ffmpeg
Cài đặt dependencies:
# Dùng uv (khuyến nghị)
uv sync
⚠️ Lưu ý quan trọng: Văn bản đầu vào nên ngắn hơn 250 ký tự. Nếu dài hơn, quá trình inference có thể cho kết quả sai hoặc không ổn định. Gradio demo đã giới hạn sẵn, nhưng khi gọi API hoặc script riêng bạn cũng nên tuân thủ giới hạn này.
Đây là cách thiết lập môi trường cục bộ, khuyến nghị sử dụng uv để cài đặt và chạy:
# Clone repository
git clone https://github.com/pnnbao97/Kani-TTS-Vie
cd Kani-TTS-Vie
# Cài đặt dependencies (Sử dụng uv)
uv sync
# Chạy ứng dụng
uv run uvicorn server:appfinetune/prepare_dataset.ipynb– Chuẩn bị dữ liệu để tinh chỉnh (fine-tuning) giọng tùy chỉnh.finetune/kani-tts-vi-finetune.ipynb– Code tinh chỉnh LoRA cho mô hình Kani TTS Vie.
Mở chúng bằng môi trường Jupyter sau khi kích hoạt virtual environment.
Screen.Recording.2025-11-11.202419.mp4
Nếu muốn thử nhanh giao diện web đơn giản, bạn có thể chạy ứng dụng Gradio đi kèm:
uv run python gradio_app.pyỨng dụng sẽ khởi động tại http://0.0.0.0:7860 (hoặc cổng được cấu hình qua biến môi trường PORT). Chọn giọng đọc, nhập văn bản và bấm "🎵 Tạo giọng nói" để nghe kết quả.
Chào đón mọi đóng góp!
- Fork repository.
- Tạo branch mới cho tính năng.
- Chạy lint/tests liên quan.
- Mở pull request mô tả cải tiến.
Dự án này phát hành theo Apache License 2.0. Kiểm tra giấy phép các mô hình/dataset bên thứ ba trước khi phân phối lại.