Snips "cancel" word not recognized

Hi,

Why does my snips installation on a Raspi not recognize the cancel words defined in the json files in /usr/share/snips/assistant/custom_dialogue/speak/

Actually my system is set to “de” language so de.json should be in effect. I even know it is because there’s also the “general_misunderstanding” which is sometimes played. But the “confirmation_cancel_pattern” which looks like this seems to be completely ignored:

    "confirmation_cancel_pattern": "(?i)(?:\\W+|^)(?:Abbruch|abbrechen|brich ab|verwerfen|zur[üu]cknehmen|annullieren|stornieren|r[üu]ckbuchen|widerrufen|zur[üu]ckziehen)(?:\\W+|$)",

So either I’m too stupid that know when snips accepts a ancel word (I tried it for example with a skill that repeatdly asked for some more input) and I also tried it when it was listening for input on “Hey Snips” hotword. None of the words did actually work in any of this situations. So is this a bug in snips are just the user beeing to stupid?

Hello,

“Cancel” is detected using a regex at a system level. You can remove it from the regex file located in the /usr/share/snips/assistant/custom_dialog/speak/de.json

I don’t want to remove it at all. I’m saying it’s not working at all. At least not in json.de. Maybe it works in english I don’t know but in german it’s broken

Is nobody having problems with this? I can’t believe nobody has issues with cancel words in other languages. I didn’t even modify it, the json.de is still default and still I can’t say something simple like “cancel” or in german “stop” or is it prefixed with hey snips or something? I find it troublesome that nobody has an answer to something as simple but important as this.

Hi,

Don’t worry, I noticed the same thing with my assistant and would be glad if someone could explain how it is supposed to work or why it is not working.

I subscribed to this topic a long time ago. Since then I’m eagerly waiting for someone to come up with a solution :grinning:

Btw: I’m using Snips in German.

Works for english, I think not for other languages. We’ve made it possible in Project Alice though

Sorry to ask but you seem very experienced but what did you make possible in project alice and what is alice at all? And if I might ask as well, Do you know who was the creater of the cancel word functionality and can probably fix it?

I don’t know at all who did what in Snips, sorry. Alice is a complete framework and dev environment that wraps around Snips: Project Alice release

I have the same problem with italian language.
I hope someone at SNIPS will solve this soon (it’s more than 1 year). Probably it will be not so complex to fix…

@marcelser,

Actually, I think you need to add the corresponding word in your ASR language model so that your ASR can decode it (It is hard coded in english)

Did you try to add those words with snips-injection or in your assistant?

It is not a feature we wish to keep in this current shape, those special words sometimes get into the way for other conversational flows.

e.g. “Cancel this afternoon appointment” => Your session is cancelled, not exactly the behaviour you expect from the dialogue in this situation.

that explains why it works for me. I used the word “abbrechen” in a Timer Skill I made and it works perfectly for me. Thanks to this thread I now finally know how to remove it. I only found it in the first place because I couldnt use “Fünf Minuten Timer abbrechen” or similar.
@SakanaSan thats a problem I stumbled over at first with german gramar. There a verb like cancel can come in the last position of the sentence but the console still lets you create the intent with it included. But this intent will never work than.
Best regards Johannes

Ok, if I got you right I need to train the “cancel” word in german for the ASR. But what is snips-injection and how do I train that word and and add it to the ASR so it get’s recognized as cancel word? Maybe also SakanaSan can help to enlighten me cause he also seems to have quite some knowledge and even a working cancel word (which is puzzling me as all my language settings are set to german)

Thanks for giving a bit more precise instructions as I really don’t have a clue to do what you suggest.

@marcelser

Sure! The injection documentation is here

Either way should work I think,

  • add the german equivalent of the word cancel in an intent
  • or use the entity injection to do it live on your running assistant.

Additionally,

I am wondering if someone tried to just drop this mechanism and use a dedicated intent to cancel an ongoing dialog session.

It could also work at the cost of dealing with this intent in your action code directly.
The positive outcome is that it will be better integrated with your dialog flow.

1 Like