/rhasspy

Offline private voice assistant for many human languages

Primary LanguageShellMIT LicenseMIT

Rhasspy Voice Assistant

Rhasspy 2.5 logo

Rhasspy (ɹˈæspi) is an open source, fully offline set of voice assistant services for many human languages that works well with:

You specify voice commands in a template language:

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

and Rhasspy will produce JSON events that can trigger action in home automation software, such as a Node-RED flow:

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

Rhasspy is optimized for:

Learn More

Web Interface

Rhasspy comes with a snazzy web interface that lets you configure, program, and test your voice assistant remotely from your web browser. All of the web UI's functionality is exposed in a comprehensive HTTP API.

Test page in web interface

Getting Started

Ready to try Rhasspy? Follow the steps below or check out the Getting Started Guide.

  1. Make sure you have the necessary hardware
  2. Choose an installation method
  3. Access the web interface to download a profile
  4. Author your custom voice commands and train Rhasspy
  5. Connect Rhasspy to other software like Home Assistant or a Node-RED flow by:

Getting Help

If you have problems, please stop by the Rhasspy community site or open a GitHub issue.

Supported Languages

Rhasspy supports the following languages:

Services

As of version 2.5, Rhasspy is composed of independent services that coordinate over MQTT using a superset of the Hermes protocol.

Rhasspy services

You can easily extend or replace functionality in Rhasspy by using the appropriate messages. Many of these messages can be also sent and received over the HTTP API and the Websocket API.

Intended Audience

Rhasspy is intended for savvy amateurs or advanced users that want to have a private voice interface to their chosen home automation software. There are many other voice assistants, but none (to my knowledge) that:

  1. Can function completely disconnected from the Internet
  2. Are entirely free/open source with a permissive license
  3. Work well with freely available home automation software

If you feel comfortable sending your voice commands through the Internet for someone else to process, or are not comfortable customizing software to handle intents, I recommend taking a look at Mycroft.

Contributing

Community contributions are welcomed! There are many different ways to contribute, both as a developer and a non-developer.

Open source


This project is supported by:

Development Status

The various repositories also have their own issue tracker to follow and discuss development of these specific components. Here's the status of all repositories:

Repository Tests Open issues Open pull requests
rhasspy Tests Open issues Open pull requests
rhasspy-asr Tests Open issues Open pull requests
rhasspy-asr-deepspeech Tests Open issues Open pull requests
rhasspy-asr-deepspeech-hermes Tests Open issues Open pull requests
rhasspy-asr-kaldi Tests Open issues Open pull requests
rhasspy-asr-kaldi-hermes Tests Open issues Open pull requests
rhasspy-asr-pocketsphinx Tests Open issues Open pull requests
rhasspy-asr-pocketsphinx-hermes Tests Open issues Open pull requests
rhasspy-client Tests Open issues Open pull requests
rhasspy-dialogue-hermes Tests Open issues Open pull requests
rhasspy-fuzzywuzzy Tests Open issues Open pull requests
rhasspy-fuzzywuzzy-hermes Tests Open issues Open pull requests
rhasspy-hermes Tests Open issues Open pull requests
rhasspy-hermes-app Tests Open issues Open pull requests
rhasspy-homeassistant-hermes Tests Open issues Open pull requests
rhasspy-microphone-cli-hermes Tests Open issues Open pull requests
rhasspy-microphone-pyaudio-hermes Tests Open issues Open pull requests
rhasspy-nlu Tests Open issues Open pull requests
rhasspy-nlu-hermes Tests Open issues Open pull requests
rhasspy-profile Tests Open issues Open pull requests
rhasspy-python-template Tests Open issues Open pull requests
rhasspy-rasa-nlu-hermes Tests Open issues Open pull requests
rhasspy-remote-http-hermes Tests Open issues Open pull requests
rhasspy-server-hermes Tests Open issues Open pull requests
rhasspy-silence Tests Open issues Open pull requests
rhasspy-snips-nlu Tests Open issues Open pull requests
rhasspy-snips-nlu-hermes Tests Open issues Open pull requests
rhasspy-speakers-cli-hermes Tests Open issues Open pull requests
rhasspy-supervisor Tests Open issues Open pull requests
rhasspy-tag-action Tests Open issues Open pull requests
rhasspy-tts-cli-hermes Tests Open issues Open pull requests
rhasspy-update-repo-action Tests Open issues Open pull requests
rhasspy-wake-pocketsphinx-hermes Tests Open issues Open pull requests
rhasspy-wake-porcupine-hermes Tests Open issues Open pull requests
rhasspy-wake-precise-hermes Tests Open issues Open pull requests
rhasspy-wake-raven Tests Open issues Open pull requests
rhasspy-wake-raven-hermes Tests Open issues Open pull requests
rhasspy-wake-snowboy-hermes Tests Open issues Open pull requests