What Is Rhasspy and What Does It Do?
Updated
Rhasspy is an open source, fully offline set of voice assistant services for many human languages. It is a good fit if you want to define voice commands in a template language, run speech processing locally, and send the results as JSON events to home automation software such as Home Assistant, Node-RED, Jeedom, or OpenHAB. It also works with Hermes protocol-compatible services and exposes its functionality through MQTT, HTTP, and WebSockets.
How Rhasspy turns speech into actions
Rhasspy is built around pre-specified voice commands described by a grammar. You write commands in a template language, and Rhasspy produces JSON events that can trigger actions elsewhere.
For example, a command template can define a light state:
[LightState]
states = (on | off)
turn (){state} [the] light
When the spoken phrase is “turn on the light,” Rhasspy produces an event like:
{
"text": "turn on the light",
"intent": {
"name": "LightState"
},
"slots": {
"state": "on"
}
}
That JSON can then trigger a Node-RED flow or another automation action. This grammar-based approach is where Rhasspy is optimized: commands that are well described by a grammar, including commands with uncommon words or pronunciations. New words can be added phonetically with automated assistance. Rhasspy also supports open-ended speech recognition, so it is not limited to fixed grammars.
What you can connect it to
Rhasspy is designed to work with external services and common home automation platforms. The documented integrations include:
- Hermes protocol-compatible services (Snips.AI)
- Home Assistant and Hass.io, which have built-in support
- Node-RED
- Jeedom
- OpenHAB
Connections can be made by sending and receiving Hermes MQTT messages, using Rhasspy’s HTTP API, or connecting a WebSocket to one of Rhasspy’s WebSocket endpoints.
How you configure and test it
Rhasspy includes 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 the same operations can be automated or integrated into other tools.
The documented getting-started flow is:
- Make sure you have the necessary hardware.
- Choose an installation method.
- Access the web interface to download a profile.
- Author your custom voice commands and train Rhasspy.
- Connect Rhasspy to other software such as Home Assistant or a Node-RED flow.
The documentation also covers services, tutorials, usage, profiles, training, hardware, audio input and output, wake word, command listener, speech to text, intent recognition, intent handling, and text to speech.
When Rhasspy is a good fit
Rhasspy is worth considering if you want an offline voice assistant stack that you control, especially when your commands can be expressed as a grammar and your automation already lives in Home Assistant, Node-RED, or a similar system. Its template-to-JSON model keeps intent handling in the software you already use, and its MQTT, HTTP, and WebSocket interfaces make integration flexible.
It may be less suitable if you expect a fully managed, cloud-based assistant with no local setup. Rhasspy requires you to choose hardware, pick an installation method, download a profile, and train your commands. The documentation points to a Getting Started Guide, a Whitepaper, community Discourse, and GitHub issues for help when problems arise.