Rhasspy Voice Assistant Rhasspy (ˈɹæspi) is an open source, fully offline set of voice assistant services for many human languages that works well with: Hermes protocol compatible services (Snips.AI) Home…
Rhasspy Voice Assistant

Rhasspy (ˈɹæspi) is an open source, fully offline set of [voice assistant services](#services) for [many human languages](#supported-languages) that works well with:
- Hermes protocol compatible services (Snips.AI)
- Home Assistant and Hass.io
- Node-RED
- Jeedom
- OpenHAB
ini
[LightState]
states = (on | off)
turn (){state} [the] light
and Rhasspy will produce JSON events that can trigger action in home automation software, such as a Node-RED flow:
json
{
"text": "turn on the light",
"intent": {
"name": "LightState"
},
"slots": {
"state": "on"
}
}
Rhasspy is optimized for:
- Working with external services via MQTT, HTTP, and Websockets
- Pre-specified voice commands that are described well by a grammar
- Voice commands with uncommon words or pronunciations

Learn More
* Rhasspy In-Depth Series * Getting Started Guide * Why Rhasspy? * WhitepaperWeb 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.

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:
* Sending and receiving Hermes MQTT messages
* Using Rhasspy's HTTP API
* Connecting a Websocket to one of Rhasspy's websocket
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:
- English (
en)
- German (Deutsch,
de)
- Spanish (Español,
es)
- French (Français,
fr)
- Italian (Italiano,
it)
- Dutch (Nederlands,
nl)
- Russian (Русский,
ru)
- Greek (Ελληνικά,
el)
- Hindi (Devanagari,
hi)
- Mandarin (中文,
zh)
- Vietnamese (
vi)
- Portuguese (Português,
pt)
- Swedish (
sv)
- Catalan (
ca)
- Czech (
cs)
- Polish (
pl)
Services
As of version 2.5, Rhasspy is composed of independent services that coordinate over MQTT using a superset of the Hermes protocol.

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](docs/contributing.md), both as a developer and a non-developer.

