首页 > 解决方案 > Alexa Skill 中的 AMAZON.TIME 问题

问题描述

{
  "intents": [
    {
      "name": ... // my current intent name
      "slots": [
        {
          "name": "StartTime",
          "type": "AMAZON.TIME"
        },
        {
          "name": "EndTime",
          "type": "AMAZON.TIME"
        }
      ]
    }
  ]
}

我正在使用 AMAZON.TIME 时隙类型作为时隙。问题是在我的一个插槽中,Alexa 无法正确处理数据。详细信息 - 当我在 EndTime 时段中说“下午 1 点”时,Alexa 知道现在是“13:00”。但是,在 StartTime 时隙中,它只返回“00:00”,有时没有返回任何响应。我在两个插槽上的每一步都完全相同。

标签: alexaalexa-slot

解决方案


由于您在 Alexa 模拟器中输入文本,因此 Alexa 无法正确解析您的文本,因此无法识别您的开始时间和结束时间。

在 Alexa 模拟器中,尝试通过语音使用,有一个麦克风图像 - 按住它 -> 然后告诉你的响应 -> 然后释放麦克风图像。这将解决问题。

为什么会有这种奇怪的行为?

让我们看一个例子:假设您正在开发一个天气应用程序,并且想了解伦敦上午 10 点到下午 2 点之间的天气。所以在模拟器中你输入:

告诉我上午 10 点到下午 2 点之间伦敦的天气

现在,当您说出上述回复但现在是语音时,Alexa 会将其解释为:

告诉我上午十点到下午两点之间伦敦的天气

根据AMAZON.TIME docsten amwill become10:00并且two pmwill become 14:00。但是您输入的文字10 AM有点奇怪AMAZON.TIME,因此无法正确识别。

要使其10 AM正常工作,您需要定义自己的自定义插槽,然后手动处理您的代码。但是,在生产中,最终用户会使用语音呼叫您的应用程序,因此当用户说 时10 AM,Alexa 将ten am作为插槽值发送到您的应用程序,您的应用程序可能会中断。所以我推荐这种方法。

Alexa 是使用/用于语音体验而构建的,因此使用语音进行测试比仅仅打字更有意义。


推荐阅读