Machine Learning · Speech · Open Source
Multilingual ASR
Kinyarwanda–English transcription and translation
- Role
- Built the models, inference service, and optimizations
- Timeline
- Jan 2025 — May 2025
- Stack
- PyTorchHugging FaceFastAPIRedisPython
Millions of Kinyarwanda speakers are underserved by mainstream speech technology. This project—built during my MSc at Carnegie Mellon University Africa—is a transcription and translation system between English and Kinyarwanda, designed to run fast enough for practical use.
Problem & context
Speech models are trained overwhelmingly on high-resource languages. For a language like Kinyarwanda, off-the-shelf systems are either unavailable or inaccurate—which locks its speakers out of voice interfaces, transcription tooling, and translated media.
Technical approach
The system pairs speech recognition with translation in a single pipeline, built on PyTorch and Hugging Face Transformers and deployed as a FastAPI service.
- Transformer-based ASR achieving 82–90% transcription accuracy
- GPU-accelerated inference for near-real-time performance
- Redis caching to avoid recomputing repeated segments
- Async processing pipeline sustaining 3× real-time throughput
Decisions & tradeoffs
Accuracy and latency pull against each other in speech systems. The caching and async design let the service keep throughput high without degrading model quality—an optimization problem that mattered more than squeezing out marginal accuracy points, because a system too slow to use helps no one.
Outcome & impact
A working, open-source system that makes English–Kinyarwanda speech accessible at practical speed—an infrastructure piece for underserved linguistic communities, and a template for extending speech tooling to other low-resource languages.
Audio input
English or Kinyarwanda speech
FastAPI service
async request handling
ASR model
PyTorch + Transformers, GPU-accelerated
Translation model
cross-lingual text generation
Redis cache
repeated segments served instantly
Transcript + translation
3× real-time throughput
Lessons learned
- Low-resource ML is a systems problem as much as a modeling problem.
- Caching is the cheapest accelerator you will ever deploy.
- Language access is impact you can measure in who gets to participate.