Hi,
I am playing around a bit with Rhasspy. One major disadvantage that i see is the impossibility (or am i wrong?) of detecting 2 sentences after each other ,as if it was one sentence actually.
Taking this from the main example:
[GetTemperature]
whats the temperature
[GetTime]
what time is it
So if i say: “whats the temperature what time is it” then it only detects one intent. I do not want to create one sentence for this because my final application will have multiple intents which i want freely to combine in one long sentence.
is there a solution for this? So i am actually looking for a freely spoken sentence which can detect multiple intents.
Unfortunately not. I know it’s probably not an ideal solution for you, but you could create an intent for starting and ending a “conversation”. “Let’s chat”, or “I need you to do a few things”. You can then use continue session to ask intents one after the other until you end the conversation.
That’s an interesting idea you have stated. Would you give a simplified example to illustrate the syntax of that? At the moment I have huge problems with Rasspy understanding a sentence from 6 pieces in arbitrary order - whole intent recognition crushes… And I am searchng the soltion to this, which might be just what you have suggested.
Thanks!
@koenieboy, if you use Home Assistant with Rhasspy then I recently did something similar that might fit your needs?
Essentially for every intent that you want to connect together, in HA make sure to end your related automation with a MQTT continueSession. Once you have finished your connected chain of commands then have an automation with a MQTT endSession.
I have singular commands and connected commands so I trigger continuous mode with an intent phrase “Enter continuous mode”, say my chain of commands and then have an intent to say “Exit continuous mode”. Normal singular commands are just performed as normal.
Sorry for the delay. Am i correct that the purpose of this Continuous mode is to continue the session after the first intent is recognized, so you don’t have to repeat the wakeup word again? If so then I assume there is still some delay between the recognition of the first intent and start listening again, meaning you still cannot say "Whats the temperature, what time is it? " in one sentence for example.
(btw i am not using HA)
Regards.
I was thinking about it too. My understanding is that there should be a “preprocessor” for the intent recognition. Let’s say you define in the sentences the command marked as preprocessor, for example this way:
[command_separator]#preprocessor
and then
another way is to have reserved intent names which you only need to define and Rhasspy knows that this entent is a ‘preprocessor’ delimiter - if it is defined, use it…
So, before passing the STT result to intent recognition module, Rhasspy would run through it and separate the pieces of text into individual segments using defined delimiter. Than, you have a list of texts which could be processed individually, and resulting JSON would contain intent1, intent2…
I belive this should be marked as a feature request, or am I missing something and it is already in the Rhasspy?
I’m new to Rhasspy user and i’m digging into functionalities I’ve found how to use slots / alternatives and i’d like to say that i really love the way it works.
In my current usage, i’m using vocal assistant to push to nodered my sentences but in first place i’m interested in how rhasspy handle multiple intent in one request.
Based on that i’ve found this topic Since March 2021, is there a way to handle topic like koenieboy mentioned ?
Thanks in advance