CoolFace
Modelpublic

sumanpaudel1997/nepali-asr-conformer-hi

sourceHugging Facecc-by-nc-4.0updated 4mo agoView on Hugging Face
0likes2downloads
Model Card

Conformer-CTC Hindi → Nepali

Fine-tuned multilingual pre-trained ASR for Nepali — part of the controlled six-model Nepali ASR Benchmark released alongside the paper Comparative Analysis of Multilingual Pre-trained Models for Nepali Automatic Speech Recognition.

Model summary

FieldValue
Base model`nvidia/stt_hi_conformer_ctc_medium`
Architecture familyHybrid Conformer-CTC
Parameters30.5M
LanguageNepali (ne), Devanagari script
Fine-tuning corpusOpenSLR SLR54 (~165 hr, speaker-disjoint 80/10/10 split)
Training duration3.2 h on a single NVIDIA L4 (24 GB VRAM)
Best epoch10

Benchmark results

Word and character error rate on the three independent test sets, plus inference Real-Time Factor (RTF) on a single NVIDIA L4 with batch size 1 (lower RTF = faster).

Test setWER (%)CER (%)RTF
OpenSLR SLR54 (in-domain)26.286.610.0020
FLEURS (ne_np)41.0513.840.0019
Common Voice (ne-NP)58.4917.060.0017

WER and CER are computed with `jiwer` after NFC normalisation of both reference and hypothesis. Best in-domain performance during training was WER 24.68% / CER 5.82%.

Note on Common Voice (Nepali). As of 2025, Mozilla distributes Common Voice via the Mozilla Data Collective (MDC) instead of the Hugging Face Hub. The benchmark numbers below were produced on the ne-NP test split of CV 25.0 downloaded from MDC.

Usage

python
# pip install "nemo_toolkit[asr]" huggingface_hub
# Conformer-Hi ships as a NeMo single-file checkpoint (`.nemo`), not a Transformers
# config — so use NVIDIA NeMo, not the Transformers library.
import nemo.collections.asr as nemo_asr
from huggingface_hub import hf_hub_download

REPO = "sumanpaudel1997/nepali-asr-conformer-hi"
ckpt_path = hf_hub_download(repo_id=REPO, filename="best_model.nemo")

asr_model = nemo_asr.models.ASRModel.restore_from(ckpt_path)
asr_model.eval()

# 16 kHz mono WAV. NeMo loads the audio internally.
transcriptions = asr_model.transcribe(["your_clip.wav"])
print(transcriptions[0])
# Example output (depends on clip): 'नेपालको संविधानले सबै नागरिकलाई समान अधिकार प्रदान गर्दछ।'

Training protocol (summary)

  • —Audio resampled to 16 kHz mono, transcriptions Unicode-normalised to NFC.
  • —Utterances shorter than 0.5 s or longer than 30 s removed.
  • —Family-matched optimiser/scheduler: AdamW, family-specific learning rate, warmup, and decay.
  • —SpecAugment applied to every model.
  • —Early stopping when validation WER stagnated for three consecutive evaluation rounds.

Full hyperparameters and the controlled comparison across all six models are in the paper (see Citation).

Limitations

  • —Fine-tuned on read speech only. Performance on spontaneous conversational speech, code-switched (Nepali–English / Hindi) speech, and dialectal variation is out of scope for this release.
  • —No external language model is used during decoding — reported numbers reflect acoustic-model performance only. Shallow fusion / n-best rescoring with a Nepali LM is expected to deliver additional gains, especially on noisy audio.
  • —Crowd-sourced Common Voice (~48 % WER for the best model in the suite) remains the largest open problem; this checkpoint is no exception.

License

Released under CC-BY-NC-4.0 — research/non-commercial use, attribution required. The licences of the source base model (linked above) and of the fine-tuning datasets (OpenSLR SLR54, FLEURS, Common Voice) apply on top of this restriction. For commercial use, contact the authors.

Acknowledgements

M.Sc. (Data Science) thesis carried out at the School of Mathematical Sciences, Institute of Science and Technology, Tribhuvan University, Kathmandu, Nepal, under the supervision of Asst. Prof. Sarbin Sayami (Central Department of Computer Science and Information Technology). Thanks to the open-source teams behind Wav2Vec 2.0, Whisper, MMS, IndicWav2Vec, and NVIDIA NeMo for the publicly released base checkpoints, and to OpenSLR, Google FLEURS, and Mozilla Common Voice for the source corpora.