Rhasspy 2.5.8 Released

Hi @nordeep, glad Larynx is working for someone :wink:

Yes, it looks like I just made a mistake with a config file for Russian. Iā€™ve fixed it on my end, and it will be in the next update.

I should be able to do that. I have some female Russian audio from the same dataset as the male audio.

Thanks! Iā€™ll try and get this updated soon. Hereā€™s the Github issue: https://github.com/rhasspy/rhasspy/issues/139

2 Likes

@synesthesiam Thank you!
Will wait for updates. Not so convenient without ability to speech numbers :grinning:

@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. :laughing:

--------- 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ā€¦

"sounds": {
"aplay": {
    "device": "default:CARD=seeed2micvoicec"
},
"recorded": "",
"system": "aplay",
"wake": ""
},

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.

1 Like

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.

  1. 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.
  2. 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 :slight_smile:

@synesthesiam Thank you for recommendations! Thinking the same way, but using pure HA :laughing:
Going deep at learning how Rhasspy interacts with HA, and have a few questions:

  1. 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.
  2. 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).
1 Like

No problem, hope I can help.

  1. Youā€™re looking for hermes/asr/startListening
  2. 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.

@synesthesiam

  1. 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 :grinning:
  2. 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

{
    "dialogue": {
        "satellite_site_ids": "default,sat1",
        "volume": "0.05"
    },
    "sounds": {
        "aplay": {
            "device": "sysdefault:CARD=Headphones",
            "volume": "0.15"
        }
    }
}

Late to the party here. :wink: 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!!

1 Like

Hello @synesthesiam,

Iā€™m trying to upgrade to 2.5.8 as I see the deb packages are fixed (thanks :slight_smile: 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 :slight_smile:

Cheers

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 :blush:, could you kindly provide instructions for using it ?

1 Like

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:

downstairs.kitchen
downstairs.living-room
upstairs.front-bedroom
back-bedroom

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! :slightly_smiling_face:

3 Likes

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 :

[DEBUG:2020-12-31 17:23:14,398] rhasspydialogue_hermes: -> DialogueSessionStarted(session_id=ā€˜rdc.salon-snowboy-2bd12d65-7d33-4cf6-a771-e2037d9a4fd6ā€™, site_id=ā€˜rdc.salonā€™, custom_data=ā€˜snowboyā€™, lang=None)
[DEBUG:2020-12-31 17:23:14,547] rhasspydialogue_hermes: -> DialogueSessionStarted(session_id=ā€˜rdc.bureau-snowboy-cd4563a6-3840-43b7-9c7c-5c34a4c1c067ā€™, site_id=ā€˜rdc.bureauā€™, custom_data=ā€˜snowboyā€™, lang=None)

"dialogue": {
    "group_separator": "rdc.",
    "satellite_site_ids": "rdc.bureau,rdc.salon",
    "system": "rhasspy"
}

Could you explain my error ?
Thanks

Hi!!.. Have a great 2021!

have problems enabling spanish support. English is perfect , but in Spanish timeout errors and NewDecoder returned -1 are killing me!.

SOme ideasā€™?.. may be fixed in next release?

Thanks!

Hi [synesthesiam]

Thanks for this great release!..

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.

Have a great 2021!

1 Like

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:

"dialogue": {
    "group_separator": ".",
    "satellite_site_ids": "rdc.bureau,rdc.salon",
    "system": "rhasspy"
}
1 Like

Hi, @chbarrer thanks for trying Rhasspy :slight_smile:

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

Hi, I just realized that for the german deepspeech the download links seem to be wrong aswell.

I am getting the following error:

DownloadFailedException: (ā€˜https://raw.githubusercontent.com/de_deepspeech-aashishag/9fe9fbd758b2f775650ad0972710256d65be1317/model/alphabet.txtā€™, ā€˜File size mismatch (got 14 byte(s), expected 338)ā€™)

Ok now i just copied the files manually from https://github.com/synesthesiam/de_deepspeech-aashishag/releases/tag/v1.0
but then I am getting time_out errors. Similar to what I have with Larynx TTS