Thought Analysis: Multiple Alexas

I recently obtained a second Amazon Echo for free and set it up in my bedroom. For reference, I’ve got the first Amazon Echo set up in my living room and it’s just close enough proximity to the second one that if I use the same trigger name ‘Alexa’ for both of them, they can sometimes both hear me and both respond.

The current solution offered by the Alexa App is that you can switch the trigger name of one of them to either ‘Echo’ or ‘Amazon’. Although this works, it sucks for the user because you have to remember which name to use for each Echo and when you are asking something off the top of your head, you tend to forget which trigger name to say.

So this got me thinking, what is the best method of remedying this situation?

  1. The simplest solution would be to just drop the second query whenever it matches (within a declared timespan).

However, possible problems with this are:

  • What if they come in at the exact same time (or near enough to the same time that the flag hasn’t been set from the first query)? Although this would be very rare, it would most likely just result in two responses, so nothing that isn’t already happening.
  • What if the one that comes in second got delayed by the hardware and it is actually closer to the user? This would result in the closer Alexa device not responding and the farther one responding (not a great result)
  1. Another possible solution is:

When the service that backs Alexa in the cloud receives two commands at near the same time from one account that have the same query, respond to the one that has the louder volume query and ignore the other.

The problem with this solution is that it produces a delay for every query since you have to wait for the possible “dual query” scenario. This might be able to be fixed by adding a “start query” signal to Alexa devices that sends a small packet to the Alexa service when a device is being given a query. This would allow the Alexa service to determine if multiple queries are incoming and whether to respond to the query immediately, or to wait for the second query for comparison.

  1. Establishing a mapping of Alexa devices where they are able to interact with each other and triangulate the user so that only the one closest to the user responds.

The problem with this is solution is that it would require more computational power on each Alexa device and would slow down the responses from being sent to the Alexa service at all. The computation would be done on the actual devices (or a central “master” one) and only after having figured out the “correct” device, would the response get sent to the Alexa service.

There are obviously more possible solutions and I would love to hear from others about fixes for the issue and any responses to my solutions above.