Routing ASR by language: Whisper and MMS for Nigerian telephony
One model is not enough for Nigerian calls. We route audio between faster-whisper and Meta MMS by language, and tune the whole stack for 8 kHz telephony.
One model is not enough
Nigerian call traffic is not one language. A single conversation can move between Nigerian-accented English, Pidgin, Hausa, Yoruba and Igbo — sometimes within a single sentence. No one open speech model is strong across all of these, especially at telephony quality. Rather than force a compromise, we route each segment to the engine that handles its language best.
The telephony band is the hard part
Carrier audio is narrowband: sampled at 8 kHz and companded with a μ-law codec. That throws away most of the high-frequency detail that broadband models rely on. Feature pipelines tuned for 16 kHz studio audio quietly lose accuracy on it, and the degradation is worst exactly where it matters — names, numbers and named entities.
So the first design decision is not which model to use, but to treat 8 kHz μ-law as the native format of the problem. We resample carefully, keep augmentation consistent with the codec, and evaluate on held-out real calls rather than clean test sets.
Two engines, routed by language
We run two automatic speech recognition engines behind a router:
faster-whisper — English and Pidgin
For Nigerian-accented English and Pidgin, we use a faster-whisper model. Whisper's training gives it broad coverage of English varieties and robustness to noise, and the faster-whisper runtime makes it practical to run at scale on CPU. Pidgin is handled here too: it is close enough to English in its written form that Whisper produces a usable draft for a human to correct.
Meta MMS — Hausa, Yoruba and Igbo
For the three major Nigerian languages, we use Meta's Massively Multilingual Speech (MMS) model, which was built explicitly to cover languages that mainstream ASR ignores, including Hausa, Yoruba and Igbo. MMS uses per-language adapters, so the router loads the right adapter for the segment's language before transcribing.
Language identification and re-queueing
The router needs to know a segment's language to pick an engine, but that is not always known in advance. Our flow is pragmatic: an initial pass produces a draft and a best guess at the language. When a human reviewer confirms a segment is actually Hausa, Yoruba or Igbo, the segment is re-queued so the correct MMS adapter transcribes it, rather than relying on the English-first draft. The human decision, not the machine guess, is what determines the final routing.
Code-switching
The hardest case is mid-utterance code-switching — a speaker flipping between, say, English and Yoruba inside one sentence. Single-language models mis-transcribe the switch points, and that is precisely where meaning is often carried. We treat this as a first-class problem rather than an edge case: annotating where switches occur so that, over time, models can learn to handle them instead of being surprised by them.
How we will measure, honestly
We evaluate against our own verified set, built from real consented calls, using word error rate (WER) as the primary measure — computed by comparing each model's original output against the human-corrected transcript for the same audio. Because we preserve both versions, this is a measurement on the distribution the product actually serves, not a proxy benchmark. We are not publishing WER figures in this paper because the verified set is still being built; we would rather report a number we trust than one that looks good.
Limitations and open problems
- Pidgin has no settled orthography, which makes both transcription and evaluation harder; reviewer guidelines matter as much as model choice.
- Adapter coverage for the local languages is good but not complete across dialects and regional accents.
- Numbers and named entities remain the most error-prone category at 8 kHz, and are the ones customers care about most.
Roadmap
The near-term work is volume and review throughput: more consented audio, more verified transcripts per language, and the first honest WER baselines against the verified set. Beyond that, fine-tuning the base engines on that verified data is what turns an off-the-shelf model into one that genuinely understands Nigerian calls.
