Alexa Skill中的AMAZON.TIME问题

时间:2018-12-11 02:40:21

标签: alexa alexa-slot

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

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

1 个答案:

答案 0 :(得分:1)

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

在Alexa Simulator中,尝试通过语音使用,有一个麦克风图像-按住它->然后告诉您的回复->然后释放麦克风图像。这样可以解决问题。

为什么这种奇怪的行为?

让我们看一个例子:假设您正在使用气象应用程序,并且想了解伦敦的天气,时间为上午10点至下午2点。因此,在Simulator中输入:

  

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

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

  

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

根据AMAZON.TIME docsten am将变成10:00,而two pm将变成14:00。但是您输入的文字10 AMAMAZON.TIME有点陌生,因此无法正确识别。

要使此10 AM正常运行,您需要定义自己的自定义插槽,然后在代码上手动对其进行处理。 但是,在生产中,最终用户将使用语音呼叫您的应用,因此当用户说出10 AM时,Alexa会将ten am作为广告位值发送到您的应用,并且您的应用可能会打破。因此,我推荐这种方法。

Alexa是使用/提供语音体验而构建的,因此使用语音表达对其进行测试比仅仅键入更为有意义。