Voice-Assisted | Smart-Home | TinyML | Low-Resource
# TinyML Keyword Spotting for Algerian Darja Smart Home Control
Welcome to the main repository for my project: **Keyword Spotting for Smart Home Control in Algerian Darja Using TinyML**.
This project implements an end-to-end, offline voice-controlled smart home system using a custom BCResNet neural network running on ESP32 (Heltec WiFi LoRa V2) board.
## 📂 Project Structure
This repository contains four main components of the system, all working together:
### 1. Model Training & Pipeline
**Folder:** `BC-ResNet Train code and live mode summary/`
Contains the dataset preparation, MFCC feature extraction, and the BCResNet model training pipeline using Edge Impulse expert mode. The model is trained to recognize 16 distinct Darja smart-home commands plus background noise.
### 2. Recognition by TinyML
**Folder:** `BCResNet-benchmark/`
The PlatformIO firmware for the main Heltec WiFi LoRa 32 V2 board. This board captures live audio via an I2S INMP441 microphone, and transmits accepted commands wirelessly via ESP-NOW.
### 3. Actuator node
**Folder:** `BC-ResNet-esp-now-oled/`
The PlatformIO firmware for the receiver node. It listens for valid ESP-NOW command packets, displays the intended action on an OLED screen, triggers local GPIO for the smart home action, and sends an acknowledgment back to the sender.
### 4. Algerian Darja Dataset
**Folder:** `Al-darjaDataset/`
Contains the custom speech dataset collected using Reco for training the keyword spotting model. It includes 4,800 command audio files across 16 classes from 100 speakers, plus a dedicated noise class, formatted as 16 kHz mono WAV files.
> **⭐ If you find this dataset or project useful, please consider giving it a star!**
>
> **📬 Dataset Access:** The Al-Darja KWS dataset is not publicly distributed via a direct download link. To request access, please **contact the author** directly.
## 🚀 System Architecture
1. **User speaks** an Algerian Darja command.
2. **Recognition with TinyML** detects spee …