Instructions to use ai4bharat/bhili-asr-nemotron-600m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use ai4bharat/bhili-asr-nemotron-600m with NeMo:
import nemo.collections.asr as nemo_asr asr_model = nemo_asr.models.ASRModel.from_pretrained("ai4bharat/bhili-asr-nemotron-600m") transcriptions = asr_model.transcribe(["file.wav"]) - Notebooks
- Google Colab
- Kaggle
You need to agree to share your contact information to access this model
This repository is publicly accessible, but you have to accept the conditions to access its files and content.
This is an unreleased research model. Access is granted case by case. Please tell us who you are and what you intend to use it for.
Log in or Sign Up to review the conditions and access this model content.
Bhili ASR (Nemotron 600M)
Automatic Speech Recognition (ASR) for Bhili (भीली), specifically the Dehvali Bhili dialect, an Indo-Aryan language spoken by the Bhil community in western India.
This is a fine-tuned version of Nemotron, a ~600M parameter Conformer model with a hybrid RNNT/CTC decoder, trained on ~200 hours of Bhili read, conversational, and spontaneous speech data. This is a streaming model that supports cache-aware streaming with latency selectable at inference time.
Other Model Variants: Conformer · Canary
Setup
conda create -n bhili-asr python=3.11 -y
conda activate bhili-asr
pip install "nemo_toolkit[asr]" huggingface_hub soundfile
Verify the install:
python -c "import nemo, torch; print('nemo', nemo.__version__, '| cuda', torch.cuda.is_available())"
Download
The model is gated, so log in first.
huggingface-cli login
huggingface-cli download ai4bharat/bhili-asr-nemotron-600m \
--local-dir bhili-asr-nemotron
cd bhili-asr-nemotron
The repository contains:
indic_nemotron_bhili_sft_lr1-averaged.nemo the model
transcribe_speech_parallel.py offline inference
speech_to_text_cache_aware_streaming_infer.py streaming inference
sample_audio.wav a test clip
⚠️ target_lang=bhb is required
This is a multisoftmax checkpoint. target_lang=bhb slices the output layers to the Bhili head and must be passed on every call.
Offline inference
Create a manifest with one JSON object per line:
{"audio_filepath": "sample_audio.wav", "duration": 5.16, "text": "", "lang": "bhb"}
Then:
python transcribe_speech_parallel.py \
model=indic_nemotron_bhili_sft_lr1-averaged.nemo \
decoder_type=rnnt \
predict_ds.manifest_filepath=manifest.jsonl \
predict_ds.batch_size=64 \
trainer.devices=-1 \
target_lang=bhb \
output_path=./out
Transcripts are written to out/predictions_all.json.
⚠️ Audio must be 16 kHz mono.
Streaming inference
The encoder was trained with seven attention-context configurations simultaneously, so latency is chosen at inference — no retraining, no separate checkpoint.
Single file:
python speech_to_text_cache_aware_streaming_infer.py \
model_path=indic_nemotron_bhili_sft_lr1-averaged.nemo \
audio_file=sample_audio.wav \
decoder_type=rnnt \
target_lang=bhb \
att_context_size=[96,7]
Manifest:
python speech_to_text_cache_aware_streaming_infer.py \
model_path=indic_nemotron_bhili_sft_lr1-averaged.nemo \
dataset_manifest=manifest.jsonl \
batch_size=32 \
decoder_type=rnnt \
target_lang=bhb \
att_context_size=[96,7]
⚠️ Limitations
This model was predominantly trained on agricultural-domain data. As a result, performance on speech from domains outside agriculture may vary and may not be representative of the performance observed on agricultural-domain speech.
- Downloads last month
- 2