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?