4

我希望 Alexa 能够为我的自定义技能接受可变长度的英文字母列表。它将允许用户基于字符串进行搜索。

有两个步骤:

  1. 获得 Alexa 可以理解的单个字母的良好表示
  2. 枚举具有可变数量字母的示例话语

首先,一种方法是定义一个自定义插槽,其中包含英文字母的枚举值:

SLOT_LETTER

ay
bee
see
dee
ee
eff
gee
... etc

但这感觉很hacky。亚马逊是否支持任何方式来做到这一点,还是有更聪明的方式?

我真的不想使用北约语音(“ABC”的“alpha bravo charlie”),因为这是一种糟糕的用户体验,而且很少有人真正了解它们。

对于第二个问题(示例话语),AMAZON.LITERAL我想定义如下内容:

SpellIntent find me things starting with {first second|SLOT_LETTER}   
SpellIntent find me things starting with {first second third|SLOT_LETTER}
SpellIntent find me things starting with {first second third fourth|SLOT_LETTER}

但我认为亚马逊不会让您使用自定义插槽定义可变长度的 LITERAL(因为它们是不同的“类型”)?

4

2 回答 2

8

它没有很好的文档记录,但您可以使用“a.”、“b.”、“c”。等来代表字母,而不是声音。创建一个自定义插槽并将其用作值。这应该为你的插槽做。

对于意图,创建一个具有例如五个槽的意图,它们都具有相同的槽类型。根据意图创建五个话语,填充一个、两个、三个、四个和五个插槽。当用户拼写某些内容时,将调用意图。用户未指定的任何插槽都将为空。

在一个意图中拥有两个不被单词分隔的插槽通常效果不佳。但是试试看。像这样有限的词汇,它可以做得很好。

最后,如果它难以区分,比如说“b”。和“v.”,您可以尝试将北约呼叫代码添加到您的列表中。Alpha、Bravo、Charlie 等。然后,在您的处理过程中,只需为插槽获取任何值的第一个字符。

您可以启用“星道”技能并尝试“将呼号设置为 XY Z”意图。我在该技能中完成了上述操作,并且效果很好。

于 2016-09-10T16:09:32.003 回答
1

我会避免使用这种界面,因为用户可能很难拼写,Alexa 也很难区分字母(也许是 b 或 v)。但是,如果您想尝试这个,请考虑使用文字类型并要求以三四个为一组的字母。

AV:“现在拼出前四个字母”

用户:“看是三通”

AV:“你拼写了 C、H、R、T。你想现在添加更多字母、更正还是搜索?”

用户:“取消。我就用我那该死的手机。”

于 2016-09-08T19:02:25.383 回答