Custom Wake Word for ESP32
Train a product-specific wake phrase, test it with the target microphone, and deploy a compact INT8 model for offline inference on ESP32-S3.
What can run on ESP32?
A desktop ONNX model is not automatically an ESP32 model. The usual embedded path is INT8 TFLite Micro, 16 kHz mono PCM and local feature extraction. ESP32-S3 with PSRAM is the best starting point; other boards need separate validation.
Online training vs self-training
Online training is faster for small teams and hardware validation. Self-training gives more control over data and hard negatives, but you own the training, export and evaluation pipeline.
Recommended workflow
- Choose a distinctive phrase and record with the final microphone.
- Train online or with a self-hosted pipeline.
- Measure recall and false triggers in noise, music and similar speech.
- Export the matched INT8 TFLite model and output head, then integrate them together in ESP-IDF.
ESP-IDF example
git clone https://github.com/voicute/onnx-wakeword.git
cd onnx-wakeword/esp32/examples/esp32s3_hmi_devkit
idf.py set-target esp32s3
idf.py buildImportant: browser accuracy does not prove hardware accuracy. Test the final board, microphone, enclosure, distance and background audio.
Train and test a custom wake wordView the open-source inference engine and demo models →
ONNX / TFLite · Android · ESP32 · Web · Python · Home Assistant