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

ali*_*boy 15 aws-lambda alexa-skill alexa-skills-kit amazon-echo

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

Alexa, tell Greeter to say hello
Run Code Online (Sandbox Code Playgroud)

并返回以下JSON响应:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Hello World!"
},
"card": {
  "content": "Hello World!",
  "title": "Greeter",
  "type": "Simple"
},
"shouldEndSession": true
  },
  "sessionAttributes": {}
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

我也尝试了其他教程(ChemistryFlashCards和HistoryBuff),Alexa回答说"我不确定你的意思."

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

小智 54

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

  • 我建议人们注意这一点; 我试着在一台在控制台上工作正常的设备测试一项技能3小时我的头发 - 结果就是这个问题 - 我只需要设置英语(英国)作为一种语言,因为那是我在哪里. (4认同)
  • 巴里你的传奇!那是一个小时我没有回来.. @AmanGupta尝试检查应用程序中的语言,并且技能出现在我的技能之下 (3认同)
  • 就我而言,lambda 的区域并不重要,但它要求我使用与设备语言相同的语言(英语 IN)配置交互模型。我的 lambda 仍然部署在 us-east-1 中。 (3认同)

小智 6

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

检查 Alexa 应用程序设置中的语言 -> 您的 Echo 设备 -> 语言


Dav*_*son 5

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

在此输入图像描述

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