Logo Lanfrica

itsazzaosman/Digital-Umuganda-Kinyarwanda-ASR-3rd-Place-Solution

Domain:

natural language processing

Record type:

papermodel
Creator:
its
Host:
# Kinyarwanda ASR: 3rd Place Solution πŸ† This repository contains the code and methodology for the 3rd place winning solution in the **Digital Umuganda Kinyarwanda ASR Challenge** Kaggle competition. The primary goal was to develop a high-accuracy Automatic Speech Recognition (ASR) model for the Kinyarwanda language using 1,000 hours of transcribed speech. --- ## πŸš€ Methodology and Experiments To achieve the best possible performance, we explored several state-of-the-art ASR architectures. Our approach was highly experimental, involving training and fine-tuning multiple models to compare their effectiveness on the Kinyarwanda dataset. ### Models Explored - **Whisper**: We fine-tuned various sizes of OpenAI's Whisper model, which provides a strong baseline for many languages (using the default tokenizer and a customized tokenizer)or Kinyarwanda). - **Conformer**: We experimented with Conformer-based architectures, known for their excellent ability to capture both local and global features in audio. - **Parakeet (Winning Model)**: After extensive evaluation, the **NVIDIA Parakeet (CTM)** model family delivered the CombinedError = 0.4 Γ— WER + 0.6 Γ— CER Score = (1 – CombinedError) Γ— 100, and became the foundation of our final submission. The code and notebooks related to this model can be found in the `model_Parakeet/` directory. ### Language Model Integration (Attempted) We also attempted to further improve the model's accuracy by incorporating a language model (LM) for post-processing. - **KenLM & Beam Search**: We trained a 5-gram KenLM model on a custom Kinyarwanda text corpus. The goal was to use this LM with a beam search decoder to refine the model's raw transcriptions and correct common grammatical errors. - **Challenges**: Unfortunately, we encountered significant technical challenges and persistent errors during the integration phase, particularly with the decoding libraries (`pyctcdecode`). Due to these unresolved issues, we were unable to successfully in …