Search code examples
javaamazon-web-servicesaws-lambdaalexa-skills-kit

Alexa does not recognize the key word for StopIntent


I have an Alexa skill in spanish. When I open the skill using the LaunchRequest, I return to the user a speech with a repromt. The user then must enter a number (utterances with an AMAZON.number slot) and then the skill will work. But I am in troubles when saying to my skill "stop" or "para" in spanish. When I say "para", my skill matches it with one of my utterances of my custom intent. In the other hand, when I say "adios" (goodbye), the skill stops.

These are my intents & utterances:

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "estado de cercanías",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": [
                        "estado de cercanías para",
                        "alexa para",
                        "para",
                        "hasta pronto",
                        "hasta luego",
                        "adios",
                        "fin",
                        "final",
                        "termina"
                    ]
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": [
                        "qué puedes hacer",
                        "qué hace esta skill",
                        "cómo funciona esto",
                        "qué se puede hacer con esta skill",
                        "ayuda"
                    ]
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": [
                        "para",
                        "hasta pronto",
                        "hasta luego",
                        "adios",
                        "fin",
                        "final",
                        "termina"
                    ]
                },
                {
                    "name": "AMAZON.NavigateHomeIntent",
                    "samples": []
                },
                {
                    "name": "ServiceStatusIntent",
                    "slots": [
                        {
                            "name": "numero",
                            "type": "AMAZON.NUMBER"
                        }
                    ],
                    "samples": [
                        "qué tal está la línea {numero}",
                        "qué sabes de la línea {numero}",
                        "qué está pasando en la línea {numero}",
                        "sucesos en la línea {numero}",
                        "qué problemas hay en la línea {numero}",
                        "problemas en la línea {numero}",
                        "cómo está la línea {numero}",
                        "estado de la línea {numero}",
                        "línea {numero}",
                        "qué ocurre en la línea {numero}",
                        "dime cómo están los trenes en la línea {numero}"
                    ]
                }
            ],
            "types": []
        }
    }
}

The skill did not pass the certification process because of this. I am not sure about if it's a problem of my interaction model or what.


Solution

  • Fixed. I was adding some utterances to AMAZON.StopIntent and AMAZON.CancelIntent (same for both). The skill did not know how to decide what intent map, and then it maps another intent wrongly.

    I removed my utterances for these intents and now everything works fine.