A presentation of Smart Speaker from Scratch

A project log for Smart Speaker from Scratch

Make an open source smart speaker for daily use

YihuiYihui 04/09/2019 at 05:000 Comments

This is a presentation of  this project for a hackaday event at Chaihuo Maker Space.  It is worth sharing it here. You can also find the .pptx file at

As an engineer, I always enjoy finding ways to complete a task. For me, the current task is making an open source smart speaker.

Why we should make an open source smart speaker? What's the to-do-list? How to make it? The presentation is to answer these three questions.

There are lots of existing smart speakers in the market. They are well-designed products. But they have two common issues. One is that they are always-listening black boxes, which scares many people. The other is that their functions is limited by their vendors. Smart speakers have very powerful ARM processors. They are just like smart phones with touch screens. Smart phones have so many apps, but smart speakers only run one app. Amazon Echo only has Alexa, Google Home only gets Google Assistant. We have no access inside of the smart speakers. We can't install any app on them.

Maybe we can get some ideas from the history of routers and the OpenWrt project. Before we have OpenWrt, routers were just black boxes. After that, we replace routers' firmware with OpenWrt, and then install a variety of apps, such as web servers, proxies, file storage and etc.

Maybe we can do the same to a smart speaker.

But it's a little bit different. Although Amazon released Echo's source code, it's extremely hard to hack a Echo device. For the 2015 and 2016 edition of the Echo, we can boot it from an external SD to hack it. For the latest Echo, it have been fixed.

For most of us, hacking an existing smart speaker is harder than making a new one. So why not make an open source smart speaker from scratch.

To find out what we need to do, we should learn how a smart speaker works.

These can be divided into 3 parts: hardware, software and document.

Hardware is kind of simple. We need a Single-Board-Computer (Raspberry Pi, ...), a mic array and a speaker. Software is the main part. Fortunately, there are lots of open source resources we can use.

Figure out what we need to do, then we can just find a way to do it.

The first prototype is made with Raspberry Pi, ReSpeaker 4 Mic Array and a 45mm Speaker. The cost is a little high.

So next step is to find some more affordable hardware. It seems NanoPi Neo Air is a good choice. It runs Armbian which is based Debian and is very similar with Raspbian.  A new mic array is being designed to reduce the cost.

Looking forward to your feedback! We can also follow or join the project on or github.