你会如何设计字母和数字代码的插槽?

时间:2016-01-11 06:13:52

标签: alexa alexa-skills-kit alexa-skill alexa-voice-service

我希望自己的技巧能够提到一个4到5个字符的代码,其中包含AB05ABC12等字母和数字。如何设计Alexa的插槽和话语以理解这些并将它们传递给我的技能?

2 个答案:

答案 0 :(得分:11)

此技能https://github.com/maihde/alexa-qrz按以下方式执行:

IntentSchema

1 { 
2   "intents": [ 
3     { 
4       "intent": "GetQRZ", 
5       "slots": [ 
6         { 
7           "name": "CallSignA", 
8           "type": "LETTER_OR_NUMBER" 
9         }, 
10         { 
11           "name": "CallSignB", 
12           "type": "LETTER_OR_NUMBER" 
13         }, 
14         { 
15           "name": "CallSignC", 
16           "type": "LETTER_OR_NUMBER" 
17         }, 
18         { 
19           "name": "CallSignD", 
20           "type": "LETTER_OR_NUMBER" 
21         }, 
22         { 
23           "name": "CallSignE", 
24           "type": "LETTER_OR_NUMBER" 
25         }, 
26         { 
27           "name": "CallSignF", 
28           "type": "LETTER_OR_NUMBER" 
29         }, 
30         { 
31           "name": "CallSignG", 
32           "type": "LETTER_OR_NUMBER" 
33         } 
34       ] 
35     }, 
36     { 
37       "intent": "AMAZON.YesIntent" 
38     }, 
39     { 
40       "intent": "AMAZON.NoIntent" 
41     }, 
42     { 
43       "intent": "AMAZON.StopIntent" 
44     }, 
45     { 
46       "intent": "AMAZON.CancelIntent" 
47     } 
48   ] 
49 } 

自定义广告位LETTER_OR_NUMBER

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
zero
one
two
three
four
five
six
seven
eight
nine
alfa
alpha
bravo
charlie
delta
echo
foxtrot
golf
hotel
india
juliett
juliet
kilo
lima
mike
november
oscar
papa
quebec
romeo
sierra
tango
uniform
victor
whiskey
x-ray
xray
yankee
zulu

示例话语:

GetQRZ  {CallSignA} {CallSignB} {CallSignC}
GetQRZ  {CallSignA} {CallSignB} {CallSignC} please
GetQRZ  {CallSignA} {CallSignB} {CallSignC} stop
GetQRZ  {CallSignA} {CallSignB} {CallSignC} over
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD}
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} please
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} stop
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} over
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE}
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} please
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} stop
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} over
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} {CallSignF}
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} {CallSignF} please
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} {CallSignF} stop
GetQRZ  {CallSignA} {CallSignB} {CallSignC} {CallSignD} {CallSignE} {CallSignF} over
enter code here

答案 1 :(得分:4)

您应该可以使用AMAZON.LITERAL作为广告位类型

{
  "intent": "GetCodeIntent",
  "slots": [
    {
      "name": "code",
      "type": "AMAZON.LITERAL"
    }
  ]
}

对于你的话语,它有点奇怪,因为你可能需要定义你的话语可能来自我的经验最长但是如果最长的是5个字符你应该能够做类似的事情

GetCodeIntent update code {one two three four five|code}
GetCodeIntent set code {one two three four five|code}
GetCodeIntent change code {one two three four five|code}

您仍然会使用代码var

来引用您的意向槽
"GetCodeIntent": function (intent, session, response) {
    var codeSlot = intent.slots.code;
    //Do all of your amazingness with your code here
},
相关问题