[{"data":1,"prerenderedAt":48},["ShallowReactive",2],{"research-reports-merged":3},[4,14,24,33,40],{"slug":5,"kind":6,"title":7,"abstract":8,"byline":9,"read":10,"cover":11,"image":12,"body":13},"speech-models-progress-2026-11","Dataset","Speech models for Nigerian languages: progress and what the data tells us","We assembled 37.44 hours of speech across Hausa, Yoruba and Igbo, measured baselines, and ran fine-tuning experiments. The finding: public data plateaus — real consented telephony is what moves accuracy.","Telroi Research · November 2026","2 min read","d","https:\u002F\u002Fapp.telroi.ai\u002Fapi\u002Fpublic\u002Fresearch-cover?key=research-covers%2F4090d184-0589-4dcb-bd81-d50024ee76e5-image-ng.jpeg","\u003Cp>This is a progress report on Telroi&rsquo;s speech-AI research &mdash; the datasets we have assembled, the baselines we have measured, and what our experiments tell us about building accurate speech recognition for Nigerian languages.\u003C\u002Fp>\u003Ch2>The bootstrap corpus\u003C\u002Fh2>\u003Cp>We assembled 37.44 hours of license-clean speech across 3 language tracks as a public-data starting point:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Hausa\u003C\u002Fstrong> &mdash; 13.62 h, 3259 clips (fleurs, CC-BY-4.0)\u003C\u002Fli>\u003Cli>\u003Cstrong>Igbo\u003C\u002Fstrong> &mdash; 13.79 h, 2839 clips (fleurs, CC-BY-4.0)\u003C\u002Fli>\u003Cli>\u003Cstrong>Yoruba\u003C\u002Fstrong> &mdash; 10.03 h, 2339 clips (fleurs, CC-BY-4.0)\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Baselines: off-the-shelf accuracy\u003C\u002Fh2>\u003Cp>Word error rate (WER) of the off-the-shelf Meta MMS model on held-out read speech &mdash; the &ldquo;before&rdquo; we measure against:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Hausa\u003C\u002Fstrong> &mdash; 26.2% WER\u003C\u002Fli>\u003Cli>\u003Cstrong>Yoruba\u003C\u002Fstrong> &mdash; 55.9% WER\u003C\u002Fli>\u003Cli>\u003Cstrong>Igbo\u003C\u002Fstrong> &mdash; 44.6% WER\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Experiment 1 &mdash; fine-tuning on public read speech\u003C\u002Fh2>\u003Cp>Fine-tuning on the clean public corpus produced almost no improvement. Results:\u003C\u002Fp>\u003Cul>\u003Cli>Hausa: 26.2% &rarr; 26.3%\u003C\u002Fli>\u003Cli>Yoruba: 55.9% &rarr; 54.9%\u003C\u002Fli>\u003Cli>Igbo: 44.6% &rarr; 43.6%\u003C\u002Fli>\u003C\u002Ful>\u003Cp>The reason is instructive: the base model was already trained partly on this public data, so re-training on it is largely circular.\u003C\u002Fp>\u003Ch2>Experiment 2 &mdash; adapting to telephony conditions\u003C\u002Fh2>\u003Cp>We degraded the same speech to phone-call conditions (narrowband 8&nbsp;kHz, codec quantization, noise) &mdash; audio the model has not seen &mdash; and adapted to it. Results:\u003C\u002Fp>\u003Cul>\u003Cli>Hausa: 33.2% &rarr; 32.7% (telephony)\u003C\u002Fli>\u003Cli>Yoruba: 61% &rarr; 59.9% (telephony)\u003C\u002Fli>\u003Cli>Igbo: 60.3% &rarr; 58.9% (telephony)\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Telephony conditions sharply degrade the off-the-shelf model &mdash; most of all for Igbo &mdash; confirming that real calls are far harder than clean recordings. Adapting on \u003Cem>synthetic\u003C\u002Fem> telephony recovered only a little, because the acoustic front-end that the degradation affects is not reached by lightweight adaptation, and synthetic audio is not real audio.\u003C\u002Fp>\u003Ch2>What this means\u003C\u002Fh2>\u003Cp>Across both experiments the conclusion is consistent and important: \u003Cstrong>public data &mdash; clean or degraded &mdash; cannot by itself produce an accurate Nigerian-telephony speech model.\u003C\u002Fstrong> The accuracy that matters comes only from real, consented telephony in the target languages. That is precisely the data Telroi is built to collect, with consent and de-identification enforced at the data layer, and it is the foundation the next phase of this work builds on.\u003C\u002Fp>",{"slug":15,"kind":16,"title":17,"abstract":18,"byline":19,"read":20,"cover":21,"image":22,"body":23},"real-voice-not-synthetic","Perspective","Real voice, not synthetic","Why we build speech models from real, consented conversations rather than synthetic or scraped data — and why that matters most in growing markets.","Telroi Research · Oct 2026","5 min read","b","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1536148935331-408321065b18?w=800&q=60&auto=format&fit=crop","\u003Ch3>The shortcut everyone takes\u003C\u002Fh3>\u003Cp>When a language is underserved by speech technology, the tempting shortcut is to manufacture data: synthesise speech, scrape whatever recordings exist online, or translate text corpora and hope the acoustics follow. It is fast, it is cheap, and it produces impressive-looking dataset sizes.\u003C\u002Fp>\u003Cp>We don't do this, and this is why.\u003C\u002Fp>\u003Ch3>Synthetic audio learns the wrong distribution\u003C\u002Fh3>\u003Cp>A model trained on synthetic or clean web audio learns the statistics of that audio — studio acoustics, careful pronunciation, broadband frequencies. Real customers call from a market stall, a moving car, a noisy office, over a compressed 8 kHz line, code-switching between languages, interrupting and being interrupted. The gap between the two distributions is not a detail you can fine-tune away cheaply; it is the whole problem. A model that has never heard the real distribution will fail on it in production, no matter how large its synthetic training set was.\u003C\u002Fp>\u003Ch3>Consent is a first principle, not a compliance afterthought\u003C\u002Fh3>\u003Cp>Scraped data carries a second problem beyond quality: no one consented to it. We take the opposite stance. Every hour we train on comes from a real conversation on an account that explicitly opted in, and every segment is de-identified before anyone sees it. Those rules are enforced in our data layer, not just promised in a policy — a segment cannot become training-ready unless it is both consented and redacted.\u003C\u002Fp>\u003Cp>This is more work. It is also the only version of this that we think is defensible, and the only version that a serious partner — a bank, a telco, an enterprise — can actually build on.\u003C\u002Fp>\u003Ch3>The data is the moat\u003C\u002Fh3>\u003Cp>Model architectures are shared; the open engines we build on are available to everyone. What is not available to everyone is a large, consented, human-verified corpus of real Nigerian telephony speech. That asset is slow to build and cannot be shortcut, which is exactly what makes it durable. It is reusable across every model we train, and it is valuable in its own right.\u003C\u002Fp>\u003Ch3>We start where the need is greatest\u003C\u002Fh3>\u003Cp>We begin with Hausa, Yoruba, Igbo and Pidgin in Nigeria — languages spoken by hundreds of millions of people and served poorly, if at all, by mainstream speech technology. The same approach extends to other growing markets across Africa, the GCC, Asia and Latin America, where the pattern is identical: real voices, real networks, real need, and almost no training data built for them.\u003C\u002Fp>\u003Ch3>An open approach\u003C\u002Fh3>\u003Cp>We publish our methods, our data practices and our progress as we go — including what does not work yet. Growing markets have been an afterthought in speech AI for too long. Building the voice layer they deserve starts with being honest about how it is built.\u003C\u002Fp>",{"slug":25,"kind":26,"title":27,"abstract":28,"byline":19,"read":29,"cover":30,"image":31,"body":32},"routing-asr-whisper-mms","Method","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.","8 min read","a","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1600880292089-90a7e086ee0c?w=800&q=60&auto=format&fit=crop","\u003Ch3>One model is not enough\u003C\u002Fh3>\u003Cp>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.\u003C\u002Fp>\u003Ch3>The telephony band is the hard part\u003C\u002Fh3>\u003Cp>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.\u003C\u002Fp>\u003Cp>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.\u003C\u002Fp>\u003Ch3>Two engines, routed by language\u003C\u002Fh3>\u003Cp>We run two automatic speech recognition engines behind a router:\u003C\u002Fp>\u003Ch4>faster-whisper — English and Pidgin\u003C\u002Fh4>\u003Cp>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.\u003C\u002Fp>\u003Ch4>Meta MMS — Hausa, Yoruba and Igbo\u003C\u002Fh4>\u003Cp>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.\u003C\u002Fp>\u003Ch3>Language identification and re-queueing\u003C\u002Fh3>\u003Cp>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.\u003C\u002Fp>\u003Ch3>Code-switching\u003C\u002Fh3>\u003Cp>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.\u003C\u002Fp>\u003Ch3>How we will measure, honestly\u003C\u002Fh3>\u003Cp>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.\u003C\u002Fp>\u003Ch3>Limitations and open problems\u003C\u002Fh3>\u003Cul>\u003Cli>\u003Cstrong>Pidgin has no settled orthography\u003C\u002Fstrong>, which makes both transcription and evaluation harder; reviewer guidelines matter as much as model choice.\u003C\u002Fli>\u003Cli>\u003Cstrong>Adapter coverage\u003C\u002Fstrong> for the local languages is good but not complete across dialects and regional accents.\u003C\u002Fli>\u003Cli>\u003Cstrong>Numbers and named entities\u003C\u002Fstrong> remain the most error-prone category at 8 kHz, and are the ones customers care about most.\u003C\u002Fli>\u003C\u002Ful>\u003Ch3>Roadmap\u003C\u002Fh3>\u003Cp>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.\u003C\u002Fp>",{"slug":34,"kind":6,"title":35,"abstract":36,"byline":19,"read":37,"cover":11,"image":38,"body":39},"consent-first-telephony-pipeline","A consent-first pipeline for training on real telephony speech","How we turn real, consented phone calls into training data — with opt-in consent and de-identification enforced before any audio can ever be used.","9 min read","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1573497620053-ea5300f94f21?w=800&q=60&auto=format&fit=crop","\u003Ch3>Why real telephony audio\u003C\u002Fh3>\u003Cp>Most speech models are trained on clean, broadband recordings: studio microphones, read speech, quiet rooms. Real business calls look nothing like that. They arrive at 8 kHz over the phone network, compressed by the carrier's codec, full of background noise, interruptions and natural, unscripted speech. A model that has only ever heard clean audio degrades sharply the moment it meets a real call.\u003C\u002Fp>\u003Cp>Our position is that the only data worth training on for this problem is the data the product actually runs on: real, consented conversations carried over real networks. This paper describes the pipeline that turns those calls into training data responsibly — the consent model, the de-identification, the enforcement that makes both non-optional, and the human review that produces our verified set.\u003C\u002Fp>\u003Ch3>Consent comes first, per client\u003C\u002Fh3>\u003Cp>Nothing enters the pipeline by default. A customer's call audio only becomes eligible for training after an explicit, recorded opt-in at the account level. Until that flag is set, their recordings are used solely to deliver the service they pay for and never flow into research.\u003C\u002Fp>\u003Cp>We treat consent as a property of the data, not a one-time checkbox buried in a contract. It travels with every segment, and it is checked again at the moment of use — not just at the moment of collection. Consent can be withdrawn, and withdrawal propagates: segments tied to a withdrawn account stop being usable for training.\u003C\u002Fp>\u003Ch3>De-identification before anything else\u003C\u002Fh3>\u003Cp>Phone calls contain personal data — names, numbers, addresses, and, in our world especially, one-time passwords and verification codes. Before a transcript is ever stored or shown to a human reviewer, it passes through a redaction stage that strips:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Contact identifiers\u003C\u002Fstrong> — email addresses and phone numbers in any common format.\u003C\u002Fli>\u003Cli>\u003Cstrong>Numeric secrets\u003C\u002Fstrong> — any short digit sequence that could be an OTP, PIN or verification code.\u003C\u002Fli>\u003Cli>\u003Cstrong>Free-form personal data\u003C\u002Fstrong> surfaced during transcription.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Redaction is deliberately conservative. We would rather over-redact and lose a little linguistic signal than let a single credential or personal detail persist in a training set. A segment is only considered de-identified once this stage has run and been recorded against it.\u003C\u002Fp>\u003Ch3>Enforcing consent and redaction in the data layer\u003C\u002Fh3>\u003Cp>Policies that live only in application code get bypassed — by a bug, a migration, a well-meaning script. So we moved the rule into the database itself.\u003C\u002Fp>\u003Cp>Each speech segment carries a derived \u003Cstrong>trainable\u003C\u002Fstrong> property. It is not something a person sets; it is computed from the segment's own state, and it is true only when the segment is both consented and de-identified. Any query that assembles a training set reads from this property rather than re-deriving the rule, so there is exactly one definition of \"safe to train on,\" and it lives in one place.\u003C\u002Fp>\u003Cp>We go one step further for the verified set. Promoting a label into the gold training set is blocked at the database level for any segment that is not trainable: the write is rejected outright. It is not possible, even by mistake, to mark un-consented or un-redacted audio as training-ready. The guarantee does not depend on anyone remembering to check.\u003C\u002Fp>\u003Ch3>Human verification\u003C\u002Fh3>\u003Cp>Machine transcripts are a starting point, not ground truth. Every candidate transcript is reviewed by a person who speaks the language, in a dedicated review workbench. The reviewer listens to the audio, corrects the transcript, confirms the language, and either promotes it to the verified set or rejects it.\u003C\u002Fp>\u003Cp>The model's original output is preserved alongside the human-corrected version. That pairing is what later lets us measure, honestly, how far the current model is from human quality on our own data — rather than trusting a benchmark drawn from someone else's distribution.\u003C\u002Fp>\u003Ch3>The life of a segment\u003C\u002Fh3>\u003Cp>End to end, a segment moves through clearly separated stages:\u003C\u002Fp>\u003Cp>1. \u003Cstrong>Captured\u003C\u002Fstrong> from a real call on a consented account.\u003C\u002Fp>\u003Cp>2. \u003Cstrong>Transcribed\u003C\u002Fstrong> by an automatic model to produce a draft.\u003C\u002Fp>\u003Cp>3. \u003Cstrong>Redacted\u003C\u002Fstrong> — PII and secrets removed before storage or display.\u003C\u002Fp>\u003Cp>4. \u003Cstrong>Reviewed\u003C\u002Fstrong> by a native speaker, who corrects and confirms it.\u003C\u002Fp>\u003Cp>5. \u003Cstrong>Promoted\u003C\u002Fstrong> to the verified set — only if it is consented and redacted.\u003C\u002Fp>\u003Cp>6. \u003Cstrong>Versioned\u003C\u002Fstrong> into a dataset snapshot that models train against.\u003C\u002Fp>\u003Cp>Each stage is auditable. We keep a record of what happened to a segment and when, so the provenance of every item in a training set can be traced back to a consented source.\u003C\u002Fp>\u003Ch3>Governance\u003C\u002Fh3>\u003Cp>The pipeline is designed to align with Nigeria's data-protection framework (the NDPR) and the same principles that underlie comparable regimes elsewhere: lawful basis through explicit consent, data minimisation through aggressive redaction, purpose limitation, and the ability to honour withdrawal. Because consent and de-identification are enforced in the data layer rather than promised in a policy document, compliance is a property we can demonstrate, not just assert.\u003C\u002Fp>\u003Ch3>What comes next\u003C\u002Fh3>\u003Cp>This paper describes the collection and verification system. Future work covers how we version datasets for reproducible training, how we measure model quality against the verified set, and how partners can build on the resulting speech data through an API. We will publish those as the work matures — with results when we have them, and not before.\u003C\u002Fp>",{"slug":41,"kind":16,"title":42,"abstract":43,"byline":44,"read":45,"cover":11,"image":46,"body":47},"bootstrapping-low-resource-speech","Bootstrapping speech for low-resource markets: public corpora, real calls","Public speech datasets can warm-start a model, but most are read, scripted audio. We use them to bootstrap — and train on real, consented calls for the accuracy that matters.","Telroi Research · Nov 2026","7 min read","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1511379938547-c1f69419868d?w=800&q=60&auto=format&fit=crop","\u003Ch3>The cold-start problem\u003C\u002Fh3>\u003Cp>Every new language a speech model learns starts cold. For English there are hundreds of thousands of hours of transcribed audio in the open; for Nigerian Pidgin, Hausa, Yoruba or Igbo there is a small fraction of that, and almost none of it drawn from real phone calls. A model trained from scratch on what little exists is fragile, and collecting enough of your own labelled audio to replace it takes months. The practical question is not whether to use public data, but how to use it without inheriting its blind spots.\u003C\u002Fp>\u003Ch3>What the public corpora actually offer\u003C\u002Fh3>\u003Cp>A handful of datasets are worth knowing for West African speech:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>NaijaVoices\u003C\u002Fstrong> — roughly 1,800 hours across Hausa, Yoruba and Igbo, from thousands of speakers. The largest local-language resource by far.\u003C\u002Fli>\u003Cli>\u003Cstrong>Mozilla Common Voice\u003C\u002Fstrong> — community-recorded speech including Nigerian Pidgin, released into the public domain.\u003C\u002Fli>\u003Cli>\u003Cstrong>FLEURS\u003C\u002Fstrong> — a smaller multilingual read-speech set that covers Hausa, Yoruba and Igbo with clean, consistent recordings.\u003C\u002Fli>\u003Cli>\u003Cstrong>AfriSpeech \u002F AfriVox\u003C\u002Fstrong> — pan-African accented English, useful for the Nigerian-English track and as an evaluation benchmark.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Together these are enough to give a model a first, rough sense of each language's sounds and spelling — a warm start instead of a cold one.\u003C\u002Fp>\u003Ch3>The two catches nobody mentions\u003C\u002Fh3>\u003Cp>The first is licensing. The largest set, NaijaVoices, is released under a non-commercial licence. That makes it excellent for research and for measuring how good a model is, but it cannot simply be poured into a model that ships inside a commercial product. For anything customer-facing we lean on the permissively licensed sets — Common Voice, FLEURS, AfriSpeech — and treat the non-commercial data as a benchmark, not a training set, unless a commercial licence is agreed.\u003C\u002Fp>\u003Cp>The second is the kind of speech. Almost all public audio is read speech: someone reciting a prompt in a quiet room into a decent microphone. Real business calls are the opposite — narrowband 8 kHz audio over the phone network, compressed by the carrier, full of background noise, interruptions, and speakers switching between languages mid-sentence. A model that has only heard read speech is confident and wrong the first time it meets a real call.\u003C\u002Fp>\u003Ch3>How we use them\u003C\u002Fh3>\u003Cp>So we treat public corpora as a bootstrap, not a destination. The license-clean sets pretrain the base model — they teach it the shape of each language cheaply, before it has heard a single real call. Then the model is fine-tuned on real, consented telephony collected through our own pipeline, which is where the accuracy customers actually feel comes from. Public data does one valuable thing: it shrinks how much of our own labelled audio we need before the model is useful. It does not remove the need for that audio.\u003C\u002Fp>\u003Ch3>Why the real calls still matter most\u003C\u002Fh3>\u003Cp>The reason is simple: a model is only reliable on the kind of audio it was trained on. The data the product runs on — real conversations, on real networks, in the languages customers actually speak — is the data worth owning. That is why our collection is built around consent and de-identification from the first step rather than scraped from the open web, and why the verified set is reviewed by people who speak the language. Public corpora get a model to the starting line. Real, consented calls are what let it finish the race.\u003C\u002Fp>\u003Ch3>Where this goes\u003C\u002Fh3>\u003Cp>The near-term work is specific: pretrain each language track on the permissively licensed public data, stand up honest evaluation against held-out real calls, and grow the verified telephony set language by language. The measure of success is not how much public data we can absorb, but how little of our own we need before a model understands a real Nigerian call.\u003C\u002Fp>",1793604253514]