"Catch-all" Alexa Skills Kit 输入未定义意图

"Catch-all" for Alexa Skills Kit input not in defined intent

我正在构建一个需要能够处理问题答案的 Alexa 应用程序。我有一个 SkipIntent 意图,其中包含跳过问题的示例话语。

我想构建一个 AnswerIntent 可以接受任何答案并根据正确答案处理它们。我尝试为此使用 Amazon.LITERAL 类型和一些样本(来自这个问题:How to accept the Free form text as input to Amazon Skill Kit?):

AnswerIntent {bottle|Answer}
AnswerIntent is it {bottle|Answer}
AnswerIntent is it a {bottle|Answer}
AnswerIntent is it an {bottle|Answer}
AnswerIntent a {bottle|Answer}
AnswerIntent an {bottle|Answer}
AnswerIntent {pillow|Answer}
AnswerIntent is it {pillow|Answer}
AnswerIntent is it a {pillow|Answer}
AnswerIntent is it an {pillow|Answer}
AnswerIntent a {pillow|Answer}
AnswerIntent an {pillow|Answer}

如果我在答案前加上 "is it" 或其他定义的前缀之一,这实际上有效,但它没有得到 "answer only" 部分。它似乎与我的 SkipIntent 混淆了,它被定义为:

SkipIntent i don't know
SkipIntent don't know
SkipIntent skip
SkipIntent i don't know that
SkipIntent who knows
SkipIntent i don't know this question
SkipIntent i don't know that one
SkipIntent dunno

我对 AnswerIntent 的定义是否正确?如果没有,是否有更好的方法来捕捉无限的可能性?亚马逊似乎不喜欢 LITERAL 方法,所以我愿意接受更好的方法。

亚马逊的 Alexa 服务不是为听写而设计的。这是 Developer Evangelists 的一致回应。因此,您将无法提供您想要的确切客户体验:能够自行接受任何类型的输入。

您 'tricking' 接受了 'generic slot',这超出了 Alexa 的设计规范。很多人都这样做过,但它永远不会像您所发现的那样表现良好。

具体来说,对于您的用例,单独尝试通用插槽特别糟糕。 Alexa 在内部使用交互模型来构建可能被识别的可能句子树。然后它获取输入声音,并将它们与树进行匹配。最终置信度最高的分支就是被选中的分支。

当您添加一个通用插槽时,您将一个节点添加到树中,该节点几乎可以匹配任何东西,它与匹配特定值的分支竞争。例如。如果 Alexa 在 "X"、"Y" 和“”之间进行选择,它通常会选择“”。这就是为什么您的通用插槽本身会吞噬其他答案。

如果你想要一个高质量的技能,你应该寻求一个不使用通用插槽的设计。例如,您可以在问答类型的技能中使用多项选择。或者选择具有一组特定答案的问题,例如颜色或美国各州。

如果您只是在做演示,那么当然可以使用通用插槽。您可以进行足够的拍摄以使录音看起来不错。

截至 2017 年 1 月,亚马逊似乎又可以使用 AMAZON.LITERAL 个插槽:

Based on developer feedback, the AMAZON.LITERAL slot is not being removed as previously described. You can continue to submit new and updated English (US) skills with AMAZON.LITERAL. However, in many cases, custom slot types provide better accuracy than AMAZON.LITERAL, so we recommend that you consider migrating to custom slot types if possible.

来源:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference#literal