---
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 |  |  |  |
| rhasspy-asr |  |  |  |
| rhasspy-asr-deepspeech |  |  | 
| rhasspy-asr-deepspeech-hermes |  |  | 
| rhasspy-asr-kaldi |  |  |  |
| rhasspy-asr-kaldi-hermes |  |  |  |
| rhasspy-asr-pocketsphinx |  |  |  |
| rhasspy-asr-pocketsphinx-hermes |  |  |  |
| rhasspy-client |  |  |  |
| rhasspy-dialogue-hermes |  |  |  |
| rhasspy-fuzzywuzzy |  |  |  |
| rhasspy-fuzzywuzzy-hermes | 
Python ★ 106 2y agoExplain → -
piper-sample-generator
Generate samples using Piper to train wake word models
Python ★ 77 4mo agoExplain → -
rhasspy-wake-raven ▣
Wake word detection engine based on Snips Personal Wakeword Detector
Python ★ 62 2y agoExplain → -
rhasspy-speech ▣
Speech-to-text system from Rhasspy
C++ ★ 57 1y agoExplain → -
rhasspy-silence ▣
Silence detection in audio stream using webrtcvad
Python ★ 49 2y agoExplain → -
openWakeWord-cpp ▣
C++ version of openWakeWord
C++ ★ 44 2y agoExplain → -
pymicro-vad
Self-contained voice activity detector
C++ ★ 37 29d agoExplain → -
rhasspy-junior ▣
Simplified voice control for Home Assistant
Python ★ 35 4y agoExplain → -
wyoming-whisper-cpp ▣
Wyoming protocol server for whisper.cpp
C++ ★ 32 2y agoExplain → -
pysilero-vad
Mike/Projects/pysilero-vad.git
C++ ★ 27 21d agoExplain → -
espeak-phonemizer ▣
Uses ctypes and libespeak-ng to transform test into IPA phonemes
Python ★ 26 2y agoExplain → -
espeak-ng ⑂ ▣
eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
C ★ 24 2y agoExplain → -
wyoming-vosk
Wyoming protocol server for the vosk speech to text system
Python ★ 22 4mo agoExplain → -
wyoming-snowboy ▣
Wyoming protocol server for snowboy wake word detection system
Python ★ 20 2y agoExplain → -
pl_deepspeech-jaco ▣
Polish profile for Rhasspy using Jaco's DeepSpeech model
Python ★ 19 5y agoExplain → -
wyoming-snd-external ▣
Wyoming protocol server that calls an external program to play audio
Python ★ 19 2y agoExplain → -
fa_kaldi-rhasspy ▣
Persian Kaldi profile for Rhasspy built from open speech data
Shell ★ 18 4y agoExplain → -
wyoming-porcupine1 ▣
Wyoming protocol server for porcupine1 wake word detection system
Python ★ 18 2y agoExplain → -
pyspeex-noise
Noise suppression and automatic gain with speex
C++ ★ 17 1mo agoExplain → -
rhasspy-hermes-app ▣
Helper library to create voice apps for Rhasspy in Python using the Hermes protocol
Python ★ 17 3y agoExplain → -
glow-speak ▣
Neural text to speech system that uses eSpeak as a text/phoneme front-end
Python ★ 16 4y agoExplain → -
rhasspy-asr-kaldi ▣
Speech to text library for Rhasspy using Kaldi
Python ★ 15 2y agoExplain → -
wyoming-mic-external ▣
Wyoming protocol server that calls an external program to get microphone input
Python ★ 15 2y agoExplain → -
piper-samples
Samples for Piper text to speech system
JavaScript ★ 14 5d agoExplain → -
wav2mel ▣
Transform audio files into mel spectrograms for text-to-speech model training
Python ★ 13 4y agoExplain → -
piper2-prototype
Prototype for Piper 2
C++ ★ 13 7mo agoExplain → -
wyoming-microwakeword
Wyoming server for microWakeWord
Python ★ 13 9mo agoExplain → -
rhasspy-nlu ▣
Natural language understanding library for Rhasspy
Python ★ 13 2y agoExplain → -
rhasspy-microphone-cli-hermes ▣
Records audio from an external program and publishes WAV chunks according to the Hermes protocol
Python ★ 12 2y agoExplain → -
rhasspy-speakers-cli-hermes ▣
MQTT service for Rhasspy audio output with external program using the Hermes protocol
Python ★ 12 2y agoExplain → -
glow-tts-train ▣
An implementation of GlowTTS designed to work with Gruut
Python ★ 12 4y agoExplain → -
larynx_old ▣
Text to speech system based on MozillaTTS and gruut
Python ★ 12 5y agoExplain → -
phonetisaurus-pypi ▣
Python wrapper for phonetisaurus grapheme to phoneme tool
Python ★ 12 5y agoExplain → -
pyopen-wakeword
Alternative Python library for openWakeWord
Python ★ 11 9mo agoExplain → -
snowman-enroll ▣
Custom wake word creation for snowboy using snowman
C++ ★ 11 2y agoExplain → -
tts-prompts ▣
Phonetically balanced text to speech sentences
★ 10 5y agoExplain → -
ipa2kaldi ▣
Tool for creating Kaldi nnet3 recipes using the International Phonetic Alphabet (IPA)
Python ★ 10 5y agoExplain → -
cs_kaldi-rhasspy ▣
Czech Kaldi profile for Rhasspy built from open speech data
Python ★ 9 5y agoExplain → -
wyoming-handle-external ▣
Wyoming protocol server that calls an external program to handle intents
Python ★ 9 2y agoExplain → -
rhasspy-satellite ▣
Collection of Rhasspy libraries for satellites only
Shell ★ 9 6y agoExplain → -
pymicro-features
Get audio features for microWakeWord and microVAD
C++ ★ 8 9mo agoExplain → -
wyoming-rhasspy-speech ▣
Wyoming protocol server for rhasspy-speech
Python ★ 8 1y agoExplain → -
kaldi-align ▣
A basic forced aligner using Kaldi and gruut
Python ★ 8 4y agoExplain → -
unicode-rbnf
A pure Python implementation of ICU's rule-based number format engine
Python ★ 7 4mo agoExplain → -
dataset-voice-kerstin ▣
Voice dataset for native female German speaker
★ 7 5y agoExplain → -
sv_kaldi-rhasspy ▣
Swedish Kaldi profile for Rhasspy built from open speech data
Python ★ 7 5y agoExplain → -
rhasspy-tts-cli-hermes ▣
MQTT service for text to speech with external program using the Hermes protocol
Shell ★ 7 5y agoExplain → -
rhasspy-client ▣
Client library for talking to remote Rhasspy server
Python ★ 7 3y agoExplain → -
voicekit-fpc ▣
False positive detector for the Voice Kit
C++ ★ 6 1y agoExplain → -
rhasspy-microphone-pyaudio-hermes ▣
MQTT service for audio input from PyAudio using Hermes protocol
Shell ★ 6 2y agoExplain → -
phonemes2ids ▣
Flexible tool for assigning integer ids to phonemes
Python ★ 6 4y agoExplain → -
fr_kaldi-rhasspy ▣
French Kaldi profile for Rhasspy built from open speech data
Python ★ 6 4y agoExplain → -
num2words ⑂ ▣
Modules to convert numbers to words. 42 --> forty-two
Python ★ 6 4y agoExplain → -
wiktionary2dict ▣
Tool for extracting IPA pronunciations from Wiktionary XML dump
Python ★ 6 5y agoExplain → -
hifi-gan-train ▣
Implementation of Hi-Fi GAN vocoder
Python ★ 6 5y agoExplain → -
it_kaldi-rhasspy ▣
Italian Kaldi profile for Rhasspy built from open speech data
Python ★ 6 5y agoExplain → -
rhasspy-asr-deepspeech-hermes ▣
MQTT service for Rhasspy using Mozilla's DeepSpeech with the Hermes protocol
Python ★ 5 2y agoExplain → -
dataset-voice-kathleen ▣
High quality recording of CMU arctic prompts by native female U.S. English speaker
★ 4 5y agoExplain → -
nl_larynx-rdh ▣
Dutch text to speech voice for Larynx built from rdh dataset
★ 4 5y agoExplain → -
wyoming-sdl2 ▣
Wyoming protocol server for audio input/output with SDL2
Python ★ 4 2y agoExplain → -
rhasspy-server-hermes ▣
Web server interface to Rhasspy with Hermes back-end
JavaScript ★ 4 3y agoExplain → -
vits-train ▣
Training for VITS text to speech system
Python ★ 4 4y agoExplain → -
TTS ⑂ ▣
🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production
★ 4 4y agoExplain → -
ar_kaldi-rhasspy ▣
Kaldi profile for Arabic trained from open speech data
Python ★ 4 5y agoExplain → -
ru_kaldi-rhasspy ▣
Russian Kaldi profile for Rhasspy built from open speech data
Python ★ 4 5y agoExplain → -
de_larynx-thorsten ▣
German voice for Larynx based on the thorsten dataset
★ 4 5y agoExplain → -
rhasspy-asr-vosk-hermes ▣
MQTT service for speech to text with Vosk using Hermes protocol
Python ★ 3 3y agoExplain → -
rhasspy-homeassistant-hermes ▣
MQTT service for handling intents using Home Assistant
Python ★ 3 3y agoExplain → -
energy-vad ▣
Energy-based voice activity detector with no dependencies
Python ★ 3 2y agoExplain → -
dataset-voice-flemishguy ▣
Voice dataset for native male Dutch speaker
★ 3 5y agoExplain → -
rhasspy-profile ▣
Python library for Rhasspy settings
Python ★ 3 2y agoExplain → -
rhasspy-rasa-nlu-hermes ▣
MQTT service for natural language understanding in Rhasspy using Rasa NLU with the Hermes protocol
Python ★ 3 3y agoExplain → -
speexdsp-cli ▣
Tiny program to filter an audio stream through speex for noise suppression
C++ ★ 3 3y agoExplain → -
vox-check ▣
Website for contributing voice recordings and vertifications
JavaScript ★ 3 3y agoExplain → -
es_deepspeech-jaco ▣
Spanish profile for Rhasspy using Jaco's DeepSpeech model
Python ★ 3 5y agoExplain → -
es_kaldi-rhasspy ▣
Spanish Kaldi profile for Rhasspy built from open speech data
Python ★ 3 5y agoExplain → -
es_larynx-css10 ▣
Spanish text to speech voice for Larynx built from CSS10 corpus
★ 3 5y agoExplain → -
rhasspy-wake-porcupine-hermes ▣
MQTT service for wake word detection using the Hermes protocol
Python ★ 2 2y agoExplain → -
dataset-voice-nathalie ▣
Voice dataset for native female Dutch speaker
★ 2 5y agoExplain → -
rhasspy-asr-pocketsphinx ▣
Speech to text for Rhasspy using Pocketsphinx
Python ★ 2 2y agoExplain → -
rhasspy-hermes ▣
Python classes for Hermes protocol
HTML ★ 2 2y agoExplain → -
models ▣
Centralized place to store model files
★ 2 3y agoExplain → -
bemused-client ▣
Streaming TFLite keyword detector
Python ★ 2 5y agoExplain → -
ru_larynx-nikolaev ▣
Russian text to speech voice for Larynx built from M-AI Labs corpus
★ 2 5y agoExplain → -
py-nanotts
Python bindings for NanoTTS (SVOX Pico)
C ★ 1 5mo agoExplain → -
addons ⑂
:heavy_plus_sign: Docker add-ons for Home Assistant
Shell ★ 1 6d agoExplain → -
nl_kaldi-rhasspy ▣
Kaldi profile for Dutch trained from open speech data
Python ★ 1 5y agoExplain → -
pyring-buffer
A pure Python ring/circular buffer for bytes
Python ★ 1 5mo agoExplain → -
rhasspy-test ▣
Batch testing for Rhasspy
Python ★ 1 5y agoExplain → -
alsa-plugins ⑂ ▣
The Advanced Linux Sound Architecture (ALSA) - plugins
★ 1 3y agoExplain → -
wyoming-opentts ▣
Wyoming protocol server for openTTS
Python ★ 1 1y agoExplain → -
rhasspy-asr-deepspeech ▣
Rhasspy wrapper for Deepspeech ASR
Python ★ 1 2y agoExplain → -
rhasspy-wake-snowboy-hermes ▣
MQTT service for wake word detection with snowboy using Hermes protocol
Python ★ 1 2y agoExplain → -
rhasspy-asr-kaldi-hermes ▣
MQTT service for speech to text with Kaldi using Hermes protocol
Python ★ 1 2y agoExplain → -
rhasspy-wake-precise-hermes ▣
MQTT wake word service for Rhasspy with Mycroft Precise using the Hermes protocol
Python ★ 1 2y agoExplain → -
rhasspy-fuzzywuzzy-hermes ▣
MQTT service for intent recognition with fuzzywuzzy using the Hermes protocol
Python ★ 1 2y agoExplain → -
rhasspy-asr ▣
Shared Python classes for speech to text
Python ★ 1 2y agoExplain → -
rhasspy-remote-http-hermes ▣
MQTT service to use remote Rhasspy server with the Hermes protocol
Python ★ 1 3y agoExplain → -
rhasspy-tag-action ▣
No description.
Python ★ 1 4y agoExplain → -
it_deepspeech-jaco ▣
Italian profile for Rhasspy using the Jaco DeepSpeech model
Python ★ 1 5y agoExplain → -
it_deepspeech-mozillaitalia ▣
Rhasspy profile for Italian based on Mozilla Italia DeepSpeech model
Python ★ 1 5y agoExplain → -
rhasspy-tts-larynx-hermes ▣
MQTT text to speech service based on Larynx using the Hermes protocol
Python ★ 1 5y agoExplain → -
rhasspy-skills ▣
Collection of custom skills for Rhasspy
Python ★ 1 6y agoExplain → -
en-us_larynx-kathleen ▣
English voice for Larynx based on the kathleen dataset
★ 1 5y agoExplain → -
rhasspy-tts-wavenet-hermes ▣
MQTT service for text to speech using Google's Wavenet and the Hermes protocol
Python ★ 1 5y agoExplain → -
mitlm ▣
Modified version of MIT language modeling toolkit
C++ ★ 1 6y agoExplain → -
rhasspy-python-template ▣
Template for Rhasspy repositories with Python code
★ 1 6y agoExplain → -
rhasspy-web-vue ▣
Vue-based web interface to Rhasspy
JavaScript ★ 1 6y agoExplain → -
audio-template-matcher ▣
No description.
Python ★ 0 1y agoExplain → -
rhasspy-snips-nlu ▣
Rhasspy wrapper for Snips NLU
Python ★ 0 2y agoExplain → -
rhasspy-supervisor ▣
Tool for generating supervisord configurations from Rhasspy profile
Python ★ 0 2y agoExplain → -
rhasspy-snips-nlu-hermes ▣
MQTT service for Rhasspy using Snips NLU with the Hermes protocol
Python ★ 0 2y agoExplain → -
rhasspy-asr-pocketsphinx-hermes ▣
MQTT service for speech to text with Pocketsphinx using Hermes protocol
Python ★ 0 2y agoExplain → -
rhasspy-nlu-hermes ▣
MQTT service for natural language understanding using the Hermes protocol
Shell ★ 0 2y agoExplain → -
rhasspy-fuzzywuzzy ▣
Intent recognition library for Rhasspy using fuzzywuzzy
Python ★ 0 2y agoExplain → -
echo-canceller ⑂ ▣
Echo Canceller, part of Voice Engine project
★ 0 3y agoExplain → -
rhasspy-dialogue-hermes ▣
MQTT service for dialogue management using the Hermes protocol
Python ★ 0 5y agoExplain → -
rhasspy-wake-raven-hermes ▣
Wake word detection service for Rhasspy using the Hermes protocol and Raven
Python ★ 0 5y agoExplain → -
rhasspy-wake-pocketsphinx-hermes ▣
MQTT service for wake work detection with Pocketsphinx using Hermes protocol
Python ★ 0 5y agoExplain → -
fr_deepspeech-jaco ▣
French profile for Rhasspy using Jaco's DeepSpeech model
Python ★ 0 5y agoExplain → -
de_deepspeech-jaco ▣
German profile for Rhasspy using Jaco's DeepSpeech model
Python ★ 0 5y agoExplain → -
en-us_kaldi-rhasspy ▣
Kaldi profile for U.S. English trained from open speech data
Python ★ 0 5y agoExplain → -
tacotron2-train ▣
An implementation of Tacotron2 designed to work with Gruut
Python ★ 0 5y agoExplain → -
fr_larynx-siwis ▣
French text to speech voice for Larynx built from SIWIS corpus
★ 0 5y agoExplain → -
rhasspy-update-repo-action ▣
A GitHub Action to update a Rhasspy repository from a template repository
Dockerfile ★ 0 6y agoExplain → -
fuzzywuzzy ⑂ ▣
Fuzzy String Matching in Python
Python ★ 0 6y agoExplain → -
rhasspy-g2p-hermes ▣
MQTT service for graphemes to phonemes using the Hermes protocol
Python ★ 0 6y agoExplain → -
TTS_old ⑂ ▣
:robot: :speech_balloon: Deep learning for Text to Speech (Discussion forum: https://discourse.mozilla.org/c/tts)
Jupyter Notebook ★ 0 5y agoExplain →
No repos match these filters.