Fooling Alexa With Filtering

Tuesday 6th February 2018

Partly inspired by a conversation with Alex, I thought I’d have a play with how Amazon stop its adverts triggering people’s Alexa devices. It seems to be a three step process:

  1. Filter out 3-6kHz
  2. Add background noise
  3. Mumble the name

Here's a video of me testing it. The word "Alexa" is filtered in the first play through, and not in the second. Everything else stays the same.

The first image below is a screenshot of the spectral frequency display in Audition, before and after I processed the sound of me saying "Alexa". The bright orange is loud audio, and the gap in the after image is what's taken out by the filter. The second image is a screenshot of the multitrack project I used in the video.

It looks like the key here is the combination of this filtering and the background noise. Without the background noise, it still triggered the device. Some light shuffling/wind noise made it ignore it half the time, and with background music too, it ignored it 90% of the time.

When I only played the removed audio (just the bit between 3kHz and 6kHz), nothing happens at all. It barely sounds like speech to my ears.

Spectral graph of the before and after audio, 
				showing a gap in the 3-6kHz part of the spectrum during the word Alexa. Screenshot of the Adobe Audition 
			multitrack project I used for the test, showing the unprocessed Alexa track muted, and
			the processed one unmuted.

Socials and Comments

Follow Matt on: Twitter, YouTube, Instagram, Snapchat, Facebook, or Flickr.

I don't have a comments box, so please tweet me if you've got something to say!