Hi, everyone! Rhasspy author here. I plan to make announcements about new versions/features of Rhasspy in this thread.
If we get a sub-topic, hopefully this thread can be moved there
Hi, everyone! Rhasspy author here. I plan to make announcements about new versions/features of Rhasspy in this thread.
If we get a sub-topic, hopefully this thread can be moved there
rhasspy-nlu
to parse sentences.ini
files and do intent recognition without need a complete Rhasspy installationapt-get install libfst-tools
and build opengrm, you can also use rhasspy-nlu
to generate ARPA language modelsWith rhasspy-nlu
, there is support for additional substitution syntax in sentences.ini
:
(downstairs | play room | kids room):den
– always output “den”turn the [bedroom]:upstairs light off
– always output “turn the upstairs light off”Since you can use this syntax in slots lists, you can get slot value synonyms:
{
"slotName": ["(value 1 | value 2 | ...):output", ...]
}
WOW!
This looks like a great project! My only wish, and this certainly isn’t a complaint…
A Google Home Mini or Echo Dot 3 can be had for $25 in the US and comes in a nice pretty (objectively) package with good microphones and decent speakers. Even if I offloaded the “processing” part to a dedicated server, I’d be hard pressed to find the parts required for the rest of the build for less than $25, and, at the lowest prices, it certainly won’t look as nice.
BUT… Rhasspy supports Remote Audio Streams. So… what would be ideal is some kind of hack for Echo/Google devices that will turn them into nothing but remote microphones/speakers all to be funneled into a central server (Rhasspy) to handle. This could be an app/skill/whatever that runs on the device (with some kind of watchdog on a server to ensure the app stays running) or a complete firmware replacement that disabled the OEM functionality of the device.
Do you know of any projects along these lines that are making any headway?
Hi @swiftlyfalling, welcome. I don’t know of any firmware projects for transforming a Mini or a Dot; seems like a good idea given the cost of the hardware. Of course, those particular pieces of hardware cost so little because of the “agreement” you enter into with Google/Amazon in order to use them
snowboy
wake word system now supports multiple wake words
sensitivity
setting is now a string, so you can pass “0.5,0.5” for jarvis.umdl
sentences.ini
(1 | 2 | 3)
will be transformed to (one:1 | two:2 | three:3)
/api/version
endpoint is now available toosentences.ini
pulled newest image, container is started, but can’t access GUI.
Traceback (most recent call last):,
File "app.py", line 14, in <module>,
from quart import (,
File "/usr/local/lib/python3.6/dist-packages/quart/__init__.py", line 4, in <module>,
from .app import Quart,
File "/usr/local/lib/python3.6/dist-packages/quart/app.py", line 16, in <module>,
from .asgi import ASGIHTTPConnection, ASGIWebsocketConnection,
File "/usr/local/lib/python3.6/dist-packages/quart/asgi.py", line 5, in <module>,
from .datastructures import CIMultiDict,
File "/usr/local/lib/python3.6/dist-packages/quart/datastructures.py", line 47, in <module>,
class CIMultiDict(_WerkzeugMultidictMixin, AIOCIMultiDict): # type: ignore,
TypeError: type 'multidict._multidict.CIMultiDict' is not an acceptable base type
Did something change significantly enough that I need to clear my configuration folder and start from scratch? (backing up sentences.ini and custom words is probably all I really need).
Nope, create a new empty configuration directory and spun up a new container - same error.
Let me know what testing I can do for you to help figure out the problem.
Thanks,
DeadEnd
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.
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.
Lots of improvements in version 2.4.14!
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.
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.
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.
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.
The documentation now contains a tutorials and a reference section.
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.
armv6l
Docker image?)_text
and _raw_text
slots to Home Assistant events
profile.json
because I keep forgetting dangling commasngrammake
errors during trainingMost 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