This project aims to design and build a voice-controlled assistant using the ESP32 microcontroller, I2S microphone. The system listens for a specific wake-up word and, once detected, records the user's voice command, sends it to a local Django server, and then forwards it to Wit.ai for processing. The processed command is returned to the ESP32 for execution.there are three main components:
- Wake word detection
- Audio capture and Intent Recognition
- Intent Execution
- ESP32: Microcontroller for voice command processing and communication.
- I2S Microphone: Captures audio for wake-up word detection and command recognition.
- LED and resistor: for intent execution
- python3+: to run the server
- Django: Local server to interface between ESP32 and Wit.ai.
- Wit.ai: Online service for voice command recognition.
- Platform.io: a development environment for microcontrollers like the Arduino
The system consists of three main components:
Wake-Up Word Detection: The ESP32 continuously monitors audio input to detect a predefined wake-up word. Command Recording & Processing: Upon detecting the wake-up word, the system records the user's voice command and sends it to the Django server. Command Execution: The processed command from Wit.ai is sent back to the ESP32 for execution.
The ESP32 handles wake-up word detection and interfaces with the server via Wi-Fi. The I2S protocol is used for high-quality audio data transmission between the microphone and the ESP32. you can find the code implementation in ESP32 folder.
The Django server acts as a bridge between the ESP32 and Wit.ai, managing the voice command processing requests and returning the results to the ESP32. you can find the code implementation in Server foulder.
Wit.ai processes the audio file, recognizes the command, and returns the result to the local server.
- ESP32 development environment set up with PlatformIO or Arduino IDE.
- Django server installed and running locally.
- Wit.ai account and API token configured.
you can use vscode build and upload project to esp32: serial monitor the output:
Navigate to the server directory and run:
python manage.py runserver IPv4address:port
you can find your IPv4 address by following command
ipconfig
Ensure the ESP32 firmware is configured with the correct Wi-Fi credentials and server IP address.
The system successfully detects wake-up words, processes voice commands via Wit.ai, and executes the commands on the ESP32.
Some links related to your project come here.
Authors and their github link come here.