Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/synesthesiam/rhasspy
Rhasspy voice assistant for offline home automation
https://github.com/synesthesiam/rhasspy
catalan dutch french german greek hassio hindi home-assistant intent-recognition italian mandarin portuguese russian spanish speech-recognition swedish vietnamese voice-assistant
Last synced: 2 months ago
JSON representation
Rhasspy voice assistant for offline home automation
- Host: GitHub
- URL: https://github.com/synesthesiam/rhasspy
- Owner: synesthesiam
- License: mit
- Archived: true
- Created: 2018-12-02T20:27:56.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-30T13:50:48.000Z (over 4 years ago)
- Last Synced: 2024-09-26T07:31:17.945Z (3 months ago)
- Topics: catalan, dutch, french, german, greek, hassio, hindi, home-assistant, intent-recognition, italian, mandarin, portuguese, russian, spanish, speech-recognition, swedish, vietnamese, voice-assistant
- Language: HTML
- Homepage: https://rhasspy.readthedocs.io
- Size: 13.3 MB
- Stars: 944
- Watchers: 37
- Forks: 101
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
- awesome-robotic-tooling - rhasspy - Rhasspy (pronounced RAH-SPEE) is an offline, multilingual voice assistant toolkit inspired by Jasper that works well with Home Assistant, Hass.io, and Node-RED. (User Interaction / Acoustic User Interface)
- awesome-robotic-tooling - rhasspy - Rhasspy (pronounced RAH-SPEE) is an offline, multilingual voice assistant toolkit inspired by Jasper that works well with Home Assistant, Hass.io, and Node-RED. (Interaction / Voice User Interface)
README
# Rhasspy has [moved and improved!](https://github.com/rhasspy/rhasspy)
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](https://jasperproject.github.io/) that [supports many languages](#supported-languages). It works well with [Home Assistant](https://www.home-assistant.io/), [Hass.io](https://www.home-assistant.io/hassio/), and [Node-RED](https://nodered.org).
**A newer version of Rhasspy (2.5) is available at [https://github.com/rhasspy/rhasspy](https://github.com/rhasspy/rhasspy)**
* [Documentation](https://rhasspy.readthedocs.io/en/v2.4.20/)
* [Discussion](https://community.rhasspy.org)
* [Video Introduction](https://www.youtube.com/watch?v=ijKTR_GqWwA)
* [Hass.IO Add-On Repository](https://github.com/synesthesiam/hassio-addons)Rhasspy transcribes voice commands into [JSON](https://json.org) events that can trigger actions in home automation software, like [Home Assistant automations](https://www.home-assistant.io/docs/automation/trigger/#event-trigger) or [Node-RED flows](https://rhasspy.readthedocs.io/en/latest/usage/#node-red). You define custom voice commands in a [profile](https://rhasspy.readthedocs.io/en/latest/profiles/) using a [specialized template syntax](https://rhasspy.readthedocs.io/en/latest/training/#sentencesini), 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](http://localhost:12101)
See the [web interface documentation](https://rhasspy.readthedocs.io/en/latest/usage/#web-interface) for a brief tour of what you can do.## Supported Languages
Rhasspy currently supports the following languages:
* English (`en`)
* German (`de`)
* Spanish (`es`)
* French (`fr`)
* Italian (`it`)
* Dutch (`nl`)
* Russian (`ru`)
* Greek (`el`)
* Hindi (`hi`)
* Mandarin (`zh`)
* Vietnamese (`vi`)
* Portuguese (`pt`)
* Swedish (`sv`)
* Catalan (`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](https://rhasspy.readthedocs.io/en/latest/wake-word/#pocketsphinx) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | ✓ |
| | [porcupine](https://rhasspy.readthedocs.io/en/latest/wake-word.md#porcupine) | ✓ | ✓ | | | | | | | | | | | | | |
| | [snowboy](https://rhasspy.readthedocs.io/en/latest/wake-word/#snowboy) | *requires account* | ✓ | • | • | • | • | • | • | • | • | • | • | • | • | • |
| | [precise](https://rhasspy.readthedocs.io/en/latest/wake-word/#mycroft-precise) | ✓ | ✓ | • | • | • | • | • | • | • | • | • | • | • | • | • |
| **Speech to Text** | [pocketsphinx](https://rhasspy.readthedocs.io/en/latest/speech-to-text/#pocketsphinx) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | ✓ |
| | [kaldi](https://rhasspy.readthedocs.io/en/latest/speech-to-text/#kaldi) | ✓ | | | | | | | | | | | ✓ | | ✓ | |
| **Intent Recognition** | [fsticuffs](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#fsticuffs) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| | [fuzzywuzzy](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#fuzzywuzzy) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| | [adapt](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#mycroft-adapt) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| | [flair](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#flair) | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | | | | | ✓ | | ✓ |
| | [rasaNLU](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#rasanlu) | *needs extra software* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| **Text to Speech** | [espeak](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#espeak) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| | [flite](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#flite) | ✓ | ✓ | | | | | | | | ✓ | | | | | |
| | [picotts](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#picotts) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | | | |
| | [marytts](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#marytts) | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | | | | | | | |
| | [wavenet](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#google-wavenet) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | ✓ | |• - yes, but requires training/customization
For more information, please see the [documentation](https://rhasspy.readthedocs.io/).
## Intended AudienceRhasspy 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:
1. Can function **completely disconnected from the Internet**
2. Are entirely free/open source
3. Work well with Home Assistant, Hass.io, and Node-REDIf 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](https://mycroft.ai).
## Contributing
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.