One thing I dearly miss after switching away from Google Home is the way it had a perfect implementation of timers.
Yes, you can set timers on all Voice Satellites now, from ESP32 based ones (including Voice PE) to raspberry pi based ones, but deactivation of timers on them sucks. On ESP32 ones, you have to press a button to dismiss the timer, which, especially if you are cooking and your hands are dirty, or the satellite in a spot that is not easy to reach, you can’t really do easily. And on Pi based ones, the timer will just ring for the number of times you specified and there’s that, making it very easy to miss it.
But on Google Home, you can just say “Stop” to the speaker, and it will stop the ringing timer.
Why can’t Home Assistant satellites have the same functionality?
I’ve heard on a livestream a while back that microwakeword v2 is so optimized, you can run multiple of them at the same time even on an ESP32-S3. So why not train a new “Stop” microwakeword? Even if hardware is not quite capable to run 2 wakewords, you can probably do some magic to unload the main wakeword when the timer rings, load the “stop” wakeword, and once the timer is dismissed, do the reverse. And even on hardware without noise cancellation, you can probably tweak the pause between ringing sound effect to allow the user say “stop” in that time.
One additonal usecase is, on noise cancellation supporting hardware, being able to end an overly chatty response, which you can often get from LLMs.
I realize I am asking for a lot here, but I am confident this would make a product like Voice PE, or its successor, SO much more competitive compared to the data-gobbling Google Home and Amazon Echo.
I’m pretty sure it does.
Ok not in context of timers. But I will have to locate it. It was in one of the year. Of the voice articles (buried in the discussion) they said there’s actually room for (and I may be very wrong here this is from memory) 5 wake words the reason they exposed three was specifically for supporting a stop type wake for - in the thread it was music or mid conversation playback but. There’s something in there that deals with this just maybe not in the exact case you mentioned.
Glad to hear I didn’t imagine there being support for multiple simultanous wakeword, but in the microwakeword repo, there unfortunately is no “stop” wakeword.
Yeah you didn’t imagine it.
I’m reading one of the docs now. They specifically mentioned the capacity of 5 (in the one where they talk about naming timers) and the reason (to handle cancelation) but I can’t find what they actually were.
You’re wrong. Stop word is used in V:PE, but it is enabled only during response time.
You can experiment with the code in Esphome and try to implement disabling the timer by voice.
also repo
I could not find any docs either, but I was playing around some with the timers on the HA VAPE yesterday. In my testing, when a timer has expired with the VAPE ringing its LEDs/audio, I simply say “stop” (without wake word) and this works. I could not find any built-in sentence intents using “stop” for timers. This leads me to also believe that “stop” is indeed a trained word on the VAPE
You’re right, the timer can be stopped by wakeword. But further reading of the code is required or do a real experiment to find out whether you need to say “ok_nabu” or “stop”. Or both are working
Thanks for the pointer!
I had no idea! Thank you for pointing this out. I don’t have a Voice PE and just assumed the software side functionality is more or less the same as Box3, and that stop model isn’t a thing since it’s not at micro-wake-word-models/models/v2 at main · esphome/micro-wake-word-models · GitHub
In the kahrendt’s repo you’ve shared the model files are all for some reason published as pre-releases which is quite unusual and thus why I missed it there.
I haven’t looked at the code, but I can confirm that my PE does indeed stop ringing when an alarm has gone off and I say ‘STOP’.
I can confirm that both are working, but wakeword detection during sound playback is pretty bad, I have to say it multiple times for it to register