Jeedom Rhasspy plugin (beta)

Last beta show intents a bit better, witch intents having callback scenario or not, and on hover, which scenario is set and its tags. Which avoid having to open each intent to check that.

Now looking for a solution to be notified when wakeword is detected so Jeedom can mute sound in the room before we start talking to rhasspy. Will help the asr greatly, do it with snips and it works great.

If Jeedom can have this notification, then next big step for the plugin will be supporting base/satellite configuration when things get sorted on rhasspy side :wink:

1 Like

Hi,

Just published a new beta of the Jeedom plugin.

Some bugfix on filter jeedom intent option, better UI (intents now in groups like scenarios, and some minor stuff).

And new option to set two variables rhasspyWakeWord / rhasspyWakeSiteId when rhasspy detect wakeword ! This allow you to start a scenario when wakeword is detected, to mute music for example when you are talking to rhasspy. Many thanks @synesthesiam for this !

:grin:

2 Likes

New beta

Automatically configure Rhasspy profile from the plugin

1 Like

@KiboOst , thanks for this plugn :slight_smile: I didn’t test it as I didn’t migrate from Snips to Rhasspy. About this migration, do you have a quick tutorial, some tips, or whatever, to easily migrate from Snips to Rhasspy

New Beta

  • You can set a minimal confidence for each intent (you can of course always let it to 0 and check it in the scenario)
  • Summary view for mass editing intents

:wink:

I finally got my rpi zero and got a satellite working. Not so easy on a pi 0 buster but all works fine now.
So I’ve integrated satellites into the plugin.

They are automatically created once you ask something on one of them. Indeed when one device post an intent to Jeedom I can get its IP inside Jeedom and create the device. But I don’t have its port so I create it with default 12101 port. Let’s see in the future if we can get all devices from a master endpoint or such.

Capture

All works nice, scenario can answer with tts on the satellite where the intent was asked :+1:

Just for fun:

  • top: my jeedom alpha, on which I develop plugins and the Jeedom core V4 :wink:
  • Bottom left : rhasspy master, with docker container. It handle all asr/nlu/intents and such (picoTTS, kaldi)
  • Bottom right : rpi 0WH, rhasspy venv with only wakeword and TTS.
    Both with HermesLedControl and custom snowboy

Not sure I will publish this beta, as I prefer waiting for the next full hermes/services rhasspy ! I guess I will have to re-install everything to test and adapt the plugin.
Hope all hermes topics will be published like snips/amice to HermesLedControl can finally work as advertise. I also have a rhasspy_logger that listen to MQTT topics to log wake/think/speak for entire system (master+sats). Works perfect with snips, so will all mqtt topics it will works the same with rhasspy.

With next Rhasspy big step, this plugin could go to stable version soon :beers:

I have written several tools beside the plugin that everyone could benefit. Once all this is stable I will write some doc and share everything.

  • Rhasspy batcher : python tool to batch test intents after a new training
  • Rhasspy logger : python tool that listen mqtt and write a log file with wakewords, thinking / intents recognized, speak so you can read/show it anywhere and keep history of master/satellites interactions.
  • Snowboy custom wake tool : python tool to record samples and generate pmdl file.
  • For jeedom users, a way to handle intents with python directly inside Jeedom.
    And different tips here and there :innocent:

@synesthesiam the ball is in your court :rofl: Give us full standard hermes topics and rhasspy-satellite container :hugs:

4 Likes

I use venv and had to edit some file to get snowboy. There are other subject for this, which isn’t related to the plugin itself :wink:

Many thanks, I will search for the other threads.
Also, delete my post.

New beta

Satellites can now be added manually.
Each device, being master or a satellite, have a set of buttons to automatically edit rhasspy profile, open interface, test tts etc.

1 Like

Iya,

New beta, supporting english language :wink:

Still waiting for Rhasspy 2.5 to fully test/support it before stable version :hugs:

3 Likes

@KiboOst has been my #1 v2.5 tester so far!

2 Likes

Hi,

I just posted a new plugin beta version.

It is now english ready for english jeedoms.

Attention : this beta now support only Rhasspy v2.5 and up !

2 Likes

Wow, not updated this topic for a while.

