@synesthesiam Thank you!
Will wait for updates. Not so convenient without ability to speech numbers
@synesthesiam If itās not difficult, could you give some recommendations - how to organize conversation between User <-> Rhasspy <-> HA?
Just simple example:
User - āRhasspy, turn off the lights everywhere.ā
Rhasspy - āOk, but this intent requires confirmationā
User - āRhasspy, turn off the lights everywhere.ā
Rhasspy - āTurning off lights everywhere.ā
HA - light.turn_off group.all_lights
At the moment I can imagine complex configuration with HA actions like, rest_commands, turn_on/off some input_boolean and so on. And Iām not completely sure if this will work.
--------- Edit -----------
Scratch everything I said below.
I was trying to apply the settings on the Satellite, but it appears to work as stated when the volume is set or the wav is removed on the base.
The wav files and sound volume donāt apply on the individual satellite, although I had made the assumption it would since I am using a local wake word.
------ End Edit ----------
Just got a chance to try this and itās still playing. I removed the wake and recorded lines from the web UI, saved and restarted. I also tried power cycling it and verified in the configā¦
I left the error wave populated, but I donāt see it anywhere in the config.
I also noticed the overall volume including the wake sounds seems to be controlled by the volume under the audio playing section. The volume under āSoundā doesnāt seem to affect anything.
Iām making these settings on the Satellite, and the satellite is running a local wakeword / UDP.
You could do this will a Python skill or a somewhat simple NodeRED automation. Using NodeRED as an example, Iād create an intent in Rhasspy like this (oversimplified of course):
[MaybeTurnOffLights]
turn off the lights everywhere
Donāt listen for this intent in HA. Instead, just have NodeRED listen for it.
The first time NodeRED gets MaybeTurnOffLights, it sends a message to Rhasspy for TTS (maybe using /api/text-to-speech) with āOk, but this intent requires confirmationā and then sets a variable indicating itās ready for confirmation.
When the users triggers the same MaybeTurnOffLights intent, NodeRED now either sends a message directly to HA or delivers a different intent to Rhasspy (maybe using /api/handle-intent) which HA should be listening for.
Bonus points if you add a timeout to the NodeRED flow so the confirmation variable gets reset if the user doesnāt confirm within a few minutes or something
@synesthesiam Thank you for recommendations! Thinking the same way, but using pure HA
Going deep at learning how Rhasspy interacts with HA, and have a few questions:
Does MQTT has the similar to /api/listen-for-command? I know about hermes/hotword/<WAKEWORD_ID>/detected but wakeword call wake WAV Sound, /api/listen-for-command doesnāt.
Is there a way to forcefully specify intent in API call? In case if I have some logic at intent handle side and want to add slots(items) to intent handle by short phrases(listing).
When calling /api/listen-for-command you can add ?entity=<entity>&value=<value> to the URL to include a custom entity with a value that will be passed through to the intent.
Trying to use hermes/asr/startListening but canāt understand - do I need to send hermes/asr/stopListening and do I need to control - sessionId? /api/listen-for-command - looks more simple
Can I set, as example - ?intent=VacuumControl ?!
Iām looking the way to realize next logic at Rhasspy <-> HA:
ā Rhasspy, Start Vacuum cleaner (we are have intent but we need to specify it)
ā (HA answer) - Please, specify the place of cleaning
ā Rhasspy, (we do not need to say intent again, we just list places) kitchen, hall, etc
As I can imagine this - I could send api call /api/listen-for-command?intent=VacuumControl and Rhasspy, knowing about intent, waiting for only <place1> [and] [<place2>] [and] [<place3>] etc.
Continue to adjust Rhasspy for my tasks. For me doesnāt work Volume control WAV Sounds. Audio Playing Volume control works as expected. Iām using alsa. Am I doing something wrong?
I see /api/set-volume but how I can get current volume level?
I donāt have a message or API for this yet, and it can be more complex if it involves satellites. Unless you set it otherwise, all the volumes should start out at 1.0.
The volume should be between 0 and 1, so try something like 0.5.
A part of my profile below. Does WAV Sounds volume work only if Dialougue manager enabled on satellite?
0.05 - Sound volume
0.15 - Audio playing volume
Late to the party here. What can I say, real life has been quite demanding. Gave my Rhasspy nodes an update from 2.5.5 this morning. Piece of cake, took only a few minutes to download, extract, and setup. Thank you, @synesthesiam !!
Merry Christmas and Happy Holidays to everyone in the Rhasspy community!!
Iām trying to upgrade to 2.5.8 as I see the deb packages are fixed (thanks for maintaning it, and as true packages and not as an AppImage).
Iām facing an odd dependency requirement on libgfortran3 : it is not available in debian buster which have been the stable distro for a while now. The previous versions of rhasspy were depending on libgfortran4 I think, which is available on debian buster.
Is it possible to fix that dependency ?
Edit : hum, if I instruct dpkg to ignore dependency to libgfortran3 (and by the way to llvm-7-runtime that appeared with 2.5.8 too), it works. I would encourage to minimize the required dependencies (by modularizing at least) to control the āmonolithicationā of rhasspy. It is something that does not provide new features but is essential to keep a project maintainable
I may be interested in that feature (if needed to deal with two satellites hearing the same command), but Iām not able to find doc about it , could you kindly provide instructions for using it ?
Simply rename the satellites (siteIds) you wish to group with a prefix. Rhasspy will silently ignore other satellites in a group if a satellite is already active from that group. For example, your satellites could be named like so:
If you wake the kitchen satellite, then Rhasspy will ignore the living room whilst the kitchen session is active. The front bedroom will activate as normal. The back bedroom is not in a group, as it has no prefix. However, depending on proximity of the devices thereās always a chance your desired satellite is not the one that is activated, but it will then block your desired satellite from activating until the session is finished.
Donāt forget to amend the satellite siteIds on the master device!
Hello,
My Rhasspy donāt detect the group.
The group is rdc.
The satellite1 is rdc.bureau and the satellite2 is rdc.salon
Here my log, with 2 sessions (in the same second) et my configuration :
IĀ“m trying to get working in Spanish using Pocketsphinx but looks like all files are not downloading to install , and even using kaldi also does not download. Plus other problems related apparently with ASR that caused timeout problems. Wht do you suggest_ā¦ iĀ“ve tried using traditional install through debian package and docker.
Englis works nice, but looking to work in Spanish.
Your group separator value is incorrect - including the group in the separator value effectively nullifies the group. It should just be a dot, as that is the separator between the group and siteId. Change your config to this:
It turns out there were errors in both the Pocketsphinx and Kaldi Spanish download links. Iām fixing them now, and will push out an update to the Docker image and Debian files soon (Iāll post here to let you know).