TL;DR - Using any android device that runs Android 10+:
- Install “Hotword Plugin” (link below)
- Install “Tasker” or “Automate” (link below)
- Create an automation routine to call the HA companion apps “assist” function whenever the wakeword is detected.
Long explanation - as of this June 2024 update, there is still no way to detect wakewords locally/on-device using the official HA companion app for android. The only option is to use a 3rd party app to handle wakeword detection and create an automation routine with Tasker/Automate to connect it to the HA companion app’s “assist” function.
It’s also worth noting that there are no 3rd party android apps that use openwakeword, so you won’t be able to integrate this method with openwakeword on your HA voice pipeline or use your .tflite wakewords. The method I’ve linked here uses Snowboy as the wakeword backend.
(Should a method for running openwakeword or wyoming-satellite locally on Android become available this post will be updated)
Combining the Hotword Plugin android app with Tasker (or Automate) allows an android tablet to run local wake word detection that drops seamlessly into the HA Assist service.
You can create custom wake words via multiple methods, the easiest being 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 a small selection of fairly accurate universal “.umdl” wake words that include:
Hey/Ok Google
Alexa
Jarvis
Computer
Snowboy
Smart Mirror ← my personal favorite
Etc
Link to wakeword repository: jarbas-wake-word-plugin-snowboy/jarbas_wake_word_plugin_snowboy/resources/models at master · poveteen/jarbas-wake-word-plugin-snowboy · GitHub
(The “.pmdl” file wake words in this repository may not be very high accuracy, you may want to make your own)
You can use any android device running at least android 10, earlier versions of android did not allow simultaneous mic access to multiple apps.
This method assumes you have the voice assistant pipeline setup already on your HA server and the HA companion app installed on your device. See the post below for details on how to setup 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)
-Links-
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)
ALTERNATIVE ANDROID WAKEWORD OPTION:
This is an alternative method that bypasses the HA companion app and just streams continuous audio to your HA server, where it can be handled like any other voice satellite.