我想让Alexa听特殊的数字-单词,例如:
所以我用插槽类型AMAZON.NUMBER创建了这个意图:
如果输入的单词在特定列表上,我可以让Alexa触发此意图吗? (如果输入是“一二三”或“五六”,则触发意图,如果输入是“九十一”,则不触发)
如何像捕获“一二三” 而不是自动结果“ 123” =“ onehundredtwentythree”一样捕获node.js服务器上的单词?
< / li>skill.intent("numeric_input", function(request, response) {
let inputID = request.slot("input").toLowerCase();
response.shouldEndSession(false)
console.log(inputID); // is "123"
})
任何帮助将不胜感激。
答案 0 :(得分:1)
如果您知道您的输入可以有多少个数字,我将创建语音,例如:<Grid>
<ListView ItemsSource="{Binding Friends}"
DisplayMemberPath="DisplayMember">
</ListView>
</Grid>
,DataContext = _viewModel;
,{input}
。当然,只有在您知道数字序列最多包含三个数字的情况下,这才起作用。
要将数字更改为单词,您必须使用某种程序包或自己编写以对其进行转换,因为alexa没有任何此类功能。
我还有一个建议。如果您知道,该用户只能说1-9个数字。数量不多,您可以使用这些值创建自定义广告位。在这种情况下,Alexa会将单词返回到您的代码中,您可以阻止某些您不想获取的数字,例如十一。
答案 1 :(得分:1)
与以前一样,您必须使用AMAZON.Number
插槽类型。
如果输入的单词在特定列表中,我可以让Alexa触发此意图吗?
创建自定义广告位类型时,需要理解的关键概念是这是Alexa NLP(自然语言处理)的训练数据。您提供的值不是严格的枚举或数组,它限制了用户可以说的内容。这有两个含义
1)不在您的广告位值中的单词和短语会被传递给您,
2)如果所说的内容未知,则您的代码需要执行所需的任何验证。
在后端验证插槽值始终是一个好主意。如果您不支持这些数字,请使用适当的错误消息(例如
"Sorry I can proceed wiht Nine eleven, please give the correct number"
这样,您将使用户知道他们必须使用其他号码。如果输入数字,则可以输入任何数字。因此请进行验证并提供指导。
如何在我的node.js服务器上捕获单词,就像捕获“一个” 两个三”,而不是自动结果“ 123” = “一百二十三”?
如果使用AMAZON.Number
插槽类型,则值将为123
。
"numberSlot": {
"name": "numberSlot",
"value": "123",
"confirmationStatus": "NONE"
}
您可以根据需要轻松验证123
或将其转换为任何形式。
自动结果“ 123” =“一百二十三”?
我真的不明白这一点。 123
不会自动转换为onehundredtwentythree
。如果您要指出突出之处,或者Alexa怎么说123
,那么情况就不同了。在输出SSML中使用<say-as interpret-as="digits">123</say-as>
分别拼写每个数字。
答案 2 :(得分:0)
1。创建自定义插槽
2.转到创建的自定义插槽的批量编辑,然后在字母中插入数字。您可以从此链接获得帮助。 Numbers in letters(过滤您不想要的数字)
3.使用自定义广告位创建自定义意图