2017-06-17 59 views
1

我已经在Amazon Developer Console中定义了一个自定义槽类型,该槽包含一个名称列表,如下所示。将Alexa引导至特定的槽值响应

homer simpson 
ned flanders 
principal skinner 
comic book guy 

我已经定义了如下的示例语句。

PlayAudio to play {Name} 

所以最后,我希望用户能够说类似folliowing东西:

Alexa的,要求辛普森玩辛普森

Alexa的,请问辛普森扮演Ned富兰德

Alexa的,要求辛普森扮演主要皮货商

Alexa的,问个Ë辛普森扮演漫画书人

当然,还有的是Alexa的将听到这个名字不正确极高的机会,所以我需要能够以匹配尽可能紧密听到的可能的一个名字插槽值。

我该如何去做这件事,我必须在函数中编写代码还是有更好的方法?

回答

0

你说得对,有很大的机会',Alexa会听错名字'。我的解决方案是与人类测试人员进行一系列试验和错误,以发现常见的错误解释,然后对这些错误进行硬编码修复。

所以我让一个测试人员说出不同的名字并记录他们所说的内容。然后我看看Alexa给我的插槽价值,以及在哪里存在差异,我为我的技能添加了一个硬编码替代。

+0

感谢汤姆你的回答,我开始低调相同的方法,因为我正在努力看到任何其他可行的方式。非常感谢! – BensTechTips

+0

是的,没问题。如果您没有等待其他答案,请标记为已接受。谢谢。 – Tom

1

当使用自定义插槽时,Alexa可能会提供一个不在列表中的值。随着列表大小的增加,这会变得特别有问题。 Tom建议使用Beta测试功能可以提供帮助,但您无法捕捉所有问题,最终也无法扩展。

我发现完全确保您从列表中获得价值的唯一方法是在技能中拥有完整列表,并且每次都检查它。为了检查,精确匹配并不总是最好的选择,我已经试过两种方法: