A voice command recognition system using ESP32-WROOM and INMP441 microphone for keyword spotting. This project enables real-time voice command detection with Edge Impulse machine learning.
This system captures audio using an INMP441 microphone, processes it on an ESP32-WROOM board, and detects voice commands like "ι" and "ι’" using a trained Edge Impulse model. The detected commands control an built in LED, demonstrating real-time voice-activated control.

Components:
- ESP32-WROOM Development Board
- INMP441 I2S Microphone Module
- Jumper Wires
- Breadboard
INMP441 β ESP32-WROOM
=====================
VCC β 3.3V
GND β GND
SD β GPIO 21
WS β GPIO 22
SCK β GPIO 19
-
Compile and upload the code from wroom_INMP441.ino to send the audio back to the computer.
-
Run the python script recorder.py to make the 10s
.wavaudio file -
Then clone the Audio Classification - Keyword Spotting project in Edge Impulse.
-
The project is originally make for spotting "helloworld", so just delete every that's not labeled as noise or unknown.
-
Then upload your recorded
.wavaudio file and split the audio into 1s audio -
Choose Create impulse MFCC + Classifier, then go though both with default option and save&train the model.
-
To deployment and choose Arduino library and build it and download the model.
-
Add the zip to your arduino and in the zip file, find the example name esp32_microphone, and modify the code similar to esp32-wroom-edge.ino, then you have your own custom keyword spotting machine.
Currently, you need to manually configure when the ESP32 records the 1-second audio window and runs inference; otherwise, you must time your speech moment with the serial terminal refresh.
ESP32 Voice Control with AI (No Cloud Needed!)
Creating ML Model for Offline Voice Recognition β‘οΈβ‘οΈ