The place to start making technology disappear ⛳️
This guide will get you started building with the Voice Interaction Development Kit from 3 entry points. If you are an end-user of our technology, you may focus on the General Software Setup and Satellite Setup section only. If you’d like to join the Snips community as a developer, we suggest carefully going through all the mentioned references within the Develop your Snips App section.
The Voice Interaction Base Kit and Voice Interaction Satellite Kit both come with included Raspberry Pis, all the necessary software, and the latest Raspbian installed. That means that you can start to interact with your kit once it has been plugged into a power source.
The default assistant is in English with two demo apps pre-installed: indoor environment and relay switch. The indoor environment app shares the air temperature and humidity in your current environment, based on the Grove SHT31 module. The relay switch app lets you control anything that is connected to the Grove relay module.
To query the indoor environment:
"Hey Snips, what's the temperature in the room?"
"Hey Snips, what's the humidity in the room?"
The temperature unit is configurable between Celsius and Fahrenheit when installed using sam.
To control the relay switch:
"Hey Snips, please switch on the relay!"
"Hey Snips, please turn off the tv"
The relay intents are designed with two slots,
house_room. This demo action code will use none of them, it will only control the relay connected to its own on/off.
This section addresses the key considerations when developing with the Snips platform. Of course, the kit can be assembled to work without any software setup.
Voice Interaction Base Kit
Voice Interaction Satellite Kit
To move forward, we will need to log in to the Raspberry Pi system. This can be achieved using an external HDMI screen and keyboard. However, we would recommend using
ssh commands through the network, which doesn’t require anything other than your personal laptop.
ssh service is enabled by default. So the only requirement is to give a correct wifi
password to the Raspberry Pi. To achieve this, power off the Raspberry Pi and then remove the SD card. Connect this card to your personal laptop by using an embedded/ external SD card reader.
Once it's plugged in, you should be able to see a
boot partition (whether using Linux or Windows). Simply create a file and name it with
wpa_supplicant.conf. The following content should be filled into this file.
Once completed, re-insert the SD card into the Raspberry Pi. Plug it in and wait about 1 minute, then you should be able to log in to this Raspberry Pi by its hostname through
ssh. Depending on your kit configuration, this hostname can be
Sam (Snips Assistant Manager) is a Command Line Interface (CLI) tool we created in order to easily setup and maintain Snips software, your assistant, and your action code on Raspberry Pi and similar devices right from your computer, without having to create an SSH session and typing complex, low-level commands.
We will only partly cover sam, but there’s a specific reference written for sam here.
Open a terminal window, and enter:
sudo npm install -g snips-sam
Run the following command, sam will list all the available devices found in the local network:
The result should look like this:
Scanning Raspberry Pi devices on the network...Found 2 device:- snips-base (192.168.x.x)- snips-sat (192.168.x.x)...
Once you know the hostname or ip address of the Raspberry Pi, run:
sam connect <hostname/ip_address>
Run the following command to check the current status of Snips components:
The result should report basic information about the device and running status of Snips software.
Run the following command to update the Snips platform on your device:
Use the username
pi and password
raspberry, login to Raspberry Pi via ssh:
Then remove all the old Snips action code completely:
sudo rm -r /var/lib/snips/skills/*
From here, the old action code copies are all removed. We can logout Raspberry Pi:
Next, please refer to these steps (1 to 5) , install the latest demo assistant and its action code.
Finally, we can re-install the animation skill for ReSpeaker hat:
sam install actions -g https://github.com/snipsco/snips-skill-respeaker.git
To try more assistants, you will need to have a Snips account for the Snips Console where you can customize or create your own assistant by adding different Snips apps. The design of the Snips console is very straight forward, which means that you should be able to get up and running in no time. However, you may want to follow some instructions if you get confused with a concept from time to time. For this case, we do have a user guide for the Snips Console, accessible here.
For the following steps, we assume that you have already played with the Console and built your own assistant.
To deploy an assistant, run the following command:
sam install assistant
Sam will list all the available assistants under your account. Choose the one you wish to try and press
[Enter]. Once the target assistant is successfully installed, you may be asked to fill in some config parameters, like the API key for a connected application. If you don't know the parameters, you can just leave this empty. This value can be changed in the config.ini file in the app folder: `/var/lib/snips/skills/.
Run the following command:
This will give you a real-time feedback of information parsing.
Our full step-by-step guide can be found here.
Since different Snips devices can be connected to the same MQTT bus but serve different roles, this section will walk you through how to set up multiple satellites. To set up a single satellite, refer to the detailed guide here.
The Satellite Kit comes with a default
siteId, which is called
default-sat. Normally if the hostname of the base device is not changed (by default it is
snips-base), the satellite should work once connected to the network. However, this also means that if there are several Satellite Kits connected to the same Base Kit, they all have the same
To change this, log into the base device through
ssh and then enter:
sudo nano /etc/snips.toml
[snips-audio-server] section, change
bind = "default-sat@mqtt" to
bind = "<You_defiend_site_id>@mqtt" so that you can give a new
siteId referring to the location of this device. For example:
Also under the
[snips-hotword] section, change
audio = ["<You_defiend_site_id>@mqtt"] where you should enter the
siteId you've just defined.
We can use sam to install an action onto a Snips device, as previously mentioned. But the fact is that most of the apps are configured to run on a base device by default.
In order to install apps on the satellite, fill the correct config option when asked by sam. For example, a typical difference is that on the base device, we usually use
localhost as the MQTT hostname. Change this value to the hostname of the base device that can be identified in the local network for the satellite.
If you are more than just curious about how to use Snips as a new technology at home, and you have a passion for building something using this technology, Snips wants you!
For a more detailed description about the demo assistant action code, please consult this repository.
For more detailed documentation/information, please reach out our on Developer Center.
For a discussion about your idea/suggestion, please reach out our on forum.