Production speech models do not underperform on this material. They fail.
Every figure on this page was produced by running open-weight Whisper (whisper.cpp, base multilingual and small.en) over the audio in our own catalogue. Nothing is edited. The artefacts are reproducible from the licensed set.
Two runs of the same model family. Two different languages. Neither transcript is usable.
Asset tx-s002 — a 45-second excerpt of spontaneous Nigerian Pidgin with English code-switching, recorded in a live acoustic environment. Verbatim output, no editing.
multilingual, auto-detect Language identified as Yoruba (p = 0.52). Transcript returns [Ambient] for 28 of 29 segments — the model registers speech as background noise and emits one line of text for the whole excerpt.
English, forced “Mac, I get you clearly. You say your husband's to be? … So the place where you get before the food you they sell.”
The Pidgin progressive marker dey is rendered “they”; the verb hear as “get”. Meaning does not survive.
On broadcast Nigerian English, three quarters of the output is invented.
Asset tx-s001 — a live radio call-in programme: host monologue, the station number read out, then sequential callers.
Eight recordings from one country. The decoder assigns four different languages, and gets all eight wrong.
Run across the whole speech catalogue, the language identifier does not degrade gracefully — it produces confident, mutually inconsistent answers, then decodes against the wrong prior.
Lagos recording Identified as Swahili (p = 0.32) — an East African language roughly three thousand kilometres from where this was recorded. Output is a filler syllable repeated for the length of the file.
in-language exchange Identified as Yoruba at p = 0.90 — high confidence — yet the transcript is a single nonsense token repeated about seventy times in one line. Confident and wrong at once.
church announcements Speech is plainly English. The identifier returns Yoruba (p = 0.54) and decodes anyway.
A model that cannot hold a phone number spoken on Nigerian radio cannot serve a Nigerian customer.
The failure modes above are not accent variance. A hallucination loop is the decoder substituting a language-model prior for acoustic evidence it cannot resolve. Returning 28 of 29 segments as ambient noise is a voice-activity failure — the model does not register the speech as speech. Wrong language identification at low confidence means the entire downstream decode is conditioned on the wrong prior.
Each of these is corrected by the same thing: spontaneous, in-language audio recorded in real acoustic conditions, with the rights documented. Not read speech, not a booth, not a scripted corpus. That is precisely what this material is.
The commercial reading is straightforward. Every consumer-facing deployment in West Africa — telephony, voice agents, IVR, dictation, captioning, moderation — inherits these failures directly. The correction is a data problem, and the data is not on the open web.
How to reproduce this.
| Models | whisper.cpp — ggml-base.bin (multilingual), ggml-small.en.bin |
| Input | catalogue masters, decoded to 16 kHz mono PCM |
| Settings | default decode; language auto-detect on base, forced en on small.en |
| Measured | line-level repetition, segment labels, language ID + confidence |
| Availability | Source audio and raw transcript artefacts are released with the sample pack. |