--- license: apache-2.0 datasets: - pnnbao-ump/VieNeu-TTS-140h - pnnbao-ump/VieNeu-TTS-140h-nanocodec - pnnbao-ump/VieNeu-TTS-500h-dialects language: - vi base_model: - nineninesix/kani-tts-370m pipeline_tag: text-to-speech --- # 😻 Kani TTS Vie [![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/pnnbao97/Kani-TTS-Vie) [![Hugging Face](https://img.shields.io/badge/Hugging%20Face-Model-yellow)](https://huggingface.co/pnnbao-ump/kani-tts-370m-vie) **Fast and Expressive Vietnamese Text-to-Speech Model** ![logo-removebg-preview](/static-proxy?url=https%3A%2F%2Fcdn-uploads.huggingface.co%2Fproduction%2Fuploads%2F68b923a86c86c127a1975eda%2Fs83RYjg6BCrSPTNNXMu4u.png) **Kani TTS Vie** là mô hình chuyển văn bản thành giọng nói tiếng Việt tốc độ cao, hỗ trợ streaming, rất phù hợp cho ứng dụng thời gian thực, được fine-tune từ mô hình nền [kani-tts-370m](https://huggingface.co/nineninesix/kani-tts-370m) trên dữ liệu: - **VieNeu-TTS-500h-dialects** (đa vùng miền) - **VieNeu-TTS-140h** + **140h-nanocodec** (giọng phổ thông & dữ liệu nén cao chất lượng) ## ✨ Tính năng - 🚀 **Siêu nhanh**: Inference chỉ ~3 giây cho đoạn văn ngắn - 🎭 **Đa giọng**: Hỗ trợ nhiều giọng đọc tiếng Việt (Nam/Nữ, Bắc/Nam). Lưu ý: các bạn hoàn toàn có thể sử dụng giọng của các ngôn ngữ khác để inference tiếng Việt. - 📝 **Chuẩn hóa văn bản**: Tự động chuẩn hóa số, ký hiệu, từ viết tắt - 🎯 **Chất lượng cao**: Âm thanh tự nhiên, rõ ràng với sample rate 22.05kHz ## 💝 Ủng hộ dự án **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 **hơn 500 giờ dữ liệu đa vùng miền** đòi hỏi chi phí GPU rất lớn. Nếu mô hình này hữu ích cho bạn, hãy cân nhắc ủng hộ để giúp dự án tiếp tục phát triển:
[![Buy Me a Coffee](https://img.shields.io/badge/☕_Mua_tôi_một_ly_cà_phê-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/pnnbao)
**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ộ!* 🙏
--- ## 🎤 Giọng đọc hỗ trợ ### Tiếng Việt > **Tất cả các mẫu âm thanh tiếng Việt dưới đây đều được sinh ra (inferred) từ mô hình Kani TTS Vie.** - **Khoa** – Nam miền Bắc > "Cũng trong thập niên 1960, Jones quyết định đương đầu với một thử thách mới, viết nhạc phim." - **Hùng** – Nam miền Nam > "Ông biết hiện giờ nhiều người không còn thích đọc sách nữa, thế nên dù ai đó chỉ vô tình ghé hiệu sách, ông cũng đều trân trọng cả." - **Trinh** – Nữ miền Nam > "Đi vào chi tiết Làm việc nhóm và tính cứng nhắc cá nhân là hai điều không thể nào tương thích với nhau." --- ### Tiếng Anh > **💡 Lưu ý:** Các bạn hoàn toàn có thể dùng giọng của những ngôn ngữ khác để **inference cho tiếng Việt**! - **David** – British > "Ngược lại, những người không thể đào tạo sẽ gặp khó khăn với sự thay đổi và kết quả là họ không thể thích nghi." - **Katie** – Irish > "Những người này sẽ vò đầu bứt tai, chịu đựng nỗi đau thể chất khi nghĩ đến chuyện làm những điều khác biệt." --- ### Các Giọng Khác để Test (Cross-lingual) **(Sử dụng các giọng này với tiếng Việt để tạo hiệu ứng giọng nước ngoài đọc tiếng Việt)** * **English:** Puck (Gemini), Kore (Gemini), Andrew, Jenny (Irish), Simon * **Korean:** Seulgi * **German:** Bert, Thorsten (Hessisch) * **Spanish:** Maria * **Chinese:** Mei (Cantonese), Ming (Shanghai) * **Arabic:** Karim, Nur ### Cần finetune giọng của riêng bạn? Bạn hoàn toàn có thể **tinh chỉnh (fine-tuning) mô hình Kani TTS Vie** trên tập dữ liệu cá nhân của mình bằng phương pháp LoRA. Vui lòng truy cập thư mục `finetune/` trong repository này để tìm các Notebook hướng dẫn chi tiết: 🔗 [https://github.com/pnnbao97/Kani-TTS-Vie](https://github.com/pnnbao97/Kani-TTS-Vie) ## 🔧 Sử dụng ### Trên Hugging Face Space Truy cập trực tiếp tại: [pnnbao-ump/Kani-TTS-Vie](https://huggingface.co/spaces/pnnbao-ump/Kani-TTS-Vie) ### Local Installation ```bash # Clone repository git clone https://github.com/pnnbao97/Kani-TTS-Vie.git cd Kani-TTS-Vie # Cài đặt dependencies uv sync # Chạy ứng dụng uv run uvicorn server:app ``` ### Python API ```python from kani_vie.tts_core import Config, KaniModel, NemoAudioPlayer from utils.normalize_text import VietnameseTTSNormalizer # Khởi tạo model config = Config() player = NemoAudioPlayer(config) kani = KaniModel(config, player) normalizer = VietnameseTTSNormalizer() # Tạo giọng nói text = "Xin chào! Tôi là Kani TTS." processed_text = normalizer.normalize(text) audio, _ = kani.run_model(processed_text, speaker_id="nam-mien-nam") # Lưu file import soundfile as sf sf.write("output.wav", audio, 22050) ``` ## 📊 Thông số kỹ thuật | Thông số | Giá trị | |----------|---------| | **Model size** | 370M parameters | | **Sample rate** | 22,050 Hz | | **Inference time** | ~3s cho văn bản ngắn | | **RTF** | ~0.1-0.3x (real-time factor) | | **Base model** | [nineninesix/kani-tts-370m](https://huggingface.co/nineninesix/kani-tts-370m) | ## 📚 Datasets Model được fine-tune trên: - [VieNeu-TTS-140h](https://huggingface.co/datasets/pnnbao-ump/VieNeu-TTS-140h) - [VieNeu-TTS-140h-nanocodec](https://huggingface.co/datasets/pnnbao-ump/VieNeu-TTS-140h-nanocodec) - [VieNeu-TTS-500h-dialects](https://huggingface.co/datasets/pnnbao-ump/VieNeu-TTS-500h-dialects)