A Hindi LoRA adapter for
Qwen3-TTS-0.6B,
post-trained with GRPO (reinforcement learning) on top of the supervised
akashicmarga/qwen3-tts-hindi-lora (SFT) adapter.
A modest but statistically robust improvement. (DNSMOS is English-trained, so a rough
relative proxy for Hindi naturalness; CER is an ASR proxy, not human MOS. GRPO reduces
typical-case errors but does not eliminate occasional non-terminating hallucinations.)
Same sentence, same seed — only the adapter differs. These are normal-length held-out
commands (no length gimmick); lower CER = more intelligible. Press play and compare.
(CER measured with whisper-large-v3-turbo; values >1.0 mean SFT produced more errors
than characters, i.e. largely unintelligible on that prompt.)
1from mlx_audio.tts.utils import load_model
2from train.lora import apply_lora, load_adapters, LoRAConfig
3
4model = load_model("mlx-community/Qwen3-TTS-12Hz-0.6B-Base-8bit")
5apply_lora(model, LoRAConfig(model_type="qwen3_tts", rank=8))
6load_adapters(model, "adapters.safetensors")
7
8for r in model.generate(text="नमस्ते, आज मौसम बहुत अच्छा है।", lang_code="auto"):
9 pass # r.audio is the waveform (24 kHz)
Trained on Apple Silicon (MLX). lang_code="auto" (nothink prefix — no dedicated Hindi token).
Apache-2.0. Built on IndicVoices-R (CC-BY-4.0).