Log in to follow projects

Following a project allows you to receive updates via email. It also lets the owner know that you like them.


Amazon Echo Hacking

By Oliver Smith

I wrote a few apps for my Amazon Echo.

About Log (4) Discussion (2)

The NDA seems to have been lifted

Amazon just released the Alexa Skills Kit publicly and I can find other people on the web saying the NDA has been lifted (as well as other posts/videos talking about the SDK), so I guess it's ok to make this public now. I haven't looked at the Echo SDK for a while now but it seems like they might have improved the way you can specify utterances, so maybe my old "take keys" issue is fixed. Actually, it looks like somebody else in the forums managed to get Colossal Caves working. The way you talk to apps has been updated so you can say "Alexa, ask X Y" (as per my suggestion in the forums, although I'm sure a bunch of people requested the same thing). That means my Rdio/Spotify hacks might be a little nicer to use too. If I get bored I'll play around with the SDK changes but for now I haven't been using Echo very much.

Colossal Cave Adventure app

I wrote an app so you can play the old text adventure "Colossal Cave Adventure" via Echo. Unfortunately, it's an incredibly frustrating experience. I'm finding that Echo is really, really bad at understanding commands for this game. It was pretty annoying shouting "ALEXA, SAY TAKE KEYS" a dozen times with the only response being a confused beeping sound. I didn't even get to the part where you have to say "xyzzy".

My guess is that Echo is built around matching what you're saying to pre-existing phrases, and doesn't do well at all when there's no lookup table. That would explain why it does okay with the normal commands that Amazon built in to it, but it's not really viable for something freeform yet. I guess it could just be my voice, though.

There is a way to give Echo a lookup table for your app by specifying all the phrases ahead of time but I think there are just too many for a text adventure to be feasible. Also I doubt it would improve the experience that much, since unless you already know all the right commands you're still going to be frustrated when Echo doesn't even parse your failed attempts correctly.

Oh well, maybe I'll finish it up just to have a live app to show off.

Did Rdio integration too!

Spotify was not working very well - the search api did not have a fuzzy matcher and you couldn't play a song if one was already playing. Rdio fixes both of those problems - I can say "play maneater by hall and oates" and it finds the right one, or "play in rainbows" (which is an album that Spotify also does not have) and it knows to play the whole album without me having to specify. So far, so good! The only problem is that I can't get Echo to recognize the word "Rdio". I tried all sorts of permutations like "R D O" and "Arr Dee Oh" but nothing works. So I just have to say "Alexa, open music and play regulate by nate dogg and warren g" instead (since that is all I really want to hear).

Private until the NDA lifts!

I wrote some quick apps for my Amazon Echo. The first lets you ask questions of Wolfram Alpha. It's really quick and dirty, but you can ask some basic questions and get answers. For instance:

Alexa, open Alpha and ask "How big is a blue whale?" Answer: Blue whale - Length - 82 to 100 feet.

Alexa, open Alpha and ask "When is sunset in Portland, Oregon?" Answer: Sunset - Portland, Oregon - Today 7:18 PM PDT.

Alexa, open Alpha and ask "What are the planets in the solar system?" Answer: Planets - Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune - Total 8

Alexa, open Alpha and ask "What is the circumference of Jupiter?" Answer: Jupiter - Equatorial circumference 279,120 miles.

Alexa, open Alpha and ask "Which planets have rings?" Answer: Ringed planets - Jupiter, Saturn, Uranus, Neptune

Etc, etc. The "Alexa, open..." syntax is just the way Amazon makes you do it right now. Hopefully they will come up with something less awkward.

I was kind of disappointed that the Echo SDK doesn't let you do all that much. For instance, you can't record or stream audio. However, I was still able to get the Echo to control Spotify running on my laptop, which then streams music to the Echo via Bluetooth. So it's pretty indirect. It also makes a lot of mistakes and the Spotify API doesn't do fuzzy matching, meaning if it screws up it can't even guess. It's still better than Prime Music though! I probably won't bother cleaning these apps up enough to release them, but if anybody is curious I'll share the code.

The good news is that writing apps for Echo is pretty easy (the only tricky part is having a webserver with SSL and a domain name available). I'd expect that anything that can be home-automated will be Echo-accessible pretty soon.