我正在尝试构建一个 Alexa Skills Kit,用户可以在其中通过说类似的话来调用意图
GetFriendLocation where is {Friend}
为了让 Alexa 识别变量朋友,我必须在LIST_OF_Friends
文件中定义所有可能的值。但是,如果我不知道Friend
我的应用程序可以访问的某些服务中存在的所有值并且仍然想为存在的值进行最佳匹配怎么办。
我正在尝试构建一个 Alexa Skills Kit,用户可以在其中通过说类似的话来调用意图
GetFriendLocation where is {Friend}
为了让 Alexa 识别变量朋友,我必须在LIST_OF_Friends
文件中定义所有可能的值。但是,如果我不知道Friend
我的应用程序可以访问的某些服务中存在的所有值并且仍然想为存在的值进行最佳匹配怎么办。
假设如果您将一个小字典插入一个插槽(您最多可以放置 50,000 个样本),它就会变成一个“通用”插槽,并且可以非常开放地选择任何东西,而不是给它什么。在实践中,我对此并没有太多的运气。
Text To Speech 领域的一句格言是,词汇越严格,准确率就越高。反之,词汇量越大,准确率越低。
VoiceXML 之类的系统(主要用于电话提示软件)具有非常严格的词汇表,并且通常在为其量身定制的领域中表现良好。
像 Watson TTS 这样的系统是完全开放的,但通过返回对声音的几种不同解释的置信度来弥补其准确性的不足。简而言之,它将大部分 NLP 工作分担给您。
亚马逊非常刻意地为 Alexa 选择了一条中间道路。他们的意图模型允许比 VoiceXML 更大的灵活性,但不像听写系统那样自由。结果为您提供了非常好的选择和非常好的质量。
由于他们的决定,他们有一个语音模型,您必须提前声明它可以识别的所有内容。如果您这样做,您将获得一致且优质的认可。正如其他人所说,有一些方法可以“欺骗”它支持“通用插槽”。但是,这样做会超出他们的设计范围,并且一致性和质量会受到影响。
据我所知,我认为您不能为意图动态添加话语。
但是对于您的具体问题,有一个内置的 slot call AMAZON.US_FIRST_NAME
,这可能会有所帮助。