Views
No views yet
openai/whisper-base for automatic speech recognition (ASR) on Lhasa Tibetan, released alongside:J. Moore, S. Li and P. Lauren, "Evaluating Tibetan ASR With Segmented Word Error Rate: Beyond Character-Level Metrics," in IEEE Access, vol. 14, pp. 101790-101805, 2026, doi: 10.1109/ACCESS.2026.3709206.
k_proj, q_proj, v_proj, out_proj) and both feed-forward layers (fc1, fc2) of every Whisper transformer block.bitsandbytes before LoRA adapters are applied.openai/whisper-base| Metric | Value |
|---|---|
| CER (micro) | 0.8086 |
| SER (micro) | 0.9717 |
| BoTok-SWER (micro) | 1.0059 |
| BERT-SWER (micro, full 1,547-utt. test set) | 0.574 |
| Gem-SWER (micro, 500-utt. subset) | 1.1821 |
| Model | Repo | CER | SER | BoTok-SWER | BERT-SWER | Gem-SWER |
|---|---|---|---|---|---|---|
| HuBERT Base | tibetan-asr-nict-tib1-hubert-base | 0.1352 | 0.3690 | 0.4477 | 0.161 | 0.9653 |
| Wav2Vec 2.0 Base | tibetan-asr-nict-tib1-wav2vec2-base | 0.0745 | 0.2152 | 0.2747 | 0.097 | 0.7447 |
| Whisper Tiny | tibetan-asr-nict-tib1-whisper-tiny | 0.1560 | 0.2351 | 0.2975 | 0.118 | 0.6759 |
| Whisper Base | tibetan-asr-nict-tib1-whisper-base | 0.1417 | 0.2083 | 0.2600 | 0.105 | 0.6314 |
| Whisper Small | tibetan-asr-nict-tib1-whisper-small | 0.1185 | 0.1692 | 0.2042 | 0.086 | 0.5337 |
[!WARNING] This is a LoRA/QLoRA fine-tuned checkpoint. In the paper's benchmark, all LoRA and QLoRA configurations showed catastrophic word-level degradation relative to full fine-tuning of the same base model, despite retaining partial character-level accuracy. This repo is published for reproducibility of that (negative) result, not as a recommended deployment artifact. If you need a usable Tibetan ASR model, use the standard fine-tuned checkpoint instead.
1from transformers import WhisperForConditionalGeneration, WhisperProcessor
2from transformers import BitsAndBytesConfig
3from peft import PeftModel
4
5bnb_config = BitsAndBytesConfig(load_in_8bit=True, llm_int8_skip_modules=None)
6base_model = WhisperForConditionalGeneration.from_pretrained(
7 "openai/whisper-base", quantization_config=bnb_config, device_map="auto"
8)
9model = PeftModel.from_pretrained(base_model, "billingsmoore/tibetan-asr-nict-tib1-whisper-base-lora-8bit")
10processor = WhisperProcessor.from_pretrained("openai/whisper-base", language="bo", task="transcribe")
11
12# generate as usual, e.g.:
13# inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
14# predicted_ids = model.generate(**inputs)
15# transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)1@ARTICLE{11592371,
2 author={Moore, Jacob and Li, Sheng and Lauren, Paula},
3 journal={IEEE Access},
4 title={Evaluating Tibetan ASR With Segmented Word Error Rate: Beyond Character-Level Metrics},
5 year={2026},
6 volume={14},
7 number={},
8 pages={101790-101805},
9 keywords={Modeling;Automatic speech recognition;Error analysis;LoRa;Measurement;Ranking (statistics);Quantization (signal);Bit error rate;Standards;Training;Tibetan;automatic speech recognition;word error rate;low-resource language},
10 doi={10.1109/ACCESS.2026.3709206}
11}
12
13@inproceedings{soky2022nict,
14 title={Nict-tib1: A public speech corpus of lhasa dialect for benchmarking tibetan language speech recognition systems},
15 author={Soky, Kak and Gong, Zhuo and Li, Sheng},
16 booktitle={2022 25th Conference of the Oriental COCOSDA International Committee for the Co-ordination and Standardisation of Speech Databases and Assessment Techniques (O-COCOSDA)},
17 pages={1--5},
18 year={2022},
19 organization={IEEE}
20}openai/whisper-base.