问题描述
我正在研究Alexa技能,但Alexa难以理解我的语音输入。因此,发声与所需的插槽没有正确匹配...并且alexa总是要求或卡住。 这里有些例子: 确认:f.m。,来自
Speedbird:速度板,扬声器,速度但是,速度鸟,精神,快速浴池
风:有风(风是),什么时候回家(风很平静)
03号跑道:莎拉三号跑道
起飞:咳嗽
有什么方法可以训练Alexa正确理解我?还是我应该只将所有这些“虚假”言论写成话语,以便alexa可以正确地匹配我的意图? 感谢您的帮助!
解决方法
没有机会训练自己对Alexa的语言理解。
是的,正如您所写:我只是将这些错误的言论作为您意图的匹配。 amazon似乎也建议这样做:
...可能会告诉您,有时Alexa会误解“ mocha”一词为 “牛奶。”要缓解此问题,您可以将语音直接映射到 一种Alexa意图,可帮助您提高Alexa对您的了解 技能。 ....
提高ASR准确性的两种常见方法是映射意图值或 广告位值等于失败的话语
也许可以让其他人尝试一下,以确认它是否与您的讲话一样。
,仅单词插槽
如果您仍在为此苦苦挣扎,则应尝试为广告位值添加更多变体(如果您有不断重复的特定解释,则可以使用同义词)。考虑为speed bird
添加同义词,例如Speedbird
(为take off
添加takeoff
)。非标准字槽无法像普通字一样准确地解析。通过将Speedbird
分成两个词,Alexa应该可以更成功地识别该插槽。有关同义词的信息在这里:
完成此操作后,您将希望获取广告位的规范值,而不是解释值(例如,您希望Speedbird
而不是speedboard
)。
要查看示例,请滚动至最后一个JSON代码块。该请求中描述的场景是,用户说的单词track
是其请求中的广告位值song
的同义词。您会看到MediaType的值为track
(用户所说的),但是如果您看一看Resolutions对象,则在values数组内,第一个值对象是实际的广告位值song
(您想要的)与同义词相关联。
此StackOverflow进一步详细说明了如何获得该值: How do I get the canonical slot value out of an Alexa request
单词和数字插槽
在“ 03号跑道”示例中,请考虑将其分为两个不同的位置,例如{RunwaySlot : Custom} {Number : Amazon.Number}
。这些更复杂的广告位会给您带来更好的运气。对于“红色飞机”这样的示例也是如此,您需要将其分为两个插槽:{Color : Amazon.Color} {VehicleSlot : Custom}
。
https://developer.amazon.com/en-US/docs/alexa/custom-skills/slot-type-reference.html#number