--- 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 # 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:** Hey ADI Wake Word Demo --- ## 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.* 🔬