While I eagerly await a built in wake word function, I decided to see what other options are out there. I started looking into open source hotword detection projects and found Snowboy. Combining a Hotword Plugin android app that runs Snowboy and integrates with Tasker (or Automate) allows an android tablet to run local wake word detection that drops seamlessly into the HA Assist service. (Edit on 10/30/2024 - now that built in wake word functionality has dropped I think there’s still value to having Tasker/Automate handle the wake word detection on the satellite device directly rather than having multiple audio streams constantly sending noise to the HA server, bogging down your network and consuming resources on HA server, so I’m updating this a little - also as of Feb 2024 there’s no way to run open wake word on unrooted android)
Creating custom wake word “pmdl” files is possible via multiple methods, but the easiest is to just use this web-based tool maintained by the hotword plugin dev: https://snowboy.jolanrensen.nl/
(The key to making them accurate is to record a lot of audio samples (20+) in a perfectly quiet environment.)
There are also a small selection of fairly accurate universal “umdl” wake words that include:
Hey/Ok Google
Alexa
Jarvis
Computer
Snowboy
Smart Mirror ← my personal favorite
There are a few other oddball umdl files that can be found here: https://github.com/poveteen/jarbas-wake-word-plugin-snowboy/tree/master/jarbas_wake_word_plugin_snowboy/resources/models
(There’s lots of “pmdl” wake words in this repository too, but accuracy on them is hit or miss, mostly miss in my testing, you’ll be better served to make your own)
In short, using any android device (an old phone or tablet - it should run at least android 10, earlier versions of android did a very poor job of handling audio input with multiple apps and the experience was much slower and inconsistent in my trials of devices running Android 9 and earlier), install “Hotword Plugin” which uses snowboy for the local wake word detection, and install “Tasker” or “Automate” to run the HA companion apps Assist service when a hotword is detected. Assuming you have the assist pipeline setup already on your HA server and the HA companion app installed on your device, just create a routine in Tasker/Automate that calls the HA apps assist service whenever Hotwork Plugin detects the wake word and triggers the routine.
Tip: In Tasker set it to launch a new assist service with every trigger so it will take consecutive commands. (Automate has a similar setting)
See below reply for detailed description of how to setup the Tasker routine.
Tasker: https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm
(It’s a paid app, but well worth it considering what you get for $3.50)
Automate: https://play.google.com/store/apps/details?id=com.llamalab.automate
(A free alternative to Tasker, seems to work just as well, credit to NervousApps for finding this alternative, see his post below for a screenshot of his setup)
HotwordPlugin: https://play.google.com/store/apps/details?id=nl.jolanrensen.hotwordPlugin
(there is an ad supported free version as well)
Snowboy: GitHub - seasalt-ai/snowboy: DNN based hotword and wake word detection toolkit (model generation included)
(Nothing to install here, just linking this for background info)