This repository contains code for an older version of Rhasspy (2.4).
Rhasspy (pronounced RAH-SPEE) is an offline voice assistant toolkit inspired by Jasper that supports many languages. It works well with Home Assistant, Hass.io, and Node-RED.
A newer version of Rhasspy (2.5) is available at https://github.com/rhasspy/rhasspy
Rhasspy transcribes voice commands into JSON events that can trigger actions in home automation software, like Home Assistant automations or Node-RED flows. You define custom voice commands in a profile using a specialized template syntax, and Rhasspy takes care of the rest.
To run Rhasspy with the English (en) profile using Docker:
docker run -d -p 12101:12101 \
--restart unless-stopped \
-v "$HOME/.config/rhasspy/profiles:/profiles" \
--device /dev/snd:/dev/snd \
synesthesiam/rhasspy-server:latest \
--profile en \
--user-profiles /profiles
Then visit the web interface at http://localhost:12101 See the web interface documentation for a brief tour of what you can do.
Rhasspy currently supports the following languages:
en
)de
)es
)fr
)it
)nl
)ru
)el
)hi
)zh
)vi
)pt
)sv
)ca
)The table below summarizes language support across the various supporting technologies that Rhasspy uses:
Category | Name | Offline? | en | de | es | fr | it | nl | ru | el | hi | zh | vi | pt | sv | ca |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Wake Word | pocketsphinx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
porcupine | ✓ | ✓ | ||||||||||||||
snowboy | requires account | ✓ | • | • | • | • | • | • | • | • | • | • | • | • | • | |
precise | ✓ | ✓ | • | • | • | • | • | • | • | • | • | • | • | • | • | |
Speech to Text | pocketsphinx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
kaldi | ✓ | ✓ | ✓ | |||||||||||||
Intent Recognition | fsticuffs | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
fuzzywuzzy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
adapt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
flair | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||
rasaNLU | needs extra software | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Text to Speech | espeak | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
flite | ✓ | ✓ | ✓ | |||||||||||||
picotts | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
marytts | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||||||
wavenet | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
• - yes, but requires training/customization
For more information, please see the documentation.
Rhasspy is intended for advanced users that want to have a voice interface to Home Assistant, but value privacy and freedom above all else. There are many other voice assistants, but none (to my knowledge) that:
If you feel comfortable sending your voice commands through the Internet for someone else to process, or are not comfortable with rolling your own Home Assistant automations to handle intents, I recommend taking a look at Mycroft.
For users who are also coders, pull requests for bug fixes or new components are always welcome and much appreciated!
If you can speak/write one of the supported languages, I would love to hear your feedback about that language's profile. I only speak English, so I rely on users of Rhasspy (and Google Translate) to help me write example sentences and create test WAV files.