Mixing lot of intents/slots feedback


User of Snips for more than a year, I have it running with lot of different slots, intents and sentences to handle lot of different tasks, and we it everyday in base/satellite config with custom hotword for each one of us in house so I can treat intents contextually knowing who ask.

I have a bug that actually prevent me from using more than two intents, so I can’t test it really.
See: https://github.com/synesthesiam/rhasspy/issues/86

So I would appreciate feddback from people using it with lot of different slots/intents, to see if it handle well intent recognition ?

I had done a tool for snips that allow me to test around 50 sentences and report me false intents recognotion, and got 100% positive results with snips. I have redone exact same slots on rhasspy and wait for a fix to do the same with my intents. I will write then same tool, as rhasspy ever have /api/text-to-intent to do it. This /api/xx is really powerfull and was really lacking on snips.

So, any feedback on this would help :wink: Hope being able to test that soon myself.

I have about 30-35 intents (ported from Snips for now… the final assistant will have around 60). About 15 different slots. All splitted into multiple files (intents and slots)

I too use a custom testing tool to evaluate the migration from Snips to Rhasspy. I still have some issue with intents that have too many or too few variations than others (they biase the language model). I’m hoping that the use of a system like Kaldi GrammarFST could help solve this (@synesthesiam is aware of this). If you intents are « balanced » it should work pretty well.

I had to tweak the Kaldi decode.sh config to improve both transcription precision and speed, see:

Hope this helps.

Sorry if I am missing something obvious, but how do you define multiple slots in Rhasspy ?
For example with snips I can do: turn off A and B. Or check the status of A and B.

turn off ($slotA){a} and ($slotA){b}

Snips seems to do an interesting thing in their slot FST. It looks like the values are duplicated so you can say 2 values one after the other… I do not understood why though… maybe for this kind of intent?

See here: Multiple slots handling

Answering myself…

I have set all my snips intents into rhasspy (apart a few needing duration, datetime, number etc).

It was quite easy to get the syntax and set intent ini file. Takes a lot less sentences (well, dynamic one ok) than in snips.
Separated intents and slots file are a real plus now (Would be nice to have slots separated in interface like sentences).

I must say I’m a lot more confident now, as I have very good match for intents and slots result. I can do nearly all I do with snips with rhasspy and Jeedom plugin (waiting for wakeword detected notification).

I just did a getWeather intent to get wheater prevision tomorrow, in two days, or next weekend. Did the OpenWeatherMap in a jeedom scenario with php (got it as a python app with snips), no problem.
But I did add a slot with localities : it is 2367 localities ! My training time bumped for 8sec to around 30sec, my custom word, dictionnay and such files have of course bumped a lot, but doesn’t seems to disrupt rhasspy ! Will try to ask more things to us, as I do a lot of testing with code, but asr seems pretty good.

What I miss now to completely replace my snips solution, even if I know it will take time:

  • A post event to url on wakeword detection. Will allow jeedom plugin to mute sound before taking.
  • Builtins slots. duration, datetime, year, number, age. This will be a strong but difficult part I think !
  • Base / Satellite, with easy setup/configuration, if possible satellite on pi0.
  • LED control. But if base/satellite goes to mqtt, we could fork it to subscribe to rhasspy topics and get it working without much effort.

Anyway, what a good job on Rhasspy !
Still a long road to beat snips, but you are not a medium team which get 37M$ … :rofl: Never understood why someone invest so much in it but that’s another story … Write IA on anything and it attract M$ :astonished:

Keep up the good job dudes !
I have a complete testing solution, jeedom/rhasspy. Will order a few rpi0 and respeaker to test even more in the future, keeping my snips into production right now. If I can help in anyway, would be with pleasure :wink:

Let’s see where the future drive rhasspy !

:beers: :+1: