Getting Started with Rhasspy: Prerequisites and Setup Steps

Updated

Rhasspy is an open source, fully offline set of voice assistant services for many human languages. To get started, you need suitable hardware, an installation method, access to its web interface to download a profile, custom voice commands you author and train, and finally a connection to your home automation software via MQTT, HTTP, or Websockets. The steps below follow the official Getting Started path and note what each step produces.

Step 1: Confirm your hardware

Rhasspy's documentation lists hardware as a prerequisite before installation, covering audio input, audio output, and wake word support. Before choosing an install method, confirm you have a working microphone and speaker path for the device you plan to run Rhasspy on, since the voice pipeline depends on both.

Step 2: Choose an installation method

Rhasspy supports multiple installation methods. The documentation does not prescribe a single one here; pick the method that matches your hardware and how you want to run the service. If you are unsure, the Getting Started Guide is the reference to follow for the current options.

Step 3: Access the web interface and download a profile

Rhasspy ships with a web interface that lets you configure, program, and test your voice assistant remotely from a browser. All of the web UI's functionality is exposed in a comprehensive HTTP API, so anything you do in the browser can also be scripted.

In the web interface, download a profile. Profiles are part of Rhasspy's documented usage and are the starting point for configuring services such as audio input, audio output, wake word, command listener, speech to text, intent recognition, intent handling, and text to speech.

Step 4: Author voice commands and train

You specify voice commands in a template language. The documentation's example:

[LightState]
states = (on | off)
turn (){state} [the] light

Rhasspy turns an utterance matching this grammar into a JSON event:

{
  "text": "turn on the light",
  "intent": { "name": "LightState" },
  "slots": { "state": "on" }
}

After writing your commands, train Rhasspy so the profile picks up the new grammar. Rhasspy is optimized for pre-specified voice commands described well by a grammar, and it also supports open-ended speech recognition. For uncommon words or pronunciations, new words can be added phonetically with automated assistance.

Step 5: Connect to home automation software

Connect Rhasspy to other software such as Home Assistant or a Node-RED flow by one of three routes:

  • Sending and receiving Hermes MQTT messages
  • Using Rhasspy's HTTP API
  • Connecting a Websocket to one of Rhasspy's websocket endpoints

Rhasspy works well with Hermes protocol compatible services (Snips.AI), Home Assistant and Hass.io, Node-RED, Jeedom, and OpenHAB. Home Assistant and Hass.IO have built-in support.

Quick reference

Step Action Expected result
1 Verify microphone, speaker, wake word hardware A device that can run the voice pipeline
2 Pick an installation method Rhasspy installed and running
3 Open the web interface, download a profile A configurable profile for your services
4 Write commands in the template language, train JSON intent events from spoken commands
5 Connect via MQTT, HTTP API, or Websocket Commands trigger actions in your automation software

If you get stuck

The documentation points to the Rhasspy community site and GitHub issues for problems. The site also links a Getting Started Guide, a "Why Rhasspy?" whitepaper, and video series (including Thorsten Müller's A–M series and an in-depth series) if you prefer learning from demonstrations.