license: apache-2.0
language:
- en
library_name: openwakeword
tags:
- wake-word
- keyword-spotting
- openwakeword
- onnx
- tflite
- voice-assistant
- on-device
- adi
pipeline_tag: audio-classification
hey-adi-wakeword
Custom-trained "Hey ADI" wake word model for the OpenWakeWord framework. Built to trigger the ADI Genesis offline voice assistant pipeline at theLAB.
Wake phrase: "hey addie"
π Build writeup: How this wake word was trained
π₯ Demo video:
Files
| File | Format | Size | Runtime |
|---|---|---|---|
hey_addie.onnx |
ONNX | 206 kB | onnxruntime |
hey_addie.tflite |
LiteRT (TFLite) | 207 kB | tflite-runtime |
Both files are functionally equivalent β pick the runtime that fits your deployment target. ONNX for desktop/server, TFLite for edge/embedded.
Pipeline
This wake word is the front door to a fully offline voice stack:
OpenWakeWord ("hey addie") β Parakeet STT β Ollama (advanced-data-intelligence:e4b) β OmniVoice TTS (adi_ref voice)
No cloud dependencies β wake detection through response generation runs entirely on local hardware.
Usage
ONNX (onnxruntime)
from openwakeword.model import Model
model = Model(
wakeword_models=["hey_addie.onnx"],
inference_framework="onnx",
)
# frame = 16kHz, 16-bit mono PCM audio chunk (1280 samples / 80ms)
prediction = model.predict(frame)
score = prediction["hey_addie"]
if score > 0.5:
print("Wake word detected")
TFLite (tflite-runtime)
from openwakeword.model import Model
model = Model(
wakeword_models=["hey_addie.tflite"],
inference_framework="tflite",
)
prediction = model.predict(frame)
score = prediction["hey_addie"]
Audio requirements
- Sample rate: 16 kHz
- Channels: mono
- Format: 16-bit PCM
- Frame size: 1280 samples (80 ms) per
predict()call
Threshold tuning
| Threshold | Behavior |
|---|---|
0.3 |
More sensitive β more false activations |
0.5 |
Balanced (recommended starting point) |
0.7 |
Stricter β fewer false activations, may miss quiet/distant speech |
Tune to your microphone and room acoustics.
Intended use
On-device wake word detection for offline voice assistants. Designed for the ADI Genesis stack but works with any OpenWakeWord-compatible application.
Limitations
- Trained for the English phrase "hey addie" β will not generalize to other phrases.
- Performance varies with microphone quality, background noise, and distance.
- Single-phrase model; pair with additional wake word models if you need multiple triggers.
Built in theLAB β Learning. Algorithms. Breakthroughs. π¬
