在Echo上测试时,Alexa Skill无法识别

时间:2016-08-21 20:22:45

标签: aws-lambda alexa-skills-kit alexa-skill amazon-echo

我正在做其中一个教程(HelloWorld)为Echo制作技能,我按照指示操​​作。当我使用服务模拟器测试技能时,我输入了

Alexa, tell Greeter to say hello

并返回以下JSON响应:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Hello World!"
},
"card": {
  "content": "Hello World!",
  "title": "Greeter",
  "type": "Simple"
},
"shouldEndSession": true
  },
  "sessionAttributes": {}
}

我认为这是正确的输出。然而,当我尝试在我的Echo上测试技能时,Alexa回答说#34;抱歉,我没有回答你的问题。"我继续了历史,Alexa将我的命令解释为" alexa告诉greeter打个招呼。"似乎Alexa没有认识到这项技能?

我正在使用Amazon Lambda来执行代码,因此我检查了日志,并且当我向上面讲述命令时代码未执行。

我将javascript文件中的app_id替换为与我的技能相对应的app_id。我也把亚马逊技能套件作为触发器。

我还尝试了其他教程(ChemistryFlashCards和HistoryBuff),Alexa回复了#34;我不确定你的意思。"

不确定发生了什么!任何指导表示赞赏!!

7 个答案:

答案 0 :(得分:50)

为了让您的Echo / Dot / Tap设备正确调用您的自定义技能,您的交互模型的语言需要与您的lambda资源部署的区域相匹配。我有这个问题,因为我在EU-West1中部署了lambda(爱尔兰)但是交互模型的默认语言是英语(美国)。在交互模型中,我添加了一种新的英语(英语)语言并复制了我的意图和话语,然后删除了英语美国语言,我的Echo Dot现在正确地调用了我的自定义技能意图

答案 1 :(得分:5)

您是否已根据自己的技能启用了设备测试?

enter image description here

启用此功能后,您可以转到Alexa应用的“技能”部分,然后按“"您的技能”,然后检查它是否与您的设备正确关联。查看Echo识别的技能列表。你应该看到你的技能上带有一点绿色开发标记。

答案 2 :(得分:3)

您的设备语言和您在开发者帐户中用于创建自定义技能的语言应该相同。如果您的设备在英语印度注册,那么您必须在自定义技能中添加英语印度语。

检查您的alexa应用设置上的语言 - >您的回声设备 - >语言

答案 3 :(得分:0)

我正在使用默认的美国英语语言在北弗吉尼亚州进行开发(用于Lambda函数),但是居住在印度。我什至尝试在Alexa应用程序中使用美国地址,但没有成功。

最后,我添加了所有英语(en-IN,en-CA,en-GB,en-EU),并复制了为en-US创建的模型JSON文件。分别构建它们中的每一个,并为它们中的每个填充Description -> Skill Preview详细信息。这行得通。

答案 4 :(得分:0)

与语言设置有关的一个问题。

使用https://alexa.amazon.in/或alexa应用程序更正Echo设备中的语言设置。确保技能和设备中启用的语言相等。例如,使用英语印度。

重新启用技能

转到https://alexa.amazon.in/。确保设备在线显示。在“技能”部分中禁用该技能。再次启用它。

这应该可以解决问题。

答案 5 :(得分:0)

大多数时候,您无法打开技能,因为它与您为Amazon echo设备设置的当前语言不同。然后,如果这不起作用,则您可能尚未启用技能测试。

如果您还想快速启用自己的技能,也可以说Alexa(或其他唤醒词),启用

答案 6 :(得分:0)

我使用下面的5点检查列表,它始终有效:

1. Under Alexa Language Settings, add all the languages like English-US and English-IN that your Echo devices are likely to be configured with.
2. Freshly build the interaction model and deploy again.
3. Tell Alexa to ignore the Alexa-hosted skill: Instead of its auto-generated lambda code, it should use the external custom lambda that you created.
4. Ensure that the service end point is correct: Under the AWS Lambda ARN, enter your custom lambda ARN for each and every region you will be invoking the skill.
5. In the Alexa simulator, select all the languages one by one in the drop down and test them individually.