Possible to have Rhasspy get secondary input after first intent recognition?


Before I dive deep into the API itself to do something manual (if possible), I wanted to ask if there’s a way for Rhasspy to prompt for secondary input. Imagine implementing something like an echo intent.

me: Hey Porcupine
me: echo what I say back to me
me: Some random sentence that hasn’t been trained or anything, just a random English sentence.
rhasspy: “Some random sentence that hasn’t been trained or anything, just a random English sentence.” (via text to speech)

What I’m looking for is a built in way to do the above, if it exists. I’m currently sending intents to home assistant, if that helps (or hurts) my chances of using something out of the box.

Hi Mike and welcome.

I have seen this discussed here previously, but have not got involved personally - however hopefully I can point you in the right direction before other more knowledgeable users respond.

My understanding is that Rhasspy is really a toolkit of voice assistant services, which you can use with your own app or several existing home automation projects (including Home Assistant). I believe that Home Assistant handles simple intents, and does not have the capability for extended dialog “out of the box” … which does not mean that it’s impossible, just requires a different approach :wink:

I believe the Rhasspy Dialog Manager see (Services - Rhasspy) is the part of most interest here; and so I suggest you do searches for keywords “dialog” and “session” for discussions which might help.

Thank you! I’ll dive into the API and see what’s possible.

Might want to check my recent post out. Not fully working but getting there.

@JoeSherman Thank you for directing me to the post. I’ll check it out.
I was able to figure something out on my own. Continuing the dialog session was straight forward! Just sent the correct json to the Hermes topic on MQTT as an intent response from Home Assistant. That allowed the Rhasspy satellite to re-prompt for more input.

HOWEVER I think a blocker for me is that I had assumed Rhasspy could just take arbitrary non-trained speech and turn it into text. That does not seem possible from what I’ve noticed.

Is there anyway to have Rhasspy understand speech that hasn’t been directly trained?


That was part of my post. I have been successful in getting Rhasspy to understand anything I say. The key is the Vosk STT server with the full english model. The responses are not recognized as valid intents so currently my setup still plays the unrecognized intent sound. But the response is handled correctly by my hermes app. Currently all it does is repeat back to you want you say and asks you to say something again. You end up in an endless conversation with Rhasspy where kit repeats the last thing you said and then asks you to say something else. If you say “No” it stops the intent handling. It certainly isn’t a useful skill yet but it does work in my setup.

Wow answering my future question from the past! I should have checked out your code before commenting. I’ll dive into it now! Thank you!