RoadTest: Matrix VOICE Dev Board
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Google home, alexa, respeaker 6 mic array
What were the biggest problems encountered?: With the material nothing, the hardest part was found a voice assistant that meets my needs.
The MATRIX Voice is a development board for building sound driven behaviors and interfaces. MATRIX Voice was built with a mission to give every maker, tinkerer, and developer around the world a complete, affordable, and user-friendly tool for simple to complex Internet of Things (IoT) voice app creation.
In this post, we will build our open source voice assistant, respectful of your privacy and compatible with our best friends Jeedom.
Before getting started, let's review what you will need:
• Raspberry Pi 3 B/B+ (Recommended) or Pi 2 Model B (Supported)
• MATRIX Voice
• Micro-USB power adapter for Raspberry Pi
• Micro SD Card (Minimum 8 GB)
• 40 pin IDE cable (Optional)
• 2*3w speaker (Optional)
• Internet connection (Ethernet or WiFi)
We start by installing raspbian stretch on our SD card using Etcher. Compatibility with raspbian Buster is not yet available. We then install the Matrix Voice and the SD card on our raspberry, just put it on the 40 pins IDE connector.
You will also need a registered snips.ai account.
Run the following commands in your Raspberry Pi's terminal to add the MATRIX repository & key and update your repository packages.
curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.matrix.one/raspbian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/matrixlabs.list
sudo apt-get update
sudo apt-get upgrade
Reboot your device.
Install the MATRIX Kernel modules. Aside from a few other changes, this allows the microphones on your MATRIX device to register as an ALSA microphone on your Raspberry Pi.
sudo apt install matrixio-kernel-modules
You will then need to reboot a second time.
Your Matrix Voice is now usable from your Raspberry. To check, run the command alsamixer and in the available map appears MATRIXIO-SOUND
Now let's go to our voice assistant. For this, we will use the sam-cli utility that will allow us to configure and monitor our voice assistant snips remotely. On your personal computer, you'll need to install Node.js as a prerequisite.
Once installed, you can install SAM into your computer with the following command.
sudo npm install -g snips-sam
Still from our personal computer, we issue the following commands:
sam connect 192.168.x.x
We replace the IP address by the IP address of our Raspberry. We enter the login and password of the Raspberry to connect.
For the installation we launch the command
After a few minutes, your snips are installed, let's go to the configuration now. It took me less than 10 minutes.
the next step is to edit the snips.toml file for configuring the mics.
On your Raspberry Pi's terminal, run the following:
sudo nano /etc/snips.toml
Scroll down to where you see [snips-audio-server] and replace
# mike = "Built-in Microphone"
with the following:
mike = "MATRIXIO-SOUND: - (hw:2,0)"
Press ctrl+x, press y, and then press the enter key to save your changes.
From our personal computer, we will configure the microphone, the speakers and check that everything works. For this we launch the command
sam setup audio
We will be able to choose among all the available equipment, the one that we want to use.
Once done, we can test the equipment independently with the commands:
sam test speaker
sam test microphone
If both commands seem to work, you've properly configured Snips.ai on your Raspberry Pi!
In case of trouble, you can in the raspi-config force the audio output to "auto".
And if for example, you like me like to use the speakers on the matrix voice and not speakers, just go to alsamixer then MATRIXIO-SOUND and change the headphone output to speakers.
You have noticed, the LED ring is present on the Matrix Voice. It would be cool to be able to use it in our interaction with our voice assistant like any commercial proprietary product.
But with the installation done by sam, snips does not use the LED ring in its interactions. To do that, we will install a skills.
And we follow the instructions, we chose Matrix Voice card and the pattern of leds, I really like the projectalice style. You are free to chose Amazon, google or a totally custom style.
Once the installation is complete, if there is no error, we have our LED ring that lights up.
For the matrix voice, I need to instal an additional library.
cd snipsLedControl_v *******
./venv/bin/python3 -m pip install matrix-lite
For my project, I modeled with the help of a friend two boxes. The first for a version with a Raspberry pi and the second for the Matrix Voice esp32 version alone or with a Raspberry pi Zero W.
To that, I add two speakers 3 W and voila for a superb effect. All plans available on thingiverse, free to you to use or modify them.
Let's get down to business, now that everything is installed, we will configure our snips to give us the time simply.
We go to our account snips.ai, we created a new wizard for which we inform the name and the language and the hotword.
It is now that we can add features by adding applications. We search and select the application "Time".
Once done, at the bottom right of the main page, we have a "Deploy assistant" button. When we click on it, we get a command to launch from our personal computer.
This command will install our wizard and the selected applications.
Once finished, we have more than to try all that. To have the debug console use command
Then pronounced the hotword here Jarvis and asked "what time is it?" He should give you the time.
If everything runs smoothly, you will see the question and the answer in the debug console.
To check if all services running use command:
If you already have Jeedom at home, good news snips is compatible with jeedom.
We start by installing the application "JeedomOfficiel" available on our account snips.ai
Subsequently, we can go further by creating a fork to add or modify features.
We do not forget to deploy our wizard with its new application on our snips with the help of the sam command seen previously.
Then, we install on our Jeedom the plugin "Snips". We install the dependencies and we inform the ip address of our snips.
Then in the "Manage" category, we click on "Load assistant" then "reload assistant without binding". If all goes well, a lot of elements appear.
A simple example to light the living room. We click on "LightsSetJedom" and we add a binding with "Attatch new binding". And we fill in as below.
The condition allows us to recover the part concerned by the request for opening of light. The action, as its name indicates, is the action to be triggered. And TTS is the answer once the action is done.
This is what gives us on the sam watch .
And here's how in a good hour, you can create your own open source connected voice assistant. Snips is very complete and you can change a lot of parameters and with Jeedom, it forms a perfect couple.