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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including ai4bharat/bhili-asr-nemotron-600m