I must say I have a bit out of Rhasspy lately, covid situation, other stuff to do etc.

Since a few weeks, I’m back trying to replace my Snips production assistant by Rhasspy :+1:

On the Jeedom Rhasspy plugin side:

  • It has been published to stable (for a while now, sorry not mentionning it here), and ever used by around 300 persons :hugs:
  • It supports since May, sending a TTS sentence to multiple devices all at once
  • Now have ledOn / ledOff commands for those having HLC !
  • New SetVolume command (between 0 and 1) to follow rhasspy 2.5.8!
  • Just added new repeatTTS command. So you can do an intent to repeat what rhasspy said, and just call this command in your scenario

repeatTTS in only in the last beta right now.

Simple intent for repeat:

[repeat]
tu peux répéter
qu'est-ce que tu a dit
répÚte s'il te plait
peux tu répéter

Finally, just a note to say that jeeRhasspy fully support Jeedom Core v4.0 and v4.1 (even next one :speak_no_evil:) and I’m not able to test it on Jeedom v3. It shouldwork, but I won’t spend time on Jeedom v3 anymore.

Once more, many thanks to @synesthesiam and everyone working on this wonderful assistant!

:wink:

5 Likes

Hello @KiboOst, thanks a lot for your great job on this plugin :slight_smile:
I just migrated from Snips to Rhasspy.
I am not using any custom wakeword and with Rhasspy I didn’t find any wakeword engine working as good as snips hotword 

So I install Rhasspy on Docker and I also install snips-satellite package on docker to handle wakeword engine.
All is working fine except the ASK function because my snips-satellite cannot be declare as a satellite in jeerhasspy . I see in jeerhasspy logs that you are using Rhasspy HTTP API .
I am not sure but may be if your plugin used the MQTT websocket it will work ?

Hi,
Indeed jeerhasspy plugin won’t work with a snips satellite. It doesn’t install any dependency and doesn’t listen on mqtt.

Maybe you could try a plugin such a jmqtt but you would handle that with a code block I guess, making your own message on right mqtt topics to handle that. A starting point could be the snips plugin.

Rhasspy provide a lot of http handler/endpoints which allow the jeerhasspy plugin to stay dependancyless, being very simple and not requiring any daemon running, which is a strong point I think.

Thanks for your feedback :slightly_smiling_face:
I am not skilled enough to do such integration but thanks for the suggestion !

Rhasspy provide a lot of http handler/endpoints which allow the jeerhasspy plugin to stay dependancyless, being very simple and not requiring any daemon running, which is a strong point I think.

Make sense ! :slightly_smiling_face:

This is not the topic ofthis thred but did you manage to find a suitable wakeword engine to put rhasspy in production ?
I tested Raven with 3 reccords of “hey snips” but it works 1 in 10 and wake up when I don’t ask him 

Snowboy no more usable 


Raven with thraa custom wakeword actually works pretty well yes. After tunning settings (there is some bug on global/per wakewords parameters).

Raven in production

Only problem preventing me to put rhasspy in production actually is the inability to recognize anything or even stop listening with bakground music once the wakeword has been recognized.

Hope @synesthesiam and other sound gurus are working on this, because apart this, all is just awesome.

Recognize command with music

1 Like

I finally manage to achive what I want to do :slight_smile: (just need to perform some more tests to validate it)
I manage (via asound.conf) to share my microphone between my rhasspy docker’s container and my snips-satellite docker’s container
By that way, I can use Snips wakeword engine and, when I want to use a #[Rhasspy-Intents][TTS-#profile#][Ask]# command, the answer is recorded via Rhasspy

One question @KiboOst, when a ASK is awaiting an answer there is no “beep” sound is it an expected behanioour ?

Hi, just a word to say that jeeRhasspy beta has receive an update to supporte Jeedom v4.2 table display mode.

Here is a subject about coming v4.2 : https://community.jeedom.com/t/teasing-core-v4-2/49539

:beers:

4 Likes

New beta with new function for sentence string to vocal one.

For example, if rhasspy profil is french it will transform:

La temperature est de -9.8 degrés

To

La temperature est de moins 9 virgule 8 degrés

If other languages needs such transformations, let me know :wink: