This is a LoRA adapter on top of
ai4bharat/indic-parler-tts.
The base model supports 18 Indian languages — this adapter teaches it Bhojpuri phoneme patterns.
1import sys
2sys.path.insert(0, "path/to/mlx-audio-train")
3
4from models.indic_parler_tts.generate import load_model, generate
5from train.lora import apply_lora, load_adapters, LoRAConfig
6import soundfile as sf
7import mlx.core as mx
8from huggingface_hub import snapshot_download
9
10# 1. Load base model
11model, tokenizers = load_model("ai4bharat/indic-parler-tts")
12
13# 2. Apply LoRA and load adapter
14adapter_dir = snapshot_download("akashicmarga/indic-parler-tts-bhojpuri-lora")
15lora_config = LoRAConfig(
16 rank=8, alpha=16.0, dropout=0.0,
17 target_modules=[
18 "decoder.layers.*.self_attn.q", "decoder.layers.*.self_attn.k",
19 "decoder.layers.*.self_attn.v", "decoder.layers.*.self_attn.out",
20 "decoder.layers.*.cross_attn.q", "decoder.layers.*.cross_attn.v",
21 "decoder.layers.*.fc1", "decoder.layers.*.fc2",
22 ],
23 model_type="indic_parler_tts",
24)
25apply_lora(model, lora_config)
26load_adapters(model, f"{adapter_dir}/adapters.safetensors")
27mx.eval(model.parameters())
28
29# 3. Generate Bhojpuri speech
30audio = generate(
31 model, tokenizers,
32 description="A female speaker delivers speech at a moderate pace. The recording is of very high quality.",
33 text="रउरा के राम राम। आज हम एही गाँव में रहीला।",
34)
35sf.write("bhojpuri.wav", audio, 44100)
1# Divya speaking Bhojpuri
2audio = generate(
3 model, tokenizers,
4 description="Divya's voice is slightly expressive and very animated. She speaks at a moderate pace.",
5 text="ई बहुत नीमन बा। हम कल जाइब।",
6)
IISc SYSPIN Corpus — Bhojpuri Female Speaker
License: CC-BY-4.0