问题
I was doing one of the tutorials (HelloWorld) to make a skill for the Echo and I followed the directions. When I tested the skill using the Service Simulator, I typed in
Alexa, tell Greeter to say hello
and that returned the following JSON response:
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Hello World!"
},
"card": {
"content": "Hello World!",
"title": "Greeter",
"type": "Simple"
},
"shouldEndSession": true
},
"sessionAttributes": {}
}
I think that is the correct output. However, when I tried testing the skill on my Echo, Alexa replies "Sorry, I didn't your question." I went on the history and Alexa interpreted my command as "alexa tell greeter to say hello." It seems that Alexa is not recognizing the skill?
I am using Amazon Lambda to execute the code, so I checked the logs and the code was not executed when I spoke the command to above.
I replaced the app_id in the javascript file to the one that corresponds to my skill. I have also put the amazon skills kit as a trigger.
I also tried the other tutorials (ChemistryFlashCards and HistoryBuff), and Alexa replies "I'm not sure what you meant by that."
Not sure what is happening! Any guidance is appreciated!!
回答1:
For your Echo / Dot / Tap device to correctly invoke your custom skill, the Language of your Interaction Model needs to match the region your lambda resource is deployed in. I had this issue, as I deployed lambda in EU-West1 (Ireland) but the default alnguage for the Interaction model is English (US). In the interaction model I added a new language of English (UK) and copied over my intents and utterances, then deleted the English US language, and my Echo Dot now correctly invoked my custom skill intents
回答2:
Have you enabled testing with your device for your skill?
Once you have this enabled, you can check if it is properly associated with your device by going to the Skills section of the Alexa app and hitting "Your Skills" to see the list of skills that your Echo recognizes. You should see your skill with a little green dev tag on it.
回答3:
Your device language and the language you are using in developer account for creating custom skills should be same. If your device is registered in English India then you have to add English india language in your custom skill.
Check language on your alexa app settings -> Your Echo device -> Language
回答4:
I was developing in default en-US language with North Virginia region (for Lambda function) but was based in India. I even tried using US address in Alexa app, but it didn't worked.
At the end I added all the english languages(en-IN, en-CA, en-GB, en-EU) and copied the model JSON file which was created for en-US. Build each one of them separately and fill the Description -> Skill Preview
details for each of them. This worked.
回答5:
One problem related to Language settings.
Correct the language settings in your Echo Device using https://alexa.amazon.in/ or alexa app. Make sure language enabled in skill and device are equal. For example, use English India.
Reenable the skill
Go to https://alexa.amazon.in/. Make sure device appears online. Disable the skill in Your Skill section. Enable it again.
This should solve the problem.
回答6:
Most of the time, you cannot open your skill because it is not the same language as your current language you set for your Amazon echo device. Then if that doesn't work, you might have not enabled testing for your skill.
Also if you want to quickly enable your skill if you haven't done so, say Alexa(or whatever your wake word is), enable
来源:https://stackoverflow.com/questions/39068523/alexa-skill-not-recognized-when-tested-on-echo