Skip to content
Back to all work

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.

Transcription & translation pipeline
  1. Audio input

    English or Kinyarwanda speech

  2. FastAPI service

    async request handling

  3. ASR model

    PyTorch + Transformers, GPU-accelerated

  4. Translation model

    cross-lingual text generation

  5. Redis cache

    repeated segments served instantly

  6. 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.

Links