By the Outspoken Team · March 14, 2026 · Updated September 13, 2026
Best Custom Wake Word Tools: A Practical Comparison
You want to add a custom wake word to your project — a smart home setup, a mobile app, a Raspberry Pi gadget, or a commercial product. You've searched "custom wake word detection" and found a confusing landscape of dead projects, enterprise SDKs, and research repos.
This guide compares every serious option available today so you can pick the right tool for your use case and budget.
Quick Comparison
| Tool | Runs On-Device | Custom Wake Words | Pricing | Model Format | Status |
|---|---|---|---|---|---|
| Picovoice Porcupine | Yes | Yes | From $6,000/yr | Proprietary | Active |
| Azure Custom Keyword | Yes | Yes | Free (SDK lock-in) | Proprietary | Active |
| Snowboy | Yes | Yes | Free | Proprietary | Dead |
| openWakeWord | Yes | Yes | Free (DIY) | ONNX | Active |
| microWakeWord | Yes | Yes | Free (DIY) | TFLite Micro | Active |
| livekit-wakeword | Yes | Yes | Free (DIY) | ONNX | Active |
| Rhasspy/Raven | Yes | Yes (template-based) | Free (DIY) | N/A (template matching) | Active |
| local-wake | Yes | Yes (no training) | Free (DIY) | N/A (rule-based) | Active |
| Outspoken | Yes | Yes | One-time credits | ONNX | Active |
Picovoice Porcupine
Porcupine is the most established commercial wake word engine. It runs on-device, supports many platforms (iOS, Android, Raspberry Pi, Linux, macOS, Windows, web), and delivers strong accuracy.
What's good:
- Mature SDK with broad platform support
- Low false positive rate
- Well-documented, production-ready
What's not:
- Pricing starts at $6,000/year for the Starter plan (100 monthly active devices). Enterprise plans cost more. The free tier is limited to a single device with a watermarked model.
- Custom wake words require the Enterprise plan — you can't train your own on the free or Starter tier without restrictions.
- Models are proprietary and tied to the Picovoice SDK. You can't export or run them outside their ecosystem.
Best for: Well-funded companies building commercial products that need a proven, supported SDK and can absorb the licensing cost.
Not ideal for: Indie developers, hobbyists, open-source projects, or anyone who wants to own their model.
Azure Custom Keyword
Microsoft offers Custom Keyword as part of Azure Speech Services. You can generate a custom wake word model through the Azure portal for free.
What's good:
- Free to create models
- Runs on-device (not in the cloud)
- Decent accuracy for simple wake words
What's not:
- Locked to the Azure Speech SDK. The generated models only work within Microsoft's toolchain. You need the Speech SDK installed on your device, which limits deployment options.
- No ONNX or standard format export — you can't use the model outside the Azure ecosystem.
- Limited platform support compared to a standard ONNX model. No Home Assistant integration. No browser support.
- The service is part of the broader Azure Cognitive Services suite, which means Azure account management, resource provisioning, and SDK versioning overhead.
Best for: Teams already invested in the Azure ecosystem who want a free wake word model and don't mind the SDK lock-in.
Not ideal for: Cross-platform projects, Home Assistant users, or anyone who wants vendor independence.
Snowboy (Deprecated)
Snowboy was one of the first accessible wake word detection tools. It allowed custom wake words trained from just a few audio samples.
Status: Dead. Kitt.AI (the company behind Snowboy) was acquired by Baidu in 2017. The cloud training service was shut down in 2020. The GitHub repo is archived and hasn't been updated since.
Why it still shows up: Many tutorials and Stack Overflow answers still reference Snowboy because it was popular during 2017–2019. If you find a guide recommending Snowboy, it's outdated.
Migration path: If you're currently using Snowboy, the closest modern equivalent is openWakeWord or Outspoken — both produce on-device models, and Outspoken's ONNX models can be integrated in similar ways.
openWakeWord (DIY)
openWakeWord is a fully open-source wake word detection framework by David Scripka. It's the engine behind Home Assistant's built-in wake word detection and produces standard ONNX models.
What's good:
- Completely free and open-source (Apache 2.0)
- Standard ONNX output — models run anywhere ONNX Runtime does
- Native Home Assistant integration via the Wyoming protocol
- Good accuracy when properly trained
- Active community and well-documented
What's not:
- You need to set up the entire training pipeline yourself. This means: installing Python dependencies, downloading ~4 GB of shared training data, generating synthetic speech samples with Piper TTS, running data augmentation, and executing the training script with the right hyperparameters. For someone with ML experience, this takes a few hours. For everyone else, it's a significant barrier.
- Training requires a decent GPU (or patience with CPU training)
- No web UI — everything is command-line
- Debugging training issues (bad phonetics, wrong parameters, low accuracy) requires understanding the pipeline internals
Outspoken is built on openWakeWord
Outspoken uses the openWakeWord pipeline under the hood. The difference is that we handle the infrastructure: TTS sample generation, noise augmentation, GPU training, and model export. You get the same ONNX models — without setting up the pipeline yourself.
Best for: ML engineers and researchers who want full control over the training process and don't mind managing infrastructure.
Not ideal for: Anyone who wants a trained model without setting up a Python environment and GPU.
microWakeWord
microWakeWord is an open-source wake word framework purpose-built for microcontrollers. It's the engine behind ESPHome's on-device wake word support and exports to TensorFlow Lite Micro, not ONNX.
What's good:
- Runs on genuinely tiny hardware — ESP32-class microcontrollers, not just Raspberry Pi
- Tight ESPHome and Home Assistant Voice PE integration
- Free and open-source
What's not:
- TFLite Micro only — no ONNX export, so it doesn't fit projects standardized on ONNX Runtime
- Same DIY training pipeline burden as openWakeWord: Python environment, synthetic data generation, and hyperparameter tuning yourself
- Narrower platform scope than a general ONNX model — it's optimized specifically for the microcontroller case
Best for: ESPHome and Home Assistant Voice PE projects targeting bare-metal microcontrollers where every kilobyte of flash and RAM matters.
Not ideal for: Anyone deploying to phones, browsers, or general-purpose Linux devices where ONNX is the more portable choice.
livekit-wakeword
livekit-wakeword is a newer open-source trainer from LiveKit that reports better accuracy than openWakeWord on its own benchmarks, exporting standard ONNX models with a single training command.
What's good:
- Free and open-source, ONNX output — compatible with the same runtimes as openWakeWord and Outspoken
- Reports lower false-accepts-per-hour than openWakeWord in its published benchmarks
- Single-command training reduces some of the DIY setup friction
What's not:
- Still a DIY pipeline — you provide the compute, manage the training run, and evaluate the result yourself
- Newer project with a smaller community and track record than openWakeWord
- No hosted training or web UI — command-line only, same barrier as any self-hosted option
Best for: Teams already comfortable running their own training infrastructure who want to try a newer architecture without leaving the ONNX ecosystem.
Not ideal for: Anyone who wants a trained model without provisioning a GPU and running training scripts themselves.
Rhasspy/Raven
Raven is Rhasspy's built-in wake word system, based on the Snips Personal Wakeword Detector. It's template matching, not a trained neural network — you record a handful of example clips of your wake word and Raven compares incoming audio against them.
What's good:
- No training pipeline, no GPU, no synthetic data — just record 3+ sample clips
- Tightly integrated with the broader Rhasspy voice assistant stack
- Works fully offline with minimal setup
What's not:
- Template matching is fundamentally less robust than a trained model — accuracy depends heavily on how representative your recorded samples are, and it doesn't generalize well across different voices or noise conditions
- Not a model you can export and use in other frameworks — it's tied to the Rhasspy runtime
- Rhasspy also supports Porcupine as an alternative engine if you need better out-of-box accuracy and can accept that lock-in instead
Best for: Quick single-user, single-environment prototypes where recording a few samples is easier than setting up training infrastructure.
Not ideal for: Multi-user products, noisy environments, or anything that needs to generalize beyond the exact voices it was recorded from.
local-wake
local-wake takes a different approach entirely: no model training at all. It's a lightweight, rule-based detector designed for resource-constrained devices like the Raspberry Pi, claiming strong accuracy on clean, same-speaker audio without any training step.
What's good:
- Zero training required — no data collection, no GPU, no waiting
- Very lightweight, suitable for constrained hardware
- Simple to get running for a single, known speaker
What's not:
- Accuracy claims are strongest for clean, same-speaker conditions — performance on varied voices or noisy environments is a different story than a trained model evaluated across many speakers
- No standard exportable model format — this is a detection approach, not a portable artifact
- Smaller, newer project with limited production track record
Best for: Constrained-hardware hobby projects where a single known speaker and low setup effort matter more than robustness across voices.
Not ideal for: Products with multiple users, commercial deployments, or noisy real-world environments.
Outspoken
Outspoken is a self-service platform for training custom wake word models. You enter a wake word, pick training parameters, and get a downloadable ONNX model in about 45 minutes.
What's good:
- Standard ONNX format — models run on Home Assistant, Python, React Native, C++, browsers, and any platform with ONNX Runtime support
- Self-service web UI, no command line needed
- Trains on GPU in ~45 minutes
- Supports multiple languages (English, Dutch, German, French)
- Train and evaluate standard ONNX/TFLite models with one-time credits.
- Personal, hobby, and prototype use are included. Commercial venue, fleet, resale, or customer deployments require a deployment license.
- Built on the proven openWakeWord pipeline
What's not:
- Newer platform — smaller community than Picovoice
- No dedicated SDK (you use ONNX Runtime directly, which is a pro or con depending on your perspective)
- Model quality depends on training parameters and wake word choice (same as any wake word tool)
Best for: Developers, hobbyists, and companies who want custom wake word models without enterprise pricing or DIY infrastructure. Especially strong for Home Assistant users, React Native apps, and cross-platform projects.
How to Choose
You need a battle-tested commercial SDK
Go with Picovoice Porcupine. It's expensive, but it's the most mature option with dedicated support. If your company can justify $6K+/year and you want an SDK with all the rough edges smoothed out, this is it.
You're already in the Azure ecosystem
Try Azure Custom Keyword. It's free and runs on-device. Just know that your models are locked to Microsoft's SDK. If you ever want to switch platforms, you'll retrain from scratch.
You want full control over the training pipeline
Use openWakeWord or livekit-wakeword directly. Clone the repo, set up the dependencies, and run training yourself. You'll learn a lot about how wake word detection works, and you'll have complete control over every parameter. livekit-wakeword is worth a look if you want a newer architecture while staying in ONNX.
You're deploying to a bare-metal microcontroller
Use microWakeWord. If you're building on ESPHome or targeting an ESP32-class chip directly, its TFLite Micro export is a better fit than a general ONNX model.
You just need a quick single-speaker prototype
Try Raven (Rhasspy) or local-wake. Neither requires training a model — record a few samples or use rule-based detection — but both trade robustness across voices and environments for that simplicity. Fine for a one-off hobby build, risky for anything with multiple users.
You want a custom wake word without the hassle
Use Outspoken. Train through the web UI, download a standard ONNX model, and evaluate locally. Train and evaluate standard ONNX/TFLite models with one-time credits. Need multiple venues or devices? Contact us for startup-friendly deployment pricing.
Test before you commit
Try the Outspoken Playground to test wake word detection in your browser before signing up. You can also upload your own ONNX model to test.
What About Cloud Speech APIs?
Cloud speech-to-text (Google, AWS, Azure) is sometimes suggested for wake word detection, but it's fundamentally the wrong tool. Cloud STT is designed for full transcription — dictation, captions, meeting notes. Using it for wake word detection means:
- $460+/month per device for always-on listening (at Google's base rate of $0.016/min)
- 200–500ms latency per inference (network round-trip)
- Continuous audio streaming to a third party (privacy and bandwidth concerns)
- No offline support — if the internet goes down, your wake word stops working
On-device wake word detection with ONNX runs in 5–15ms, costs nothing after training, works offline, and keeps all audio on the device. There's no scenario where a cloud speech API is the right choice for wake word detection specifically.
Summary
The custom wake word landscape in 2026 comes down to these real options:
- Picovoice — best commercial SDK, enterprise pricing
- Azure Custom Keyword — free but locked to Microsoft's SDK
- openWakeWord / livekit-wakeword — free, open-source, DIY training pipeline, ONNX output
- microWakeWord — free, open-source, DIY, purpose-built for microcontrollers (TFLite Micro)
- Rhasspy/Raven / local-wake — no training required, but template/rule-based accuracy trade-offs
- Outspoken — self-service training, standard ONNX/TFLite, one-time credits
Snowboy is dead. Cloud speech APIs are the wrong tool. Everything else is a variation of these approaches.
For most developers — especially those building for Home Assistant, mobile apps, or IoT devices — the combination of self-service training and standard ONNX output gives you the best balance of convenience, cost, and flexibility.
Ready to train your first custom wake word? Sign up for Outspoken — first model is free.