LoRA adapters fine-tuned on top of
Qwen/Qwen3-TTS-12Hz-0.6B-Base for
Hindi using the
full AI4Bharat Rasa Hindi split.
Qwen-3-TTS-12Hz-0.6B-Base-hi-LoRA-Finetuned/
├── README.md
├── config.json ┐
├── generation_config.json │
├── merges.txt │
├── model.safetensors ├─ bundled Qwen3-TTS-0.6B base model
├── preprocessor_config.json │ (full precision — NOT quantized;
├── tokenizer_config.json │ loads standalone, no separate download)
├── vocab.json │
└── speech_tokenizer/ ┘ 12 Hz speech tokenizer (config + weights)
└── adapters/
├── hindi_female/
│ ├── adapter_config.json
│ ├── adapter_model.safetensors
│ ├── config.json
│ ├── ref.wav
│ ├── ref.txt
│ └── speaker_embedding.safetensors
└── hindi_male/
└── ...
1 pip install -U qwen-tts peft transformers torch torchaudio
2 pip install -U flash-attn --no-build-isolation # optional, for speed
1 import torch
2 import soundfile as sf
3 from huggingface_hub import snapshot_download , hf_hub_download
4 from qwen_tts import Qwen3TTSModel
5 from peft import PeftModel
6
7 REPO_ID = "aguken-ai/Qwen-3-TTS-12Hz-0.6B-Base-hi-LoRA-Finetuned"
8 COMBO = "hindi_female" # or "hindi_male"
9 LORA_SCALE = 0.35 # tune between 0.1-0.5
10
11 BASE_MODEL = snapshot_download ( REPO_ID , allow_patterns = [
12 "config.json" , "generation_config.json" , "merges.txt" , "model.safetensors" ,
13 "preprocessor_config.json" , "tokenizer_config.json" , "vocab.json" , "speech_tokenizer/*" ,
14 ] )
15 ADAPTER_PATH = snapshot_download ( REPO_ID , allow_patterns = [ f"adapters/ { COMBO } /*" ] ) + f"/adapters/ { COMBO } "
16
17 model = Qwen3TTSModel . from_pretrained (
18 BASE_MODEL , device_map = "cuda:0" , dtype = torch . bfloat16 ,
19 attn_implementation = "flash_attention_2" ,
20 )
21 model = PeftModel . from_pretrained ( model , ADAPTER_PATH )
22 model . set_adapter_scale ( LORA_SCALE )
23
24 ref_audio = hf_hub_download ( REPO_ID , filename = f"adapters/ { COMBO } /ref.wav" )
25 ref_text = open ( hf_hub_download ( REPO_ID , filename = f"adapters/ { COMBO } /ref.txt" ) , encoding = "utf-8" ) . read ( ) . strip ( )
26
27 text = "नमस्ते! मैं Avni बोल रही हूं Synoris Technologies से।"
28 wavs , sr = model . generate_voice_clone ( text = text , language = "Hindi" , ref_audio = ref_audio , ref_text = ref_text )
29 sf . write ( "output.wav" , wavs [ 0 ] , sr )
Training data is the
full Hindi split of
AI4Bharat Rasa . Short clips are concatenated into ~60 s samples (audio + transcripts joined), filtered for:
Apache 2.0 — same as the base model.