Puplexa: A DIY Amazon Voice Assistant

The Puplexa is a homemade Amazon Alexa device built with a dog speaker that dances to the sound of Alexa’s voice. I built this for fun but also to learn how the Alexa Voice Service (AVS) works. I used a Raspberry Pi 3 with Raspbian Stretch, a USB microphone, a dancing speaker, and the AVS SDK. Here’s how I did it.

Note: To write and test skills for Alexa, there is no need to own a device. Sign up for an Amazon Developer Account to use the web-based Alexa simulator. However, if you must have your own dancing Alexa, read on!

Parts Required

  • Raspberry Pi 3
  • Micro-USB power supply (5V, 2.5 Amps) with micro USB cable
  • Micro-SD card (at least 8GB, but I used 32GB)
  • USB 2.0 microphone (I used this)
  • A dancing external speaker with a 3.5mm audio cable (like this one)

Build Process

I followed all the steps in this excellent Pi Alexa tutorial by Amazon. Since the Puplexa was built, Amazon has released an even faster Quick Start Guide with Script.

Create Product Profile

Follow these instructions to register your Pi and activate a security profile. If you don’t already have an Amazon Developer Account, you’ll need to set one up. Between checking my setup and reading about options, it took me about 20 minutes.

Pi Assembly and OS Installation

Follow these instructions to set up the Pi and install Raspbian Stretch. I run a headless Pi (no monitor) so I can program remotely over SSH. You don’t need to have a headless setup but it’s very handy and involves only a little extra setup.

Voice SDK Installation and Authentication

Follow these instructions to input credentials and build the SDK. Then follow the additional instructions to get a refresh token and authenticate your Alexa build. Of all steps, authentication took me the longest because of issues with Bluetooth. But once I disabled it everything worked.

Running Alexa

Follow these instructions to run Alexa from a shell script at the command line. Alexa will wait to hear the wake word which by default is “Alexa”. Set the device location for accurate location-dependent information like weather reports.

Advanced setup

Your Pi should work well as-is, but here are other enhancements you can make:

Sensory Wake-Word License Issue

After running for several months, the Puplexa suddenly stopped responding. This was due to expiry of the license for the 3rd-party Sensory wake-word engine. To update your license, follow these steps in the main directory of your Alexa installation and when prompted, accept the license terms.

cd third-party/alexa-rpi/
git reset --hard
git pull
cd bin
sudo bash license.sh

Then rebuild the sample app and reboot.

That’s it! Check out the Puplexa in action and all the interesting things people are doing with Alexa over on instructables. Have fun building your own device!