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

Alexa Skill not recognized when tested on 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 回复 "Sorry, I didn't your question." 我继续查看历史,Alexa 将我的命令解释为 "alexa tell greeter to say hello." Alexa 似乎没有识别该技能?

我正在使用 Amazon Lambda 来执行代码,所以我检查了日志,当我向上面说出命令时代码没有被执行。

我把javascript文件中的app_id替换成了我技能对应的那个。我还将亚马逊技能套件作为触发器。

我也尝试了其他教程(ChemistryFlashCards 和 HistoryBuff),Alexa 回复了 "I'm not sure what you meant by that."

不确定发生了什么!感谢任何指导!!

您是否启用了使用您的设备测试您的技能?

启用此功能后,您可以通过转到 Alexa 应用程序的“技能”部分并点击 "Your Skills" 查看 Echo 识别的技能列表来检查它是否与您的设备正确关联。你应该看到你的技能上面有一个绿色的开发标签。

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

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

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

我在北弗吉尼亚地区(用于 Lambda 函数)使用默认的 en-US 语言进行开发,但总部设在印度。我什至尝试在 Alexa 应用程序中使用美国地址,但没有成功。

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

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

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

重新启用技能

前往 https://alexa.amazon.in/。确保设备显示在线。在你的技能部分禁用该技能。再次启用它。

这应该可以解决问题。

大多数情况下,您无法打开您的技能,因为它与您为亚马逊回声设备设置的当前语言不同。然后,如果这不起作用,则您可能没有为您的技能启用测试。

此外,如果您想快速启用您的技能(如果您尚未启用),请说 Alexa(或您的唤醒词是什么),启用

我使用下面的 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.