CoolFace
Modelpublic

AdvancedDataIntelligence/hey-adi-wakeword

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
1likes19downloads
README.md122 linesDownload Raw Back to root
1---2license: apache-2.03language:4  - en5library_name: openwakeword6tags:7  - wake-word8  - keyword-spotting9  - openwakeword10  - onnx11  - tflite12  - voice-assistant13  - on-device14  - adi15pipeline_tag: audio-classification16---17 18<img src="https://serve.thelabsource.com/u/VEshKD.png" alt="hey-adi-wakeword" width="800">19 20# hey-adi-wakeword21 22Custom-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.23 24Wake phrase: **"hey addie"**25 26๐Ÿ“– **Build writeup:** [How this wake word was trained](https://thelabsource.com/projects/custom-wake-word.php)27 28๐ŸŽฅ **Demo video:**29 30<a href="https://www.youtube.com/watch?v=BSkMgP5AfXw"><img src="https://img.youtube.com/vi/BSkMgP5AfXw/hqdefault.jpg" alt="Hey ADI Wake Word Demo" width="600"></a>31 32---33 34## Files35 36| File | Format | Size | Runtime |37|------|--------|------|---------|38| `hey_addie.onnx` | ONNX | 206 kB | onnxruntime |39| `hey_addie.tflite` | LiteRT (TFLite) | 207 kB | tflite-runtime |40 41Both files are functionally equivalent โ€” pick the runtime that fits your deployment target. ONNX for desktop/server, TFLite for edge/embedded.42 43---44 45## Pipeline46 47This wake word is the front door to a fully offline voice stack:48 49OpenWakeWord ("hey addie")  โ†’  Parakeet STT  โ†’  Ollama (advanced-data-intelligence:e4b)  โ†’  OmniVoice TTS (adi_ref voice)50 51No cloud dependencies โ€” wake detection through response generation runs entirely on local hardware.52 53---54 55## Usage56 57### ONNX (onnxruntime)58 59```python60from openwakeword.model import Model61 62model = Model(63    wakeword_models=["hey_addie.onnx"],64    inference_framework="onnx",65)66 67# frame = 16kHz, 16-bit mono PCM audio chunk (1280 samples / 80ms)68prediction = model.predict(frame)69score = prediction["hey_addie"]70 71if score > 0.5:72    print("Wake word detected")73```74 75### TFLite (tflite-runtime)76 77```python78from openwakeword.model import Model79 80model = Model(81    wakeword_models=["hey_addie.tflite"],82    inference_framework="tflite",83)84 85prediction = model.predict(frame)86score = prediction["hey_addie"]87```88 89### Audio requirements90 91- **Sample rate:** 16 kHz92- **Channels:** mono93- **Format:** 16-bit PCM94- **Frame size:** 1280 samples (80 ms) per `predict()` call95 96---97 98## Threshold tuning99 100| Threshold | Behavior |101|-----------|----------|102| `0.3` | More sensitive โ€” more false activations |103| `0.5` | Balanced (recommended starting point) |104| `0.7` | Stricter โ€” fewer false activations, may miss quiet/distant speech |105 106Tune to your microphone and room acoustics.107 108---109 110## Intended use111 112On-device wake word detection for offline voice assistants. Designed for the ADI Genesis stack but works with any OpenWakeWord-compatible application.113 114## Limitations115 116- Trained for the English phrase "hey addie" โ€” will not generalize to other phrases.117- Performance varies with microphone quality, background noise, and distance.118- Single-phrase model; pair with additional wake word models if you need multiple triggers.119 120---121 122*Built in theLAB โ€” Learning. Algorithms. Breakthroughs.* ๐Ÿ”ฌ