我希望Alexa能够接受我的自定义技能的可变长度的英文字母列表 . 它将允许用户基于字符串进行搜索 .
这有两个步骤:
-
获得Alexa可以理解的单个字母的良好表示
-
枚举具有可变数量字母的样本话语
首先,一种方法是定义一个自定义槽,其中包含英文字母的枚举值:
SLOT_LETTER
ay
bee
see
dee
ee
eff
gee
... etc
但这感觉很糟糕 . 亚马逊是否支持任何方式来实现这一目标,还是有更聪明的方式?
我真的不想使用NATO phonetic("alpha bravo charlie"为"A-B-C"),因为这是一个糟糕的用户体验,很少有人真正了解它们 .
对于第二个问题(示例话语),对于 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(因为它们是不同的“类型”)?
2 回答
我会避免使用这种界面,因为用户拼写的东西很难,而且Alexa很难区分字母(或许是b或v) . 但是如果你想尝试这个,可以考虑使用文字类型并以三个或四个一组的形式询问字母 .
AV:“现在拼写前四个字母”
网友:“看到你是发球台”
AV:“你拼写了C,H,R,T . 你想添加更多的字母,进行修正或现在搜索吗?”
用户:“取消 . 我只会用我该死的手机 . ”
它没有很好的记录,但你可以使用“a . ”,“b . ”,“c . ”等代表字母,而不是声音 . 创建自定义插槽并将其用作值 . 这应该是你的插槽 .
对于意图,创建一个意图,例如,五个插槽,所有插槽都具有相同的插槽类型 . 根据意图创建五个话语,填充一个,两个,三个,四个和五个插槽 . 当用户拼写某些内容时,将调用该意图 . 用户未指定的任何插槽都将为null .
在一个意图中没有用单词分隔的两个槽通常不能很好地执行 . 但试试吧,看看 . 对于像这样的受限制的词汇,它可以做得很好 .
最后,如果它难以区分,比如说“b” . 和“v . ”,您可以尝试将NATO呼叫代码添加到列表中 . Alpha,Bravo,Charlie等 . 然后,在你的处理过程中,只需获取插槽中任何值的第一个字符 .
您可以启用“Star Lanes”技能并尝试“将呼号设置为X Y Z” . 我在上述技能中做到了以上并且效果相当好 .