{
"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”,有时不返回任何响应。 我在两个插槽上所做的每一步都完全相同。
答案 0 :(得分:1)
由于您在Alexa Simulator中键入文本,因此Alexa无法正确解析您的文本,因此无法识别您的开始时间和结束时间。
在Alexa Simulator中,尝试通过语音使用,有一个麦克风图像-按住它->然后告诉您的回复->然后释放麦克风图像。这样可以解决问题。
为什么这种奇怪的行为?
让我们看一个例子:假设您正在使用气象应用程序,并且想了解伦敦的天气,时间为上午10点至下午2点。因此,在Simulator中输入:
告诉我伦敦的上午10点至下午2点之间的天气
现在,当您说出上述答复但现在是声音时,Alexa会将其解释为:
告诉我伦敦上午10点至下午2点之间的天气
根据AMAZON.TIME
docs,ten am
将变成10:00
,而two pm
将变成14:00
。但是您输入的文字10 AM
对AMAZON.TIME
有点陌生,因此无法正确识别。
要使此10 AM
正常运行,您需要定义自己的自定义插槽,然后在代码上手动对其进行处理。 但是,在生产中,最终用户将使用语音呼叫您的应用,因此当用户说出10 AM
时,Alexa会将ten am
作为广告位值发送到您的应用,并且您的应用可能会打破。因此,我不推荐这种方法。
Alexa是使用/提供语音体验而构建的,因此使用语音表达对其进行测试比仅仅键入更为有意义。