如何从Echo捕获识别的文本?


13

我知道有些技能可以捕获口语文字,例如在添加到待办事项列表和购物清单中时,第三方技能也可以做到这一点。与莫莉短信

那么,他们如何做到这一点?是否有API调用来捕获识别的文本并将其存储在某处?

Answers:


8

自定义技能可以捕获文本并将其发送到您的Skill的API。

如果您不完全了解Alexa Skills的工作原理,则简要总结一下:

  • 首先,您在Amazon注册您的技能,提供意图模式示例话语。意图架构定义了可以执行的操作,以及用于将自定义数据发送到API 的插槽。样本话语提供了用户如何触发每个意图的示例。

  • 当用户激活您的技能时,Alexa会尝试将他们所说的内容与您的一项技能样本话语相匹配。如果匹配,它将发送一个HTTPS请求到服务器,要求响应。

  • 您的服务器会提供响应(如果一切顺利),然后Alexa将向触发您技能的用户提供反馈。

AMAZON.LITERAL插槽几乎可以接受任何输入。请注意,当前仅在英语(美国)区域中支持该语言,而英语(英国)和德语技能不能使用AMAZON.LITERAL

您的意图架构可能如下所示:

{
  "intents": [
    {
      "intent": "SaveTodo",
      "slots": [
        {
          "name": "Todo",
          "type": "AMAZON.LITERAL"
        }
      ]
    }
  ]
}

您的样本话语可能是这样的:

SaveTodo remind me to {fetch the shopping|Todo}
SaveTodo remind me to {write my English essay|Todo}
SaveTodo remind me to {buy some dog food tomorrow|Todo}

使用时AMAZON.LITERAL,您需要提供大量样本发音-每个可能的输入长度至少要包含一个样本,但理想情况下要更多。Amazon文档建议您应该针对可容纳各种输入的插槽的数百个样本作为目标。

看起来确实有些乏味,但是如果您不这样做,您的技能不太可能会很好地识别文本。您可能会根据客户数据生成样本话语(只要事先删除了个人信息!),以便最常见的话语出现在您的样本中-我怀疑Alexa在识别类似于样本的话语时会略有偏向。

但是,亚马逊不鼓励AMAZON.LITERAL使用插槽,而是希望您使用自定义插槽类型,这需要您列出可能的输入。重要的是要记住:

自定义插槽类型与枚举等效。如果口头语言理解系统可以识别出列表以外的值,则可能仍会返回该值。尽管自定义插槽类型的输入权重针对列表中的值,但它不仅限于列表中的项。使用插槽值时,您的代码仍需要包含验证和错误检查。


1
我相信亚马逊会保留字面上的位置,因为许多开发商抗议他们的损失。但是使用文字插槽会阻止您的技能发布,因为亚马逊不希望开发人员能够“监听”用户。但是您仍然可以将其用于私人技能。
Graham Chiu

1
@GrahamChiu:我的印象是,即使在已发布的技能中,仍然允许使用文字插槽(请参阅此博客文章:“基于开发人员的反馈,我们不会删除LITERAL插槽类型,您可以继续提交包含其功能的技能。”) 。不过,我自己还没有尝试过,因此,如果您能以任何一种方式进行确认,那么这对以后的访问者可能会有帮助。
Aurora0001
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.