Whisper large-v3-turbo Kalenjin
Kalenjin automatic speech recognition. This is
openai/whisper-large-v3-turbo fine-tuned on Kalenjin speech (Kipsigis and Nandi dialects) with LoRA, then merged into the base weights. It loads like any regular Whisper checkpoint: no PEFT required.
This is v1 of this repository.
Evaluation
Scored on a frozen 198-clip held-out set with the canonical decoding recipe: 30 s chunks, stride (5, 5), beam size 5, temperature fallback.
| Model | CER | CER (orthography-normalized) |
|---|
| This model (v1) | 0.1959 | 0.1629 |
| Previous best Kalenjin Whisper fine-tune | 0.2170 | 0.1848 |
Both rows use the same evaluation harness. The improvement is significant under a paired bootstrap test (p = 0.005).
Training data
Trained on the scripted split of AfriVoices-KE (the
Anv-ke/Kalenjin dataset, CC-BY-4.0; Wanzare et al., 2026), with online speed, noise, and gain augmentation plus SpecAugment. Fine-tuning used LoRA (rank 16, learning rate 2e-4); the adapter was merged into the base model for this release.
Usage
1import torch
2from transformers import pipeline
3
4asr = pipeline(
5 "automatic-speech-recognition",
6 model="Rekody/whisper-large-v3-turbo-kalenjin",
7 torch_dtype=torch.float16,
8 device="cuda", # or "mps" on Apple silicon, or "cpu"
9)
10
11result = asr(
12 "audio.wav",
13 chunk_length_s=30,
14 stride_length_s=(5, 5),
15 generate_kwargs={"language": "sw", "task": "transcribe", "num_beams": 5},
16)
17print(result["text"])
Why language="sw"?
Whisper's tokenizer has no Kalenjin language token. This model was trained with the Swahili token (sw) standing in for Kalenjin, so pass language="sw" at inference. The output is Kalenjin text.
Limitations
- Strongest on scripted, read-style speech similar to the training data. Spontaneous conversation and deep-accent social audio remain harder.
- Evaluation scores are pending native-speaker validation, as described in the paper.
- Kipsigis and Nandi are the covered dialects; other Kalenjin dialects are not represented in the training data.
License
MIT, matching the base model. The training dataset is separately licensed (CC-BY-4.0) under its own access and consent terms.
Citation
If you use this model, please cite:
Kipkemboi, T. (2026). Open Kalenjin Automatic Speech Recognition: Adapting Parakeet-TDT to a Low-Resource Nilotic Language. Zenodo.
https://doi.org/10.5281/zenodo.21764656
For the dataset, cite Wanzare et al. (2026), AfriVoices-KE.
Code