TC-ResNet keyword spotting for Algerian Darja smart-home commands on ESP32 (Heltec LoRa32 V2) — Edge Impulse expert-mode training, EON-compiled INT8 deployment, 94.10% validation accuracy.
# TC-ResNet Keyword Spotting Pipeline
**Figure 1. TC-ResNet architecture — Conv1D stem with 4 temporal residual blocks and a 17-class softmax output**
Welcome to the TC-ResNet module for the **Keyword Spotting for Smart Home Control in Algerian Darja Using TinyML** project.
This folder contains the training code, Edge Impulse project configuration, and the deployment benchmark for the TC-ResNet model on the ESP32 (Heltec WiFi LoRa 32 V2) board, using the EON Compiler for compiled inference.
> **⭐ If you find this work useful, please consider giving it a star!**
## 📂 Project Structure
| Folder / File | Description |
|---|---|
| `train.py` | Edge Impulse expert-mode Keras training script |
| `EI-TC-ResNet-benchmark/` | PlatformIO firmware for on-device inference using the EON-compiled model — **fully tested** |
| `summary/` | Edge Impulse screenshots, confusion matrix, accuracy charts, and MFCC settings |
## 🧠 Model Architecture
TC-ResNet is a 1D temporal convolutional residual network, trained in Edge Impulse expert mode and deployed via the EON Compiler, which generates optimized standalone C++ inference code — bypassing runtime interpreter overhead.
| Layer | Details |
|---|---|
| Input | Reshape to (frames, 13 MFCC features) |
| Stem | Conv1D, 16 filters, BN, ReLU |
| Residual block 1 | 24 filters, kernel 9, dilation 1 |
| Residual block 2 | 24 filters, kernel 9, dilation 2 |
| Residual block 3 | 32 filters, kernel 9, dilation 4 |
| Residual block 4 | 32 filters, kernel 9, dilation 8 |
| Head | GlobalAveragePooling1D → Dropout(0.40) → Dense(17, softmax) |
## ⚙️ Edge Impulse & Training Configuration
**Figure 2. Edge Impulse impulse design — 2-second time-series audio window, MFCC block, and Classifier**
**Figure 3. MFCC feature extraction settings — 13 coefficients, 20ms frame length, 10ms stride, 32 Mel filters, FFT 512**
| Parameter | Value |
|---|---|
| Dataset | 4,800 Algerian Darja commands + 300 noise files |
| Classes | 17 (16 commands + 1 …