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 (of course) 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!
- 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)
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.
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.
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.