Bixby中歧义话语的后备意图

时间:2019-03-08 15:16:00

标签: bixby bixbystudio

是否可以为未在我的应用中训练的语音添加后备意图?

我在我的应用中添加了很多语音,但是如果用户说了什么但与任何语音都不匹配,那么我希望它回退并告诉用户我无法为您找到任何东西。

现在我有4个意图:

GetNews
GetWeather
GetRecepie
GetInformation

现在,对于GetNews的意图,我有话要说“给我体育新闻”,对于GetRecepie的则是“我要中国菜”。我已经为所有意图添加了尽可能多的语音,但是我遇到了一种语音,即“获取邻居新闻”,现在我没有任何诸如邻居的新闻类型,但是如果newsType是未定义,然后显示一般新闻。但是,当我发出这种声音时,它就属于GetRecepie意图。我的所有4种意图的话语都是从不同的单词开始的,彼此之间没有任何匹配,那么为什么它也为GetRecepie而不是GetNews所倾倒?

这种情况下的解决方案是什么?有什么办法可以让我进行后备操作,以便使任何话语感到困惑,因此应该继续进行后备操作?还是有其他解决方案?

这与正常话语无关,但是用户可以命令“ ABCDRIKHLFJ”,然后处理该问题。..现在一切都陷入GetRecepie中。

对于一个解决方案,我创建了一个动作文件名为LetItFallback,并在验证GetRecepie的同时,重新计划它并将目标传递给后备动作。

action (GetRecepie) {
 type(Search)

  collect{
    input (receipeID) {
    type (ReceipeChoiceResult)
    min (Optional)
    validate{
      if(not exists(receipeID.name)){
        replan{
          intent{
            goal{LetItFallBack}
          }
        }
      }
    }
  }
} 
output (RecepieResult) 
}

但是我在模拟器中遇到错误

Unable to attach plan from 1.0.1-myAppID.api.GetRecepie#1.0.1-myAppID.api.RecepieResultreplan intent

我不确定出什么问题,但是如果此解决方案很好,那么如何解决该错误,否则请给我解决实际问题的方法。

3 个答案:

答案 0 :(得分:1)

有几点要探索:

  1. “用户可能会命令“ ABCDRIKHLFJ””:您应该训练Bixby以处理预期的话语,而不是训练它以进行意外的输入。如果用户提供了意外输入,Bixby将请求其所需的输入。
  2. 您的胶囊可能正在尝试做太多事情。取决于 GetNews,GetWeather,GetRecepie和GetInformation的性质 互相影响,您的胶囊可能 只是尝试服务过多的用例。这导致Bixby 错误地理解话语的内容并进行路由 发话信息到错误的操作。我建议 您翻阅此处找到的Principles of Training 解释什么是必需的,以确保Bixby可以 准确理解话语并传递正确的信息 正确执行操作。

答案 1 :(得分:0)

看起来您正在使用各种服务,食谱,新闻,天气和常规搜索来使您的胶囊超载。 Bixby胶囊应具有简洁的目的。您可以将胶囊分成3种不同的胶囊,配方,新闻,天气,最好不要创建通用的“搜索”胶囊。 Bixby平台的工作是“捕捉”任何未处理的语音并执行回退操作。

希望这会有所帮助。

答案 2 :(得分:0)

尽管我同意另一位张贴者的话,他说您可能正试图在单个应用程序上做太多事情,但我想回答您有关后备意图的问题,因为我有相同的意图。

为了处理未知的输入,我所做的是创建一系列与缺少的输入相匹配的对话框。下面是其中之一。

dialog (Elicitation) {  match: type  template("I didn't understand what type you were trying to say..") }