VieNeu-TTS-v2
[](https://github.com/pnnbao97/VieNeu-TTS) [](https://huggingface.co/pnnbao-ump/VieNeu-TTS-v2) [](https://discord.gg/yJt8kzjzWZ) **VieNeu-TTS-v2** is the next generation of Vietnamese TTS, designed for **Natural Communication**, **Podcasts**, and **Bilingual (En-Vi) Code-switching**. > [!IMPORTANT] > **What's new in V2:** > - **10,000+ Hours Data:** Trained on a massive bilingual dataset for unparalleled naturalness. > - **Multi-Speaker Conversation:** Support for podcast-style scripts with distinct voices and emotional nuances. > - **Seamless Code-switching:** High-quality English integration within Vietnamese sentences. > - **Instant Voice Cloning:** Still supports cloning with just **3-5 seconds** of audio. This project features the flagship **VieNeu-TTS-v2** architecture: - **VieNeu-TTS-v2 (0.3B):** Optimized for high-fidelity bilingual speech and long-form content. - **VieNeu-TTS-v2-Turbo:** Optimized for ultra-low latency and CPU deployment using GGUF. Tác giả: **Phạm Nguyễn Ngọc Bảo** Training high-quality TTS models requires significant GPU resources. If you find this model useful, please consider supporting the development: [](https://buymeacoffee.com/pnnbao) git clone https://github.com/pnnbao97/VieNeu-TTS.git cd VieNeu-TTS uv sync --group gpu uv run vieneu-web Install the SDK to integrate VieNeu-TTS-0.3B into your research or applications: pip install vieneu --extra-index-url https://pnnbao97.github.io/llama-cpp-python-v0.3.16/cpu/ pip install vieneu from vieneu import Vieneu tts = Vieneu(emotion="natural") # emotion="natural" (giọng tự nhiên - mặc định) hoặc "storytelling" (giọng kể chuyện) text = "Chào bạn. Tôi là VieNeu-TTS, tôi có thể giúp bạn đọc sách, làm chatbot thời gian thực, thậm chí clone giọng nói của bạn." audio = tts.infer(text=text) tts.save(audio, "output_Trúc Ly.wav") print("💾 Saved to output_Trúc Ly.wav") voices = tts.list_preset_voices() for desc, voice_id in voices: print(f"Voice: {desc} (ID: {voice_id})") my_voice_id = voices[1][1] if len(voices) > 1 else voices[0][1] # Giọng Phạm Tuyên voice_data = tts.get_preset_voice(my_voice_id) audio_custom = tts.infer(text="Tôi đang nói bằng giọng của Bác sĩ Tuyên.", voice=voice_data) tts.save(audio_custom, "output_Phạm Tuyên.wav") print("💾 Saved to output_Phạm Tuyên.wav") Deploy VieNeu-TTS as a high-performance API Server (powered by LMDeploy) with a single command. **Requirement**: [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) is required for GPU support. **Start the Server with a Public Tunnel (No port forwarding needed):** docker run --gpus all -p 23333:23333 -v huggingface_cache:/root/.cache/huggingface pnnbao/vieneu-tts:latest --tunnel * **Default**: The server loads the `VieNeu-TTS-v2` model for maximum quality. * **Tunneling**: The Docker image includes a built-in `bore` tunnel. Check the container logs to find your public address (e.g., `bore.pub:31631`). Once the server is running, you can connect from anywhere (Colab, Web Apps, etc.) without loading heavy models locally. **Installation**: pip install "vieneu[gpu]" **Usage**: from vieneu import Vieneu import os REMOTE_API_BASE = 'http://your-server-ip:23333/v1' # Or bore tunnel URL REMOTE_MODEL_ID = "pnnbao-ump/VieNeu-TTS-v2" tts = Vieneu(mode='remote', api_base=REMOTE_API_BASE, model_name=REMOTE_MODEL_ID, emotion="natural") os.makedirs("outputs", exist_ok=True) available_voices = tts.list_preset_voices() for desc, name in available_voices: print(f" - {desc} (ID: {name})") if available_voices: _, my_voice_id = available_voices[1] voice_data = tts.get_preset_voice(my_voice_id) audio_spec = tts.infer(text="Chào bạn, tôi đang nói bằng giọng của bác sĩ Tuyên.", voice=voice_data) tts.save(audio_spec, f"outputs/remote_{my_voice_id}.wav") print(f"💾 Saved synthesis to: outputs/remote_{my_voice_id}.wav") text_input = "Chế độ remote giúp tích hợp VieNeu vào ứng dụng Web hoặc App cực nhanh mà không cần GPU tại máy khách." audio = tts.infer(text=text_input) tts.save(audio, "outputs/remote_output.wav") print("💾 Saved remote synthesis to: outputs/remote_output.wav") if os.path.exists("examples/audio_ref/example_ngoc_huyen.wav"): cloned_audio = tts.infer( text="Đây là giọng nói được clone và xử lý thông qua VieNeu Server.", ref_audio="examples/audio_ref/example_ngoc_huyen.wav", ref_text="Tác phẩm dự thi bảo đảm tính khoa học, tính đảng, tính chiến đấu, tính định hướng." ) tts.save(cloned_audio, "outputs/remote_cloned_output.wav") print("💾 Saved remote cloned voice to: outputs/remote_cloned_output.wav") @misc{vieneutts2026, title = {VieNeu-TTS-v2: Vietnamese Text-to-Speech with Instant Voice Cloning}, author = {Pham Nguyen Ngoc Bao}, year = {2026}, publisher = {Hugging Face}, howpublished = {\url{https://huggingface.co/pnnbao-ump/VieNeu-TTS}} } **Made with ❤️ for the Vietnamese TTS community**
Open VieNeu-TTS-v2 in AIniverse
Compare versions, read real ratings, save to your stack.
Open in App