alexa - 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”,有时没有返回任何响应。我在两个插槽上的每一步都完全相同。
解决方案
由于您在 Alexa 模拟器中输入文本,因此 Alexa 无法正确解析您的文本,因此无法识别您的开始时间和结束时间。
在 Alexa 模拟器中,尝试通过语音使用,有一个麦克风图像 - 按住它 -> 然后告诉你的响应 -> 然后释放麦克风图像。这将解决问题。
为什么会有这种奇怪的行为?
让我们看一个例子:假设您正在开发一个天气应用程序,并且想了解伦敦上午 10 点到下午 2 点之间的天气。所以在模拟器中你输入:
告诉我上午 10 点到下午 2 点之间伦敦的天气
现在,当您说出上述回复但现在是语音时,Alexa 会将其解释为:
告诉我上午十点到下午两点之间伦敦的天气
根据AMAZON.TIME
docs,ten am
will become10:00
并且two pm
will become 14:00
。但是您输入的文字10 AM
有点奇怪AMAZON.TIME
,因此无法正确识别。
要使其10 AM
正常工作,您需要定义自己的自定义插槽,然后手动处理您的代码。但是,在生产中,最终用户会使用语音呼叫您的应用程序,因此当用户说 时10 AM
,Alexa 将ten am
作为插槽值发送到您的应用程序,您的应用程序可能会中断。所以我不推荐这种方法。
Alexa 是使用/用于语音体验而构建的,因此使用语音进行测试比仅仅打字更有意义。
推荐阅读
- c++ - 当没有浮点数据类型时,为什么这段代码会出现浮点异常?
- ios - SpriteKit 中的可弯曲手臂旋转 - 点旋转
- android - 如何从 Flutter App 连接 Ms SQL?
- google-analytics - 禁用 iframe 分析
- ruby-on-rails - Rails NoMethodError 用于 Heroku 上的 Blog#create,但不是 Localhost
- linux - 检查主板/BIOS/UEFI和CPU是否支持VT-D/IOMMU
- javascript - 使用 Promise 的 MongoDB 查询性能
- javascript - 错误事件触发了 Bootstrap 下拉大型菜单
- asp.net-mvc - 如何将我的对象列表绑定到.net MVC 5中的单选按钮
- java - 类构造函数给我一个错误