Qwen-TTS Ngoc Huyen voice
This Vietnamese text-to-speech model is fine-tuned from
g-group-ai-lab/gwen-tts-0.6B, based on the Qwen3-TTS architecture.
The exported package includes merged weights and the ngoc_huyen speaker in
CustomVoice mode. No reference audio is required at inference time.
Training
The model was fine-tuned on approximately 90 hours of Ngọc Huyền's voice, collected by crawling YouTube and TikTok.
Training used LoRA adaptation, adapter merging, and selective refinement of the talker and output head, followed by joint refinement with the code predictor. The final model was selected by the training pipeline and packaged with a speaker embedding derived from reference audio.
Usage
pip install qwen-tts transformers soundfile
If the repository is private, authenticate with a Hugging Face account that has read access before downloading the model.
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel
model = Qwen3TTSModel.from_pretrained(
"huutamm1612/qwen-tts-ngoc-huyen-voice",
device_map="cuda:0",
dtype=torch.bfloat16,
attn_implementation="sdpa",
)
torch.manual_seed(3407)
waves, sample_rate = model.generate_custom_voice(
text="Xin chào, chúc bạn một ngày bình yên và nhiều niềm vui.",
language="Vietnamese",
speaker="ngoc_huyen",
do_sample=True, temperature=0.2, top_k=20, top_p=0.95,
repetition_penalty=2.0,
subtalker_do_sample=True, subtalker_temperature=0.07,
subtalker_top_k=20, subtalker_top_p=1.0,
max_new_tokens=4096,
)
sf.write("demo.wav", waves[0], sample_rate)
display(Audio(data=waves[0], rate=sample_rate))
For long text, split the input into sentences or paragraphs before synthesis. Generation speed depends on the GPU, batch size, and input length. No independent MOS or CER benchmark results are reported here.
Notes
- The model was trained on Vietnamese text written in words. It does not reliably interpret raw numeric forms such as dates, times, currencies, percentages, phone numbers, or abbreviations.
- Normalize input text before synthesis. This project uses the
sea-g2plibrary to convert numbers and common Vietnamese text patterns into spoken-word form. - For best results, keep each input sentence reasonably short and split long passages into sentences or paragraphs before generation.
- Review generated audio before publication, especially when the text includes names, foreign words, uncommon abbreviations, or specialized terminology.
Limitations and responsible use
The model may mispronounce names, numbers, or foreign words, and may omit or repeat words. Review generated audio before use. Model availability does not itself grant rights to a person's voice or permission for commercial use; applicable licenses and permissions must be reviewed separately. This model card does not claim endorsement by the person whose voice is represented. Do not use the model for deceptive impersonation, and clearly identify synthetic speech where appropriate.
Audio samples
The samples below are generated using the final model package with seed 3407;
they are not recordings from the training data. Transcripts, WAV files, and
sample durations are available in samples/. These examples are illustrative
and do not constitute a human-rated quality evaluation.
Sample 1
Xin chào, cảm ơn bạn đã dành thời gian lắng nghe. Nếu hôm nay có chút mệt mỏi, hãy thả lỏng đôi vai và hít một hơi thật sâu.
Sample 2
Buổi chiều, nắng trải nhẹ trên con đường dẫn về nhà. Cô dừng bên cánh cổng cũ, lắng nghe tiếng lá xào xạc. Từ gian bếp, một giọng nói thân thuộc vang lên.
Sample 3
Anh trở về rồi sao? Cô khẽ hỏi khi nghe tiếng cửa mở. Anh đặt túi xuống, mỉm cười. Tối nay có món gì ngon không em?
Sample 4
Kính thưa quý khách, chuyến tàu đi Đà Nẵng sẽ khởi hành lúc bảy giờ ba mươi phút. Quý khách vui lòng kiểm tra vé và hành lý trước khi lên tàu. Kính chúc quý khách một chuyến đi an toàn, thoải mái và thuận lợi.