How can I use a custom openWakeWord model with Home Assistant Voice Preview Edition?

Hi everyone,

I’m trying to use a custom wake word with my Home Assistant Voice Preview Edition, and I’m not sure if this is currently supported or if I’m missing a configuration step.

What I’ve done

  • Trained a custom wake word (“Hey Em Kay Bee”) using the official automatic_model_training_simple.ipynb notebook.
  • Generated a .tflite model.
  • Copied the model to /share/openwakeword/.
  • Installed and configured the Wyoming integration.
  • The custom wake word appears under Streaming wake word engine in my Voice Assistant configuration, and I can select it.

The problem

My Home Assistant Voice Preview Edition still only responds to the built-in wake words:

  • Okay Nabu
  • Hey Jarvis
  • Hey Mycroft

On the Voice PE device page, the wake-word selection only shows those three built-in options. Selecting my custom streaming wake word in the assistant does not make the device respond to “Hey Em Kay Bee.”

My question

Is it currently possible to make the Home Assistant Voice Preview Edition use a server-side openWakeWord model instead of the built-in on-device micro_wake_word engine?

Or is custom openWakeWord currently supported only for streaming microphones/satellites and not for the stock Voice Preview Edition firmware?

If anyone has successfully used a custom openWakeWord model with the Voice Preview Edition, I’d appreciate knowing what configuration or firmware changes were required.

Thank you!

I believe you have to pull the VPE into ESPHome and change the config, ultimately.

I did that but I can’t find a working config for the VPE that adds that feature though. There are a few on github but none of them work for me because they are old and rely on or use config options that are deprecated. I even had Claude try to fix one, to no avail. I have my tflite ready and it works on my M5stack Atom Voice just fine.

So, if anyone has a verified working config for the VPE, please let us know. Openwakeword detection in Hass for the VPE should really be a default option.