By the Outspoken Team · February 20, 2026
Wake Word Detection with Home Assistant
Home Assistant supports custom wake words through the openWakeWord integration. This guide walks you through setting up your trained ONNX model as a custom wake word in Home Assistant.
Prerequisites
- Home Assistant 2024.1 or later
- A working Wyoming protocol setup
- Your trained
.onnxwake word model (download from the Outspoken dashboard)
Don't have a model yet?
You can train a custom wake word model in minutes using Outspoken. Sign up, enter your desired wake word, and download the ONNX model when training is complete.
Step 1: Install the openWakeWord add-on
In Home Assistant, navigate to Settings > Add-ons > Add-on Store and install openWakeWord.
Alternatively, if you're running Home Assistant in Docker, you can use the standalone Wyoming-openWakeWord container:
docker run -d \
--name wyoming-openwakeword \
-p 10400:10400 \
-v /path/to/custom-models:/custom \
rhasspy/wyoming-openwakeword \
--custom-model-dir /customStep 2: Add your custom model
Copy your .onnx model file into the openWakeWord custom models directory.
For the Home Assistant add-on, place the file in:
/share/openwakeword/
For Docker, place it in the volume you mounted as /custom.
File naming
The model file name becomes the wake word identifier. Use a descriptive name like hey_jarvis.onnx rather than generic names.
Step 3: Configure the add-on
Restart the openWakeWord add-on to pick up the new model. Then go to Settings > Devices & Services > Wyoming and ensure the openWakeWord service is detected.
Your custom wake word should appear in the list of available wake words when configuring a voice assistant pipeline.
Step 4: Set up a voice assistant pipeline
Navigate to Settings > Voice assistants and create or edit a pipeline:
- Set the Wake word engine to openWakeWord
- Select your custom model from the dropdown
- Configure the rest of the pipeline (STT, conversation, TTS) as needed
# Example Assist pipeline configuration (for reference)
assist_pipeline:
- name: "Custom Wake Word Assistant"
wake_word:
engine: openwakeword
model: hey_jarvis
stt:
engine: whisper
conversation:
engine: homeassistant
tts:
engine: piperStep 5: Test the wake word
Use the Assist panel in Home Assistant or a connected satellite device (like an ESP32 with ESPHome) to test your wake word. Say your wake phrase and verify it triggers the assistant.
Tuning sensitivity
If you're getting false activations or missed detections, adjust the detection threshold in the openWakeWord add-on settings. Lower values are more sensitive, higher values reduce false positives.
Troubleshooting
- Model not showing up: Restart the openWakeWord add-on after adding the file. Check logs for any loading errors.
- Low detection accuracy: Try retraining with more examples or a higher step count in Outspoken.
- High latency: Ensure the Wyoming service is running on the same network as Home Assistant for low-latency detection.
Want to run this on a standalone device? The Raspberry Pi guide walks through setting up an always-on voice trigger with a Pi and USB microphone.
Have questions? Join our Discord community for help with your integration.