AMAZON.TIME Alexa 技能问题

AMAZON.TIME issue in Alexa Skill

{
  "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 槽中,它只 returned "00:00",有时 return 没有任何响应。 我在两个插槽上的每一步都完全相同。

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

在 Alexa Simulator 中,尝试通过语音使用,有一个麦克风图像 - 按住它 -> 然后说出你的反应 -> 然后释放麦克风图像。这将解决问题。

为什么会出现这种奇怪的行为?

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

Tell me the weather in London between 10 AM and 2 PM

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

Tell me the weather in London between ten am and two pm

根据AMAZON.TIMEdocsten am将变为10:00two pm将变为14:00。但是你输入的文本 10 AMAMAZON.TIME 来说有点奇怪,因此它无法正确识别它。

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

Alexa 内置了 using/for 语音体验,因此用语音测试它比只打字更有意义。