人类对话,即实时合理的意图交换。关于如何表达以及如何从对话中提取内涵,其实难度超乎我们的想象,你需要非常认真,并且有意识的去设计Alexa和用户之间的对话。良好的语音体验可以允许用户通过不同的方式去表达意图。 对话界面是由每一个以用户提问为起始,以Alexa回答为结束的对话轮(turn)组成的。对于很多人来说,这是一种全新的交互模式。所以在设计之初,请先确保你的用户能够参与到对话当中来。 确保在搭建技能之前完成流程设计 你希望用户从你的技能中体验和感受到什么?这是在一开始就要明确的问题。一旦你已经定义好了技能(skill)的目的(purpose)、写好了脚本(script),并且完成了流程(flow)设计(见第一章),你就可以着手设计意图和表达方式了。 设计意图 意图(Intent)就是用户能通过你的技能去完成的事情。你的技能可能是帮人计划旅行、获取某种状态、讲笑话,或者打怪兽,而这些也就是意图。关于如何定义技能的意图,请看上一章。 永远不要相信人们会把你预期的意图精确的描述出来。当用户可以说“计划旅行”时,他也许会图方便的直接说“计划去夏威夷的旅行”,尽量把用户可能会说的句子、短语和单词最大范围的呈现出来,这样才能保证用户可以更好的使用你的技能。 下面是关于对话意图的例子:
使用内置意图 每个Alexa技能都需要提供“取消”、“停止”、“帮助”的能力。除此之外,还有其他的指令比如“重复”“播放”“下一个”等,都包含在内置意图库(built-in intent library)中。内置意图(built-in intent)是Alexa本身配置好的能力。比如,“帮助”意图,对于用户使用这一类命令,你无需再做特殊说明。如果你的技能需要增加一些内置意图,也可以自定义扩展内置意图 (extend built-in intents)。 定义表达方式 表达方式(utterance)是用户会对Alexa所说的话。由关键词命令(keyword command);自然词汇,如赘词(filler word)【译者注:可以理解为汉语中的“的”“了”“是”等虚词】;以及可变信息的槽(slot)组成。设计语音体验最重要的部分就是定义用户的表达范围。 为了提供良好的体验,你需要从那些只言片语或者模棱两可的语句碎片中整理出完整的命令。为了保证覆盖率,你需要考虑到语句非常细微的变化甚至是误读的情况。比如,当你在设计和“开关”有关的话题时,需要提供“打开”、“开启”、“启动”等同义词,虽然他们其实表达的是同样的意思。 one-shots:one-shot的表达是指用户一口气把触发技能所需的信息全部都提供完整了。一般用在触发技能时或技能之中。
部分信息(partial information):基于达成某项意图所需的全部信息,用户通常会只给出一些不完整的信息。这就会带来多轮(Multi – turn),以便搜集补全完整信息。
处理过度回答(over- answering) 有些时候,虽然Alexa只问了一个问题,但用户会给出超出这个问题的回答。比如Alexa问到一个出发日期,用户可能不但回答了出发日期,也回答了出发地点。用户甚至可能给出了所需的其他信息,比如说抵达的城市,还有要旅行的方式,然而却没有给出Alexa询问的日期。 在设计对话的时候,需要重视这种情况。更多信息参考 (Dialog Interface Reference)和(Plan My Trip tutorial)
处理用户纠正(correction) 当用户觉得Alexa出错了,或当他们改变主意的时候,他们会去试图去纠正这些错误。比如说,一个用户可能会在他上一句表达后面跟上“不是的…”或者“我说的是…”。要恰如其分的处理这些问题。
确保能够覆盖宽泛、多样化的表达方式 (责任编辑:admin) |