---
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](https://github.com/dscripka/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](https://thelabsource.com/projects/custom-wake-word.php)
🎥 **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)
```python
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)
```python
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.* 🔬