Low-resource Lingala and Shona ASR training, decoding, and evaluation toolkit
# Lingala and Shona ASR
Low-resource speech recognition for Lingala and Shona, with an additional
non-commercial Luganda route.
The challenge metric is `1 - (WER + CER) / 2`, evaluated on 892 utterances without
speaker or language metadata.
## System
```text
language routing
+-- Shona: w2v-BERT challenger with cross-model arbitration
+-- Lingala: w2v-BERT epoch-2 low-LR continuation + transcript KenLM
`-- Luganda: MMS-1B adapter + KenLM
```
Route sizes were 445 Lingala, 446 Shona, and one Luganda utterance.
## Repository structure
| Path | Description |
|---|---|
| `pipeline/` | Training, decoding, evaluation, and submission entry points |
| `src/` | Reusable model, CTC, language-model, metric, and training components |
| `configs/` | MMS adapter configurations for Lingala, Shona, and Luganda |
| `data/lm_nowiki/` | Transcript-only KenLM corpora and 5-gram binaries |
| `tests/` | Unit, integrity, and release-boundary tests |
## Setup
Python 3.11 is recommended.
```bash
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
```
See `REPRODUCE.md` for data preparation, training, evaluation, and
route composition.
## Development
```bash
python -m pip install -r requirements-dev.txt
ruff check .
pytest
```
CI runs lint, builds the wheel, and executes the test suite on Python 3.11.
## License
Original code is MIT licensed. Model, dataset, and language-model outputs retain their
upstream terms. See `NOTICE.md` before redistributing derived models or
outputs.