拼写出字母的alexa技能用户输入

时间:2016-09-08 18:29:50

标签: amazon-web-services alexa alexa-skills-kit alexa-voice-service alexa-skill

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

这有两个步骤:

  1. 获得Alexa可以理解的单个字母的良好代表
  2. 枚举具有可变字母数的样本话语
  3. 首先,一种方法是定义一个自定义槽,其中包含英文字母的枚举值:

    SLOT_LETTER
    
    ay
    bee
    see
    dee
    ee
    eff
    gee
    ... etc
    

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

    我真的不想使用NATO phonetic(" alpha bravo charlie" for" AB-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 个答案:

答案 0 :(得分:7)

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

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

在一个意图中没有用单词分隔的两个插槽通常表现不佳。但试试吧,看看。对于像这样的受限制的词汇,它可以做得很好。

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

您可以启用“星际车道”技能并尝试“将呼号设置为X Y Z”。我在上述技能中做了以上工作并且效果相当不错。

答案 1 :(得分:0)

我会避免使用这种界面,因为用户很难拼写东西,而且Alexa很难区分字母(或许是b或v)。但是如果你想尝试这个,可以考虑使用文字类型并以三或四组的形式询问字母。

AV:"现在拼写前四个字母"

用户:"看到你是发球台"

AV:"你拼写了C,H,R,T。你想添加更多的字母,进行修正或现在搜索吗?"

用户:"取消。我只是用我该死的手机。"