SagalNet is a robust end-to-end Machine Learning pipeline for converting spoken Afaan Oromoo digits into text. Features a custom DeeperCNN architecture, SpecAugment for noise resilience, MLflow experiment tracking, and an interactive Streamlit UI for live inference.
# ποΈ SagalNet: Afaan Oromoo Spoken Digit Recognition
**Real-time Spoken Digit Recognition using Deep Convolutional Neural Networks (CNNs).**
π Read the Docs | π Quick Start | π Experiments
---
## π Overview
**SagalNet** implements a robust machine learning pipeline to recognize spoken digits (0-9) in **Afaan Oromoo**. It leverages modern deep learning techniques, including **Mel-Spectrograms** for feature extraction and a custom **DeeperCNN** architecture for high-accuracy classification.
We focus on a complete **MLOps lifecycle**:
- **Modular Codebase**: Clean separation of Data (`src/data`), Modeling (`src/models`), and UI.
- **Experiment Tracking**: All runs are logged with **MLflow** (Metrics, Parameters, Models).
- **Interactive UI**: A **Streamlit** app for real-time testing via microphone or file upload.
## β¨ Key Features
- **ποΈ Live Recording**: Test the model instantly using your microphone.
- **π§ Advanced Architecture**: Custom `DeeperCNN` with BatchNorm, Dropout, and Adaptive Pooling.
- **π SpecAugment**: Implements Time and Frequency masking for robust training.
- **π Visualizations**: Real-time Mel-Spectrograms and Prediction Confidence bars.
- **π οΈ Reproducible**: Full environment setup with `requirements.txt` and `venv`.
## π Quick Start
### 1. Clone & Setup
```bash
git clone
github.com
cd SagalNet
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 2. Run the App
Launch the interactive UI to test the model:
```bash
streamlit run app.py
```
*Open
localhost in your browser.*
### 3. Train the Model
Train a new model from scratch:
```bash
# Basic Training
python run.py train --epochs 30 --model_type deeper
# View Experiments
mlflow ui
```
## ποΈ Architecture
The system converts raw audio into visual representations (Mel-Spectrograms) which are then processed by a Deep CNN.
```mermaid
graph LR
A["ποΈ Audio Input"] --> B["π Waveform"]
B β¦