Custom Wake Word for Home Assistant with Wyoming
Train your phrase online, evaluate the Basic model in the console, then decide whether to download it and run wake-word detection locally through Wyoming.
Workflow
- Enter a phrase and language: English, German, French, Japanese or Chinese.
- Train the Basic model and test it with your own microphone before purchase.
- If you continue, download the ONNX package.
- Run the open-source Wyoming service and add it to Home Assistant.
- Validate misses and false triggers on the final microphone and room.
What is the Wyoming protocol?
Wyoming is the open protocol Home Assistant uses to talk to voice hardware and services — Assist satellites, wake-word engines, speech-to-text and text-to-speech servers. A Wyoming service exposes a TCP endpoint that speaks JSON events with chunked binary audio; the Wyoming Protocol integration in Home Assistant connects to it, and the device shows up ready to select in your Assist pipeline.
Each service type has a conventional port: speech-to-text
(faster-whisper) on 10200, text-to-speech (Piper) on
10300, wake word on 10400. The Voicute
Wyoming service follows the 10400 convention, so it
behaves like any other wake-word satellite: Home Assistant streams
audio from the Assist pipeline, the service streams back detections.
Common setup problems
-
Integration can't connect: check the host is
reachable and port
10400is open on the firewall of the machine running Docker. -
Wake word never fires: confirm the models volume is
mounted (
-v ...:/models) and themodel_info.jsonpath is correct; check container logs for load errors. - Detects but Assist does nothing: the wake-word device must be selected inside the voice assistant pipeline configuration — connecting it is not the same as enabling it.
Connect it to Home Assistant
docker run -d --name voicute-wakeword --restart unless-stopped --network host \
-v /path/to/your/models:/models \
voicute/voicute-wyoming:latest \
--model-info /models/model_info.json --mel /app/models/melspectrogram.onnx
In Home Assistant open
Settings → Devices & services → Add Integration → Wyoming
Protocol, enter the server IP and port 10400, then select the wake
word in the voice assistant configuration.
Wyoming setup and Docker guide · Home Assistant Add-on source · Complete open-source runtime
Why not load it into openWakeWord?
ONNX defines a file format, not a universal inference contract. Voicute uses a self-developed Causal TCN, matched heads, and its own Mel preprocessing, input window and output semantics. openWakeWord expects another pipeline, so the models are not drop-in compatible.
Voicute model → onnx-wakeword Wyoming service → Home AssistantThe complete compact model is trained for the requested language and phrase instead of only a small classifier above a fixed embedding, making multilingual behavior more controllable. Final-device validation is still required.