How Do I Train a Custom Wake Word for Home Assistant?

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

  1. Enter a phrase and language: English, Chinese, Spanish, Japanese, German, French or Hindi.
  2. Train the Basic model and test it with your own microphone before purchase.
  3. If you continue, download the ONNX package.
  4. Run the open-source Wyoming service and add it to Home Assistant.
  5. Validate misses and false triggers on the final microphone and room.

Can the same custom model run outside Home Assistant?

Yes. The model is delivered in standard ONNX/TFLite formats, so Home Assistant is one deployment target rather than a model lock-in. The current supported targets are:

PlatformTypical deployment path
ESP32INT8 TFLite/TFLite Micro for embedded inference
Raspberry PiONNX Runtime or TFLite for Python, GPIO and local services
AndroidONNX Runtime inside a mobile application
WebONNX Runtime Web/WASM in the browser
WindowsONNX/TFLite runtime for desktop applications
macOSONNX/TFLite runtime for desktop applications
LinuxONNX Runtime or TFLite for edge and desktop systems
Home AssistantONNX plus Wyoming or a local voice integration

The model format is portable, but the audio capture, preprocessing, memory budget and threshold still need to be validated on the final microphone and device.

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

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 · View the open-source inference engine and demo models →

View the open-source inference engine and demo models →
ONNX / TFLite · Android · ESP32 · Web · Python · Home Assistant