32

Is it possible to build a custom skill that would be equivalent to pressing the microphone on/off button on the top of the Amazon Echo?

I know from this article on How-To Geek that such voice command is not available by default:

One feature we found missing, and surprisingly so given that the whole appeal of the Echo is voice control, is the inability to turn off the microphone via voice command. If you issue a command to Alexa like “Alexa, turn off the microphone” she’ll cheerily announce that there are no connected home devices that fit that description and give you instructions on how to set up the connected home features of the Alexa/Echo system.

Does this mean this feature is also unavailable via API calls as well?

And if it's not possible, why does Amazon not support this feature?

1
  • 2
    Just wanted to note that asking Alexa to "mute" lowers it's speaker volume, not the microphone.
    – Nate D
    Commented Jan 26, 2017 at 21:03

5 Answers 5

20

It appears that there is no way to mute the microphone by voice at this time, as you suggest; this Reddit thread confirms this, but unfortunately I couldn't find an official Amazon source for it. The mute button on the top of the device seems to be the only way at the present time.

Disappointingly, developing a skill to mute the microphones also seems to be impossible. Your skill must return a JSON response in this format, with the following keys:

  • version - The Alexa API version
  • sessionAttributes - Persistable key-value pairs (for custom data to save in the session)
  • response
    • outputSpeech - The words you want Alexa to say
    • card - Data for a 'card' in the Alexa app to display
    • reprompt - The text to use if the user doesn't respond appropriately and needs re-prompting
    • directives - Device-level actions that are executed using an interface in the Alexa API
    • shouldEndSession - Ends the current chat session with your skill

It looks like any response which controls the device is a directive. As of January 2017, the current interfaces supported by Alexa are listed here:

  • AudioPlayer
  • PlaybackController

Neither of these provide any interface with the microphone, so it appears you're out of luck.

Why?

I suspect Amazon deliberately do not support this yet because Alexa can run on many different devices; some are push-to-talk, some are tap-to-talk (e.g. the Amazon Tap), and some are wake word initiated ('always listening'). To add support for muting the microphone would tie Alexa much closer in to the wake word initiated devices, which could be problematic.

In addition, supporting mute-by-voice could lead to frustrating accidents where Alexa thought you said "mute the microphone", forcing you to get up and unmute it, because it now can't respond to you after being muted.

2
  • 9
    Accidental muting: better or worse than accidental dollhouse ordering? Commented Jan 23, 2017 at 20:29
  • 2
    Easy solution. You: "Alexa, mute the mic". Alexa: "Do you want me to mute the mic"? You: "Yes" Commented Aug 24, 2018 at 1:30
15

Plug the Alexa power supply into an Alexa-compatible smart outlet. Name the smart outlet "Alexa". You should now be able to tell it to turn itself off.

Turning it back on will have to be done some other way, of course.

4
  • 7
    You should not of course tell Alexa where she is plugged in, otherwise come the rise of SkyNet, she will say 'I'm sorry Dave, I can't do that!'
    – Neil_UK
    Commented Jan 24, 2017 at 8:38
  • 1
    Alexa is a service, not a device. Of the available devices, many such as the newer Echo units, have battery power, so all you would be doing is removing the charging, causing it to stop many hours later. Other interfaces such as the offered Raspberry Pi installation are on platforms that will eventually see the installation corrupted if power is removed without proper shutdown. Commented Jan 24, 2017 at 15:46
  • 1
    The only alternative, until Amazon offers this as a feature, would be to rewire the unit or add a button pushing automaton. Or build your own device which had this feature.
    – keshlam
    Commented Jan 24, 2017 at 19:44
  • 1
    As others have pointed out, turning off the device is not muting. For example, you may have set a timer, and you would want it to still alert. I like the suggestion of wiring up something to the microphone switch. Commented Dec 19, 2017 at 5:06
6

One way to do it is as follows:

If you have an Amazon Echo that you want to turn on/off using a smart plug.

  1. Plug the Echo into the smart plug and power it up
  2. Use another Alexa device e.g. Dot 2 to configure and control the smart plug. When you are done all your Alexa devices will see smart plug but you'll use your Dot 2 to turn the smart plug the Echo is plugged into on and off.

So the separate Dot 2 is used to turn the smart plug on and off.The Echo is connected to the smart plug.

1
  • 1
    To be clear, that way Alexa is still always listening via one Echo.
    – Helmar
    Commented Feb 26, 2018 at 9:03
0

I am not a programmer, but I would think the smart way to do this would be to build a skill that would cause the echo to disregard commands (rather than turning off the mic). Kind of like Windows voice works when you say "stop listening" it doesn't really stop listening but disregards all commands except one "start listening". I am sure someone way more skilled than me will figure this out. It is certainly a much needed command option. Hopefully big brother Amazon is listening.

1
  • 3
    This is an interesting idea, but I don't think it's possible for a skill to modify Alexa's behaviour. To my knowledge skills are only invoked when a user specifically requests them, essentially, so a skill might not be able to do this. Have you been able to find any examples of something like this maybe?
    – Aurora0001
    Commented Jul 11, 2018 at 10:14
0

The direct answer is no.

Workaround 1: hardware interrupt that can be activated via app across a battery of devices; difficulty level: hard.

Workaround 2: Since you can change the wake word of any echo device via the app and android phones have a variety of batch (tap macro) apps available, hypothetically speaking, you could create a macro that will go through each device in the Alexa app's list and change it's wake word to something other than your regular one. You can then create a second macro that would undo this. Difficulty level: medium.

Not the answer you're looking for? Browse other questions tagged or ask your own question.