Buckets:
3.06 GB
12 files
Updated about 1 month ago
Ctrl+K
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| .gitattributes | 1.52 kB xet | 818ba6de | |
| README.md | 2.48 kB xet | a012e6e7 | |
| added_tokens.json | 34.6 kB xet | 7f88eadf | |
| config.json | 1.36 kB xet | 597df0fe | |
| generation_config.json | 3.65 kB xet | ea0b923e | |
| merges.txt | 494 kB xet | b3236b79 | |
| model.safetensors | 3.06 GB xet | 2522209d | |
| normalizer.json | 52.7 kB xet | 1301c121 | |
| preprocessor_config.json | 339 Bytes xet | 78385b61 | |
| special_tokens_map.json | 2.19 kB xet | 15df354f | |
| tokenizer_config.json | 283 kB xet | d4ad3b33 | |
| vocab.json | 1.04 MB xet | a3d9e9a7 |
MWirelabs/ne-asr
A multilingual automatic speech recognition (ASR) model for eight Northeast Indian languages, fine-tuned from openai/whisper-medium.
Languages
| Language | Code | Test WER |
|---|---|---|
| Khasi | kha | 16.89% |
| Garo | grt | 9.31% |
| Mizo | lus | 23.85% |
| Nagamese | nag | 49.13% |
| Kokborok | trp | 44.79% |
| Assamese | asm | 20.98% |
| Chakma | ccp | 54.25% |
| Wancho | wao | 68.37% |
| Overall | 36.06% |
Training Data
- Vaani (ARTPARK-IISc/Vaani-transcription-part): 121,960 training samples across 7 languages
- Proprietary MWire corpus: 28,524 training samples across 5 languages (Khasi, Garo, Mizo, Nagamese, Kokborok)
- Total: 150,483 training samples
Training Details
- Base model: openai/whisper-medium
- Learning rate: 1e-5 with 500 warmup steps
- Steps: 8,000
- Batch size: 16 (gradient accumulation 2, effective 32)
- Mixed precision: fp16
- Language token: welsh proxy for all languages except Assamese
Usage
from transformers import WhisperProcessor, WhisperForConditionalGeneration
import soundfile as sf
import torch
processor = WhisperProcessor.from_pretrained("MWirelabs/ne-asr")
model = WhisperForConditionalGeneration.from_pretrained("MWirelabs/ne-asr")
audio, sr = sf.read("audio.wav")
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
# Force language token (use "welsh" for all except Assamese)
forced_ids = processor.get_decoder_prompt_ids(language="welsh", task="transcribe")
with torch.no_grad():
predicted_ids = model.generate(inputs.input_features, forced_decoder_ids=forced_ids)
transcription = processor.decode(predicted_ids[0], skip_special_tokens=True)
print(transcription)
Citation
If you use this model, please cite:
@inproceedings{nyalang2026nemultispeech,
title={{NE}-MultiSpeech: A Multilingual Speech Corpus and {ASR} Benchmark for Northeast Indian Languages},
author={Nyalang, Badal and Borah, Angana},
booktitle={The 2026 Conference on Empirical Methods in Natural Language Processing},
year={2026},
url={https://openreview.net/forum?id=cOCsA88Fza}
}
License
CC-BY-4.0. Developed by MWire Labs, Shillong, Meghalaya.
- Total size
- 3.06 GB
- Files
- 12
- Last updated
- Sep 20
- Pre-warmed CDN
- US EU US EU