It looks like one of Rhasspy’s dependencies (quart
) has a dependency (multidict
) that was updated and is now incompatible. I’m forcing the older version in my requirements.txt
file for now and re-building.
ah, that makes sense - thanks for the quick reply and fix.
I’ll pull the new image when it’s finished (Docker Hub isn’t updated yet).
DeadEnd
I am checking out the repo’s and it looks like they may have fixed the error I found already in MultiDict:
https://github.com/aio-libs/multidict/issues/416
So possibly the issue is resolved, but would need to be tested (as always).
DeadEnd
Absolutely. And, in general, even in “less serious” automators (i.e. those who are happy just using whatever a Google Home can do) I’ve heard a lot of rumbling about privacy and trust issues and people wanting to get away from that. The trouble, as always, is finding a replacement.
What you’ve got here looks like a GREAT start to a replacement for the software. Now, if we can find a hardware replacement that is straight forward enough, we’ll really be on to something.
Minis and Dots alike can be used as a Bluetooth speaker. I’ve never used this functionality, but I assume to includes microphones and speakers. I wonder if a Raspberry PI running in proximity to the Minis/Dots could use a bluetooth connection to the device to be able to use its microphones and speakers. It wouldn’t turn off the default software, but, it’d be a start.
Community Site
Rhasspy now has its own Discourse site at https://community.rhasspy.org and a full category for Announcements.
I will continue to post announcements here as well, but I encourage Rhasspy users to try the new site and provide feedback. I’m hoping this will bring in people who want to use Rhasspy, but with something other than Home Assistant.
Version 2.4.14
Lots of improvements in version 2.4.14!
Split Sentences
You can now break your sentences.ini
into multiple files. Any .ini files in the intents
directory of your profile should be included when you train.
New Home Assistant Components
There is now a Home Assistant intent recognition system and text to speech system. These use your existing Home Assistant conversation
and tts
platforms. Additionally, you can use Home Assistant for speech to text like Ada does.
wakeId/siteId in intent
The wake word that triggered the current Rhasspy session and the MQTT site_id
are now included in the intent JSON (wakeId
and siteId
). These are available in the MQTT and Websocket messages as well.
MaryTTS emulation and other TTS options
Rhasspy can pretend to be a MaryTTS server. If you use the marytts component in Home Assistant, point it at your Rhasspy server (e.g., http://localhost:12101
). Rhasspy will catch any GET requests to /process
and forward them to your configured TTS system.
The /api/text-to-speech
endpoint now supports ?voice=<VOICE>
and ?language=<LANG>
query arguments that let you switch languages temporarily for one TTS call.
Documentation
The documentation now contains a tutorials and a reference section.
Version 2.4.15
I’ve pushed version 2.4.15 to Docker and the Hass.IO repository. This release mostly contains bugfixes, but there are a few new features to report.
- Preliminary support for Pi Zero
- I’ve successfully run Rhasspy on a Pi Zero (PS3 eye USB mic)!
- Only the virtual environment option is currently supported (does anyone know of a good
armv6l
Docker image?) - Kaldi is not working yet, so only profiles with Pocketsphinx will work
- Play an “error” sound when an intent isn’t recognized
- See the “Intent Recognition” section in Settings to disable this
- Customize the sound in the “Sounds” section
- Add
_text
and_raw_text
slots to Home Assistant events- Lets you access the ASR transcription in your HA automations
- Disable wake word detection while text-to-speech is speaking
- See “Text to Speech” section in the Settings tab to re-enable
- Using json5 to parse
profile.json
because I keep forgetting dangling commas - Lots of small fixes
-
ngrammake
errors during training - Pop sound with picotts
- Try to recover from failure to initialize PyAudio
- Don’t open/close microphone every wake/intent cycle
-
Most of the work since this last Rhasspy version has been on breaking it up into individual services. Once that’s complete, it will be easier to run pieces of Rhasspy across multiple devices. And, hopefully, it will be easier for developers to contribute fixes or new features
Great work, but one blocking issue is not solved here:
401 Client Error: Unauthorized for url: http://hassio/homeassistant/api/events/rhasspy_XXX
It has to do with the HASSIO_KEY var, but I was not able to solve it yet. So right now, no events will go to Home Assistant, rendering Rhasspy useless for it. There is already a github issue for it.
The same! But if you use as a workaround - URL - http://[hass.local.ip]/homeassistant and long-live generated token - everything is working!
No, because I have ssl. Tried it, But did not work
I’m sorry, @Romkabouter. I didn’t realize this hadn’t been resolved. I’ll install a fresh copy of Hass.io and see if I can re-create the problem.
I thought switching over to the HASSIO_KEY variable would have fixed it, since it seemed like the usual authentication header stopped working at some point. I wonder if there’s some extra thing I have to include in the config.json
now?
I should be able to do that
I do not know, but I have some spare time as well so I will check if I can fix it.
I have made a clean install of Hassio and installed Rhasspy from scratch (2.4.15.1)
Same issue, I could also reproduce with a small test addon with the same posting to hassio API.
I don’t know what is causing that, the code follows the documentation on this…
I wonder if they had a regression, either in code or in the docs? Either way, thanks for the update! It’s pushed to the add-on now, so let’s hope all is well
New version (2.4.15.2) works on my systems!
Version 2.4.16
Some important changes in this version of Rhasspy on the way to 2.5:
- Numbers and number ranges are now supported:
- Putting
75
in yoursentences.ini
file will produce the integer (not string) 75 in your JSON event - Putting
1..100
will generate “one” to “one hundred” for your language, and put integers in the JSON
- Putting
- Built-in and custom converters can be used to convert named entity values to something besides strings in your JSON events.
-
Slot programs were added, allowing you to generate slot values during training with a custom program. The
$rhasspy/number
program does this for number ranges (0..100
). -
$rhasspy/days
and$rhasspy/months
slots are available now for every language (days of the week, months of the year) - Lots of bug fixes and great community contributions!
This is the first step to having built-in entities available in Rhasspy. In the future, Kaldi-based profiles will be able to deal with them natively. Other speech systems, like Pocketsphinx or DeepSpeech (someday) will fall back to these new methods.
Also, a big thank you to all of the community members who have stepped up to provide technical support, bug fixes/code clean-up, and documentation/tutorials!
Version 2.4.17
This version largely addresses issues discussed here and on GitHub. The road to version 2.5 is long, but we’re slowly making it.
Added
- Button to web UI to play last recorded voice command
- Only plays the last command recorded through the web UI
- Should help debug volume issues
- RHASSPY_LOG_LEVEL environment variable
- Overrides
--log-level
command-line option - Pass “debug”, “info”, “warning”, “error”, etc.
- Overrides
- Web UI feedback during download
- Small text box with status of files downloading/extracting
- Add “asoundrc” config option to Hass.IO add-on
- When set, contents of the config setting are copied to
/root/.asoundrc
when the add-on starts
- When set, contents of the config setting are copied to
Changed
- Moved
$profile/kaldi/custom_words.txt
to$profile/kaldi_custom_words.txt
- Avoids overwriting your Kaldi custom words when re-downloading profile
- Your current file will be moved automatically. Make sure to include
kaldi_custom_words.txt
in your backups!
- Slot substitution casing is kept during training/recognition
- A slot value like
abc:AbC
wil show up asAbC
in the JSON event now
- A slot value like
- Fixed fuzzywuzzy and other intent recognizer training after addition of converters
- Fix thread max count issue
- Hide web UI alerts after 10 seconds
- Delete partially downloaded profile files (on error)
- Force slot programs to run each training cycle
- Previously, output would be cached
- Fix
_raw_text
in Hass event being same as_text
- Lets you pass open transcription text through to HA