Rhasspy Announcements

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.

1 Like

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 should have listened to @koan and set up continuous integration :man_facepalming:

2 Likes

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.

1 Like

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.

3 Likes

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.

3 Likes

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 :slight_smile:

3 Likes

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!

1 Like

Could you, please, add a changelog on Hass.io add-on detail page! Like here!

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 :+1:

1 Like

I do not know, but I have some spare time as well so I will check if I can fix it.

1 Like

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…

1 Like

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 :slight_smile:

New version (2.4.15.2) works on my systems!

2 Likes

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 your sentences.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
  • 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! :clap:

4 Likes

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.
  • 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

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 as AbC in the JSON event now
  • 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
5 Likes