“他山之石,可以攻玉”,本文编译自Amazon Alexa 的“10 Things Every Skill Should Do”,尽管是两年前的文字,还是有一定的参考意义的。另外,融入了一些自己的理解,尤其是DuerOS 相关的内容。
语音技能的构建既是一门艺术,也是一门科学。开发智能语音技能有一些技术方面因素,还要有设计语音体验的创意,两者都很重要。
那么,在开发智能语音技能的时候有哪些共同的要点呢?
1. 聚焦并做好一个功能
在开始设计语音技能时,开发者可能会希望这个技能可以非常熟练地处理各种请求。但是,对于使用语音交互的用户而言,记住所有不同的选择是很困难的。
只做一个功能,并且把这个功能做好,有很多成功的应用都专注于把一件事做得很好。为自己的技能制定一个特定的目标会真正帮助用户解决他们的问题,一个技能 应该服务于一个特定的目的,并且比任何其他技能更好地服务于这个目的。
2. 使用令人难忘的唤醒名
起名字是个大学问,想出一个唤醒名是很容易的,但更重要的是要用一个令人难忘的名字,唤醒名要让用户更容易记住技能的名称。
使用一些非常特殊的唤醒名可能会遇到ASR难以识别的困境,所在设置技能唤醒名称的时候要考虑到ASR友好。什么是ASR友好呢?一个简单的方法,随机选3~5个人,读出自己的技能唤醒名称让大家听写,如果大家写出的文字与你的名称设定一致,就基本上说明了技能唤醒名称没有太多问题。反之,说明技能唤醒名称可能对ASR不够友好。
3. 专注于用户的意图
当开发者在技能中建立意图和常用表达的时候,要专注于用户会有怎么样的意图。在每一种场景下,用户都会得到一类请求的特定答案。如果将帮助类型的意图应用于用户的请求,那么技能将更具吸引力和帮助性,也会让用户实现更多的交互。
4. 简化用户的选项
有时候,一个技能需要为用户提供选择,这时重要的是要考虑用户要什么,以及他们可能会怎么做回答。一旦技能提供了答案,技能希望通过给用户另一个提问的机会进行对话。每个提示的选择都会引导用户询问下一个问题,并且不要留下任何歧义。
在提出问题之前,技能要预先为用户加载可能的答案,减少用户所需的选项列表,一般两到三个。然后,再问他们是哪一个选项,从而减少用户的认知负荷,尤其是将需要用户选择的选项放到最后。
5. 用户的一句话答复
如果用户不费吹灰之力,一句话就可以说出答案,那么这个答复的长度应该是合适的。反之,如果用户不能一句话回复,这个语音技能就应该将响应分为几个部分,采用多轮交互的方式。
6. 技能回复的多样性
进入技能后,如果每次的回复都一样,用户可能会逐渐失去对这个技能的兴趣。如果在技能的响应中,用户听到一些意想不到的东西会让他们更加关注。技能响应的多样性可以让用户觉得新鲜,使每一次语音交互都变得有趣。
另外,“一图胜千言”,尤其是在多模态交互的时候。
7.优雅地处理异常
用户的问询随机性很大,很多会超出当前技能的意图空间,遇到这种情况,DuerOS 是这样处理的:
首先,查看当前话术是否存在于技能的意图/槽位/词典里,如果是,则技能可以正常否则,有两种情况——
- 当用户的话术处于高置信度区间时,DuerOS会接管处理,例如用户询问天气
- 当用户的话术处于低置信度区间时,DuerOS会询问用户是否退出,将选择权交给最终用户。
即便如此,兜底话术在技能中是必须的,这样可以引导用户返回到技能可以处理的领域中。
8. 运用数据,面向运营
与互联网及移动互联网应用一样,监控技能的交互数据并认真分析是非常重要的,利用这些数据可以提升技能的用户体验。对于常见的数据点,DBP平台提供了相关的图表,并一直在持续演进。对开发者而言,尤其要关注那些用户在技能中经常询问,但技能并没有给出满意答复的问题。另外,开发者还可以在自定义技能的后台自行记录日志,专项打点分析。
9. 提供上下文帮助
在智能语音技能中,帮助常常被忽视。但如果做得好,它会提升用户的体验。要假设用户对我们的技能一无所知,他们下意识地寻求帮助,如果技能中提供的帮助体验越好,用户就越有可能进一步在技能内持续交互。
10. 充分测试
智能语音技能同样是一种软件服务,充分测试的重要性毋庸置疑。调试对于创作出深受用户喜爱的语音技能意义重大,目前,DuerOS提供了意图调试、模拟器调试、真机调试、团队真机调试以及日志追踪调试等多种方式,详情可以参考《调试DuerOS的智能语音技能》一文。
(文中图片都来自网络,如有侵权,联系作者删除)