{"id":13582641,"url":"https://github.com/synesthesiam/rhasspy","last_synced_at":"2025-10-05T16:30:30.772Z","repository":{"id":46043819,"uuid":"160089646","full_name":"synesthesiam/rhasspy","owner":"synesthesiam","description":"Rhasspy voice assistant for offline home automation","archived":true,"fork":false,"pushed_at":"2020-07-30T13:50:48.000Z","size":13903,"stargazers_count":949,"open_issues_count":32,"forks_count":101,"subscribers_count":38,"default_branch":"master","last_synced_at":"2024-11-14T13:16:07.965Z","etag":null,"topics":["catalan","dutch","french","german","greek","hassio","hindi","home-assistant","intent-recognition","italian","mandarin","portuguese","russian","spanish","speech-recognition","swedish","vietnamese","voice-assistant"],"latest_commit_sha":null,"homepage":"https://rhasspy.readthedocs.io","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/synesthesiam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-02T20:27:56.000Z","updated_at":"2024-11-11T05:47:20.000Z","dependencies_parsed_at":"2022-07-18T21:34:23.855Z","dependency_job_id":null,"html_url":"https://github.com/synesthesiam/rhasspy","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synesthesiam%2Frhasspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synesthesiam%2Frhasspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synesthesiam%2Frhasspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synesthesiam%2Frhasspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/synesthesiam","download_url":"https://codeload.github.com/synesthesiam/rhasspy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235418288,"owners_count":18987130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["catalan","dutch","french","german","greek","hassio","hindi","home-assistant","intent-recognition","italian","mandarin","portuguese","russian","spanish","speech-recognition","swedish","vietnamese","voice-assistant"],"created_at":"2024-08-01T15:02:54.406Z","updated_at":"2025-10-05T16:30:29.646Z","avatar_url":"https://github.com/synesthesiam.png","language":"HTML","funding_links":[],"categories":["Uncategorized","HTML","User Interaction","Interaction"],"sub_categories":["Twitter","Acoustic User Interface","Voice User Interface"],"readme":"# Rhasspy has [moved and improved!](https://github.com/rhasspy/rhasspy)\n\nThis repository contains code for an older version of Rhasspy (2.4).\n\n---\n\nRhasspy (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).\n\n**A newer version of Rhasspy (2.5) is available at [https://github.com/rhasspy/rhasspy](https://github.com/rhasspy/rhasspy)**\n\n* [Documentation](https://rhasspy.readthedocs.io/en/v2.4.20/)\n* [Discussion](https://community.rhasspy.org)\n* [Video Introduction](https://www.youtube.com/watch?v=ijKTR_GqWwA)\n* [Hass.IO Add-On Repository](https://github.com/synesthesiam/hassio-addons)\n\nRhasspy 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.\n\nTo run Rhasspy with the English (en) profile using Docker:\n\n    docker run -d -p 12101:12101 \\\n          --restart unless-stopped \\\n          -v \"$HOME/.config/rhasspy/profiles:/profiles\" \\\n          --device /dev/snd:/dev/snd \\\n          synesthesiam/rhasspy-server:latest \\\n          --profile en \\\n          --user-profiles /profiles\n          \nThen visit the web interface at [http://localhost:12101](http://localhost:12101)\nSee the [web interface documentation](https://rhasspy.readthedocs.io/en/latest/usage/#web-interface) for a brief tour of what you can do.\n\n## Supported Languages\n\nRhasspy currently supports the following languages:\n\n* English (`en`)\n* German (`de`)\n* Spanish (`es`)\n* French (`fr`)\n* Italian (`it`)\n* Dutch (`nl`)\n* Russian (`ru`)\n* Greek (`el`)\n* Hindi (`hi`)\n* Mandarin (`zh`)\n* Vietnamese (`vi`)\n* Portuguese (`pt`)\n* Swedish (`sv`)\n* Catalan (`ca`)\n\nThe table below summarizes language support across the various supporting technologies that Rhasspy uses:\n\n| Category               | Name                                                                                  | Offline?               | en       | de       | es       | fr       | it       | nl       | ru       | el       | hi       | zh       | vi       | pt       | sv       | ca       |\n| --------               | ------                                                                                | --------               | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  | -------  |\n| **Wake Word**          | [pocketsphinx](https://rhasspy.readthedocs.io/en/latest/wake-word/#pocketsphinx)      | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; |          | \u0026#x2713; |\n|                        | [porcupine](https://rhasspy.readthedocs.io/en/latest/wake-word.md#porcupine)          | \u0026#x2713;               | \u0026#x2713; |          |          |          |          |          |          |          |          |          |          |          |          |          |\n|                        | [snowboy](https://rhasspy.readthedocs.io/en/latest/wake-word/#snowboy)                | *requires account*     | \u0026#x2713; | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   |\n|                        | [precise](https://rhasspy.readthedocs.io/en/latest/wake-word/#mycroft-precise)        | \u0026#x2713;               | \u0026#x2713; | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   | \u0026bull;   |\n| **Speech to Text**     | [pocketsphinx](https://rhasspy.readthedocs.io/en/latest/speech-to-text/#pocketsphinx) | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; |          | \u0026#x2713; |\n|                        | [kaldi](https://rhasspy.readthedocs.io/en/latest/speech-to-text/#kaldi)               | \u0026#x2713;               |          |          |          |          |          |          |          |          |          |          | \u0026#x2713; |          | \u0026#x2713; |          |\n| **Intent Recognition** | [fsticuffs](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#fsticuffs)   | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |\n|                        | [fuzzywuzzy](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#fuzzywuzzy) | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |\n|                        | [adapt](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#mycroft-adapt)   | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |\n|                        | [flair](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#flair)           | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; |          |          |          |          |          | \u0026#x2713; |          | \u0026#x2713; |\n|                        | [rasaNLU](https://rhasspy.readthedocs.io/en/latest/intent-recognition/#rasanlu)       | *needs extra software* | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |\n| **Text to Speech**     | [espeak](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#espeak)             | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |\n|                        | [flite](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#flite)               | \u0026#x2713;               | \u0026#x2713; |          |          |          |          |          |          |          | \u0026#x2713; |          |          |          |          |          |\n|                        | [picotts](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#picotts)           | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |          |          |          |          |          |          |          |          |          |\n|                        | [marytts](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#marytts)           | \u0026#x2713;               | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; |          |          |          |          |          |          |          |\n|                        | [wavenet](https://rhasspy.readthedocs.io/en/latest/text-to-speech/#google-wavenet)    |                        | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; | \u0026#x2713; |          | \u0026#x2713; | \u0026#x2713; |          |\n\n\u0026bull; - yes, but requires training/customization\n\nFor more information, please see the [documentation](https://rhasspy.readthedocs.io/).\n \n## Intended Audience\n\nRhasspy 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:\n\n1. Can function **completely disconnected from the Internet**\n2. Are entirely free/open source\n3. Work well with Home Assistant, Hass.io, and Node-RED\n\nIf 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).\n\n## Contributing\n\nFor users who are also coders, pull requests for bug fixes or new components are always welcome and much appreciated!\n\nIf you can speak/write one of the supported languages, I would love to hear your feedback about that language's profile.\nI only speak English, so I rely on users of Rhasspy (and Google Translate) to help me write example sentences and create test WAV files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynesthesiam%2Frhasspy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynesthesiam%2Frhasspy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynesthesiam%2Frhasspy/lists"}