Open Kalenjin ASR: evaluation harness, orthographic normalizer, and Parakeet-TDT fine-tuning pipeline (paper companion)
# Kalenjin ASR
Open Kalenjin automatic speech recognition: the evaluation harness, orthographic
normalizer, and training pipeline behind the paper
**"Open Kalenjin Automatic Speech Recognition: Adapting Parakeet-TDT to a
Low-Resource Nilotic Language"** (Tony Kipkemboi, 2026).
Preprint:
## Layout
- `kalebench/` — the evaluation harness: scoring code (CER/WER, paired bootstrap,
significance), the L0/L1/L2 orthographic normalizer (`scoring/normalize_kln.py`),
the tier rescorer (`scoring/rescore_tiers.py`), the 198-clip held-out evaluation
manifest (`tasks/asr/eval_unscripted.jsonl`, gold text + filename pointers, speaker
IDs pseudonymized), and the archived evaluation artifacts every number in the paper
is read from (`paper/artifacts/`). License: CC-BY-SA-4.0 (see `kalebench/LICENSE`).
- `asr-train/` — the Parakeet-TDT fine-tuning pipeline (Modal): tokenizer rebuild,
decoder/joint reinitialization, streaming training, evaluation entrypoints.
License: MIT (see `asr-train/LICENSE`).
## Audio
No audio is redistributed here. The evaluation manifest ships gold text plus a
filename pointer; the audio remains in the gated source corpus
(`Anv-ke/Kalenjin` on the Hugging Face Hub, CC-BY-4.0) under its own access and
consent terms. Any use must cite Wanzare et al. (2026), AfriVoices-KE.
## Model checkpoints
The fine-tuned checkpoints (v2 and v3 final) are published through the Rekody
organization on the Hugging Face Hub; links are maintained here as they go live.
- Rekody/whisper-large-v3-turbo-kalenjin:
merged Whisper large-v3-turbo fine-tune (Kipsigis and Nandi). CER 0.1959 raw,
0.1629 orthography-normalized, on the frozen 198-clip held-out set.
## Reproducing the paper's numbers
See the paper's Appendix A: every reported number maps to a command over the
files in this repository, pinned by the frozen protocol in
`kalebench/paper/artifacts/asr_eval_report.json` (B=2000, seed=1234, hashed
evaluation set).
## Citing
If you use this work, cite the paper:
> Kipkemb …