--- 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 **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 nhanh và biểu cảm, được phát triển dựa trên [Kani TTS](https://github.com/NineSixAI/kani-tts) với 370M parameters. ## ✨ 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) và các ngôn ngữ khác - 📝 **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 ## 🎤 Giọng đọc hỗ trợ ### Tiếng Việt - **Khoa** – Nam miền Bắc - **Hùng** – Nam miền Nam - **Trinh** – Nữ miền Nam ### Tiếng Anh - David (British), Puck (Gemini), Kore (Gemini), Andrew, Jenny (Irish), Simon, Katie ### Ngôn ngữ khác - **Korean**: Seulgi - **German**: Bert, Thorsten (Hessisch) - **Spanish**: Maria - **Chinese**: Mei (Cantonese), Ming (Shanghai) - **Arabic**: Karim, Nur ## 🔧 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 pip install -r requirements.txt # Chạy ứng dụng python app.py ``` ### 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)