StartOverIntent 的自定义插槽

Custom slot for StartOverIntent

如何使用 AMAZON.StartOverIntent 话语设置插槽?

例如:我想使用自定义插槽值开始技能,如 Alexa, ask <my skill> the definition of <custom value>

我读到 AMAZON.StartOverIntent 不能有自定义插槽所以我这样打破它:

DefIntent {Term}
AMAZON.StartOverIntent the definition of
AMAZON.StartOverIntent define
AMAZON.StartOverIntent what is

当我用 Echo 测试时,这似乎不起作用。你是如何宣布这样的言论的​​?

您为什么要覆盖 StarOverIntent?正常的做事方式是使用你自己的意图。如果你愿意,你只需要使用内置的意图。而且,即便如此,这也只是一条捷径。您仍然必须实施它们。它们实际上并没有内置功能。

对于你想要的,你可以声明如下意图:

{
   "intents":[
      {
         "intent":"DefIntent",
         "slots":[
            {
               "name":"term",
               "type":"TERM"
            }
         ]
      }
    ]
}

这将创建一个带有一个插槽的意图,该插槽是自定义类型 TERM。您可以创建要在计划文本文件中查找的术语列表,并将其作为该自定义类型的值上传。然后你可以声明话语:

DefIntent the definition of {term}
DefIntent define {term}
DefIntent what is {term}

那应该给你你想要的。

或者接近你想要的。我想您希望用户能够为 {term} 说任何话。但 Alexa 不是听写机。它不是那样工作的。它期望适度限制的词汇表以产生最高质量的识别。

您可以伪造它,方法是提供一个包含十万个单词的自定义列表。或其他技术来创建 "generic slot"。但它不会以高质量的识别度执行。你最好重新考虑你的设计,这样你就不需要通用的听写了。

有关 Alexa 技能的完整、复杂的示例,以及将近一个小时的视频,请参阅 SubWar