Michael Fester 46e4f5a33e Documentation for Snips components (#2892)
* Documentation for Snips components

* Fix version

* Fix typos

* Update video link
2017-07-01 14:27:28 -07:00

3.4 KiB

layout, title, description, date, sidebar, comments, sharing, footer, logo, ha_category, ha_release
layout title description date sidebar comments sharing footer logo ha_category ha_release
page Snips Instructions how to integrate Snips within Home Assistant. 2017-06-22 12:00 true false true true snips.png Voice 0.48

The Snips Voice Platform allows users to add powerful voice assistants to their Raspberry Pi devices without compromising on Privacy. It runs 100% on-device, and does not require an Internet connection. It features Hotword Detection, Automatic Speech Recognition (ASR), Natural Language Understanding (NLU) and Dialog Management.

Snips Modules

Snips takes voice or text as input, and produces intents as output, which are explicit representations of an intention behind an utterance, and which can subsequently be used by Home Assistant to perform appropriate actions.

Snips Modules

{% linkable_title The Snips Voice Platform %}

Installation

The Snips Voice Platform is installed on Raspberry Pi with the following command:

(pi) $ curl https://install.snips.ai -sSf | sh

Creating an assistant

Snips assistants are created via the Snips Console. Once trained, the assistant should be downloaded and copied to the Raspberry Pi:

$ scp assistantproj_XXX.zip pi@pi_hostname:/home/pi/assistant.zip

and installed locally via the snips-install-assistant helper script:

(pi) $ sudo snips-install-assistant assistant.zip

Running Snips

Make sure that a microphone is plugged to the Raspberry Pi. If you are having trouble setting up audio, we have written a guide on Raspberry Pi Audio Configuration.

Start the Snips Voice Platform using the snips command:

(pi) $ snips

Snips is now ready to take voice commands from the microphone. To trigger the listening, simply say

Hey Snips

followed by a command, e.g.

Set the lights to green in the living room

We should see the transcribed phrase in the logs, as well as a properly parsed intent. The intent is published on MQTT, on the hermes/nlu/intentParsed topic. The Snips Home Assistant component subscribes to this topic, and handles the intent according to the rules defined in configuration.yaml, as explained below.

Home Assistant configuration

By default, the Snips MQTT broker runs on port 9898. We should tell Home Assistant to use this as a broker, rather than its own, by adding the following section to configuration.yaml:

mqtt:
  broker: 127.0.0.1
  port: 9898

In Home Assistant, we trigger actions based on intents produced by Snips. This is done in configuration.yaml. For instance, the following block handles ActivateLightColors intents (included in the Snips IoT intent bundle) to change light colors:

snips:
  intents:
    ActivateLightColor:
      action:
        - service: light.turn_on
          data_template:
            entity_id: light.{% raw %}{{ objectLocation | replace(" ","_") }}{% endraw %}
            color_name: {% raw %}{{ objectColor }}{% endraw %}