I have been playing with the Seeedstudio Respeaker Kickstarter device.
It is designed to enable you to build your own Amazon Echo or Echo Dot devices and is similar to the circuit board from an Echo Dot. The software and instructions are on github.
At the moment the instructions on using it are a bit sketchy and the software a little buggy, but it is a very nice device, and there is a lot of useful supporting software.
It runs openwrt Linux and supports Wifi (but not Bluetooth). It has an audio jack to connect to any speaker, or you can solder a speaker to it.
It has an Arduino Leonardo device that drives 12 RGB LEDS and 8 capacitive touch sensors.
And it has expansion connectors for a a Grove sensor adapter and for an optional microphone array.
It supports an SD card that can expand the Linux storage and can be used to store music.
All of the significant software and examples are in Python.
It comes with examples to access the Amazon Alexa service, the Mycroft open source equivalent, and the Microsoft Bing speech recognition and text to speech APIs. You can also access the Google text to speech API.
It also runs the Mopidy music player and has a web front end to the Mopidy music player and a few other functions.
It runs pocketsphinx for local, offline speech recognition or to recognise keywords such as “Alexa”.
I built a speech-controlled music player and Alexa equivalent based on the examples.
I control Modipy using the python-mpd2 client software .
I can set up playlist and play them by using a spoken phrase containing the playlist name (“Marvin, play Bob Dylan”). The playlists can be tracks on the SD card or Internet radio stations. I also support spoken command like “pause”, “play”, “stop”, “next”, “previous”. And I also got it to speak Wikipedia entries like Alexa does. It uses text to speech to tell you what it is doing.
My program is in python.
It all works, but unfortunately not very well.
The microphone it not up to the standard of the one in the Amazon Dot. You would probably have to buy the expensive microphone array to get decent performance.
I am also not sure that pocketsphinx is up to the job of recognising keywords. It does not work as well as the newer online speech recognition services like Alexa and Bing Speech API.
It is also difficult to get all the different software to access the microphone and speakers without errors.
So, I think it is a very good try at an open source copy of an Amazon Dot, but both the hardware and software needs improvement. It is extremely hard to be cost-competitive with an Amazon Dot.