This repository contains the official, reproducible source code for benchmarking acoustic models on low-resource tonal African languages. It processes Mel-spectrogram features through a combined convolutional and bidirectional LSTM architecture, optimized for edge deployment without manual phonetic alignment.
# Hybrid CNN-LSTM Framework for Yoruba Automatic Speech Recognition
Official implementation accompanying the research paper: **"Benchmarking Hybrid CNN-LSTM Frameworks for Yoruba Automatic Speech Recognition"**.
## Abstract
This repository provides the complete, reproducible PyTorch source code for training and evaluating an end-to-end hybrid Convolutional Neural Network and Long Short-Term Memory (CNN-LSTM) framework on low-resource tonal African speech data using Connectionist Temporal Classification (CTC) loss. It addresses critical structural and morphological challenges inherent to low-resource tonal languages without requiring heavy pre-trained self-supervised teacher models.
## Repository Structure
* `model.py`: Defines the dual-stride convolutional and bidirectional LSTM architecture.
* `dataset.py`: Handles streaming dataset retrieval from Hugging Face and on-the-fly Mel-spectrogram extraction.
* `train.py`: Manages the training loop, gradient scaling, and CTC loss alignment.
* `benchmark_hardware.py`: Quantifies model parameters, memory footprint, and edge inference latency.
* `evaluate_tones.py`: Implements the targeted tonal error analysis.
* `augment_ablation.py`: Executes the feature-level perturbation and SpecAugment ablation study.
* `qualitative_analysis.py`: Provides alignment comparisons for qualitative transcription evaluation.
## Research & Novelty Implementation
This repository contains the full implementation for the experiments detailed in Section 4 (*Results and Findings*) of the manuscript:
| LaTeX Section | Purpose | Associated Script |
| :--- | :--- | :--- |
| **4.4 Hardware Efficiency** | Measures edge deployment suitability | `benchmark_hardware.py` |
| **4.5 Tonal Error Analysis** | Evaluates recognition of Yorùbá diacritics | `evaluate_tones.py` |
| **4.6 Ablation Study** | Tests robustness of feature masking | `augment_ablation.py` |
| **4.7 Qualitative Analysis** | Logs alignment and decoding accuracy | `qualitative_analysis.py …