Satellites: Only react once if multiple satellites pick up the wakeword/request


as I’m getting more and more used to snips in everyday life, I of course started installing more satellites, because my main “server” sits next to the TV and can’t pick up the sound while the TV is on and you are standing 5-6 meters away.
But now, when ever the TV is off and I call my assistant - I get multiple answers.
Reacting on the Wakeword and listening on multiple devices is a good thing i think (more robust than only listening on one). But afterwards, the intent should only be triggered once and therefore the output should only be triggered once.
“Switch the light” -> Main snips turns of the light, satellite turns it on again…

Possible ways:

  • Only the first device counts (insert a short (.1 second should be enough?) timeout in dialogue manager where the same wakeword can’t be triggered
  • The device with the best sound signal “wins”: both wakewords are recognized and both satellites start listening - we enter a “multi room voice recognition mode”. Now the dialogue manager waits for both satellites to finish the input. When both are finished we choose the sentence with the higher probability for sending out the intent trigger. This will be the room in siteId as well.
  • Do crazy voodoo that combines the picked up voice from both devices for awesome results while walking from one satellite to the next… :wink:

The first method should be really easy to implement in dialogue manager - but personally I think the second one is the better one. The third one is only a dream, maybe for the 5 year plan? ;D

Any thoughts?





A way to arrange a little the things is having intents dedicated to unitary action (i.e. if the intent is Turn ON, turning on two times would give the expected result).

But dedicated, unitary intents do not solve all, so I confirm that would be a nice feature to have a centralized reaction to multiple satellites inputs at the same time : with two satellites, I’ve regularly the problem that the farer one only listens to the intent but not to the slots : so when I say “open the shutters in the living room”, one satellite triggers “open the shutters in the living room”, and the other triggers “open the shutters”…





could turn the mic vol down so that each room only really hears from within itself and not from another room