openWakeWord in Home Assistant: Why Your Custom Word Never Fires

August 2026 · Voicute

You followed the guide, trained the model, and your Home Assistant voice assistant just… doesn't wake up. It's usually one of three things — and two of them are openWakeWord, not your setup.

The three usual suspects

  1. Unstable recall. openWakeWord's custom models score anywhere from ~25% to ~90% on the same word depending on voice and noise. If your word landed on the unlucky side, it fires rarely no matter what you do in HA. See why openWakeWord recall is unstable.
  2. Threshold on the wrong service. A classic mistake: the --threshold flag belongs on the wyoming-wakeword service, not the --vad-threshold on the satellite. Wrong placement means your tuning does nothing.
  3. Non-English word. German, French, Japanese, or Chinese wake words collapse to ~0.001 prediction scores on openWakeWord's English embedding — they effectively never fire.

Why tuning only gets you so far

For the threshold problem, a flag move fixes it. But for recall instability and non-English words, tuning is a band-aid on an architectural limit: openWakeWord's frozen English embedding was never built to separate arbitrary words or non-English phonemes. You can lower the threshold to catch more, but then false triggers climb — and you're back to the word-picking treadmill.

The stable path for Home Assistant

The alternative is a from-scratch-trained ONNX model run through the open-source onnx-wakeword engine as a Wyoming service — the same Wyoming protocol Home Assistant already uses, so the pipeline doesn't change, only the model does.

  1. Generate your wake word on Voicute (typed word → ONNX in 10–20 minutes, stable 90%+ recall).
  2. Run it through onnx-wakeword as a Wyoming service.
  3. Point Home Assistant at it like any other wake-word service.

Full setup is in the Home Assistant wake word guide.

FAQ

Why doesn't my openWakeWord custom word fire in Home Assistant?

The most common causes are unstable recall from the frozen-embedding architecture (the model scores ~25%–90% depending on word and voice), a threshold placed on the wrong service, and non-English words that collapse to ~0.001 scores.

How do I fix openWakeWord false triggers in Home Assistant?

The --threshold flag belongs on the wyoming-wakeword service, not the --vad-threshold flag on the satellite — a frequent mistake. Beyond that, openWakeWord's per-word tuning is usually required to balance false triggers against missed detections.

Can I use a non-English wake word in Home Assistant?

Yes, with a from-scratch-trained ONNX model instead of openWakeWord. Voicute generates German, French, Japanese, and Chinese wake words at 90%+ recall, runnable as a Wyoming service for Home Assistant.

Train a wake word for Home Assistant →