Enginursday: Home-Brew Alexa Endpoint

Amazon has released an example allowing you to create an Alexa endpoint on a Raspberry Pi 3 (or 2B). It's free and open source, so you can tear it apart, see how it works and modify it as you see fit!

Favorited Favorite 2

These days, artificially intelligent, voice-activated assistants are big business. Apple has Siri, Google knows its name, and Amazon has Alexa. Unfortunately, getting to play around with any of these in any serious manner means getting a job with Google, Apple or Amazon. At least, until now.

Example setup

Amazon has released an example using Amazon Voice Services to interface with Alexa, which can be run on pretty much any desktop computer, including (wonderfully) the Raspberry Pi 3 or 2B. The entire example is open source and written in Java. The instructions online are thorough, detailed and correct. It requires that you create (or link your Amazon account to) a free developer account, and very good instructions are provided for that process as well.

It offers options for listening: you can set it up to be a push-to-talk device using the GUI on screen or a GPIO pin, or you can enable a wake word service to activate the system on the keyword “Alexa”.

Alexa on Pi screenshot

Image from the AVS Sample App wiki

The entire setup is free for use unless you’re developing it into a product.

Couple this with Shawn’s post from a few months ago about using Alexa with IFTTT, and you’ve got a very hacker-friendly setup for playing with Amazon Voice Services. The one downside is that you must manually register the device with AVS every time you boot it, so it doesn’t (quite) do the job of replacing an Echo. However, if you already have an RPi as part of a home automation system, adding AVS capability might be worth it, and I’m sure a more savvy user than myself could figure out a way to automate the startup procedures.

I used a Raspberry Pi 3 from our storefront stock, our pre-installed NOOBS microSD card, one of our miniature “hamburger” speakers and this Kinobo microphone from Amazon. Total cost overall is probably comparable to an Amazon Echo device, but it’s just so much cooler to build it yourself! Also, by running it on a Raspberry Pi, you have the Pi available for other home automation tasks.

Take a look and let us know what you think, especially if you figure out how to automate the boot process! Please share your thoughts in the comments below.


Comments 4 comments

  • An excellent tool for developing voice based products! While I suspect the mic you used provides better results, if you need a really small, low-footprint mic, I’ve been surprisingly pleased by the performance I’ve gotten out of this one, also by kinobo: https://www.amazon.com/Kinobo-Microphone-Desktop-Recognition-Software/dp/B00IR8R7WQ/ref=lp_3032939011_1_1?srs=3032939011&ie=UTF8&qid=1490889193&sr=8-1

    I’m using the open sources AlexaPi software (https://github.com/alexa-pi/AlexaPi), which works similarly, but is in python rather than java.

  • So has anybody had this successfully build? I’ve tried twice and no joy. The thing is huge so not sure how much I want dive into it.

    • I think I’m going to try the Python version mentioned above. The version in the article is getting a few check-ins per hour by quite a few different authors–a little concerned about stability. May come back to it later if things settle down a little

    • I was able to get it working successfully on a Pi3 with our NOOBS build microSD card.

      The only sticking point I encountered was with the microphone. It seems the mic must be plugged into the Pi at boot time or the thing won’t work. Seems a little weird to me, but it worked once I rebooted with the mic plugged in already.

Related Posts

Recent Posts

Tags


All Tags