转载自 人人都是产品经理 作者 @单师傅 原文地址 http://www.woshipm.com/pd/2918354.html
语音交互逐渐深入生活,本文教你如何设计一个流畅自然的对话系统。
随着语音识别技术和自然语言理解技术的不断突破,电影当中人与计算机设备通过自然语言进行交互的方式已经成为现实,语音交互的革命正席卷而来,影响着我们每个人的生活。
然而,在科研技术成果向现实应用场景转变过程当中(尤其是在多轮连续对话的情况下),智能设备的表现往往差强人意,很多问题并不是依靠技术就能解决的。
于是,出现了语音对话界面设计的概念。
如今,越来越多的电子设备开始支持通过自然语言/语音与人类进行交互。在人们的客厅里,办公室里,汽车驾驶舱里都能找到语音交互的应用场景。
新的交互方式让人们解放了双手,并弱化了人们集中在电子设备上的注意力,为人们提供了更加有效,更加自然,同时更加安全的人机交互体验。
本文笔者目前从业于一家AI初创公司,专注于智能对话类产品的体验设计与质量评估。经过几年时间的探索与学习,笔者在人机对话交互设计的相关工作上略有一点心得,望在此与读者交流学习。
与所有人机交互系统一样,语音交互也需要一套规范且有效的设计方法和流程。
目前,网上有很多关于对话交互设计的指导和介绍,主要内容基本都是出自谷歌和亚马逊这两家科技巨头,国内百度和讯飞在相关领域也有一定的研究。
这些规范都很有价值,非常值得我们借鉴和学习。然而,无论是谷歌还是百度,都只是针对自己企业所研发的硬件和产品有针对性的设计对话交互,整个行业当中目前尚未有一个公认的,被广泛认可的设计标准。
总体来说,语音对话交互延续了人机交互以人为本的设计原则,在不同的应用场景,不同的用户群体,以及不同的硬件形态下,都需要有针对性的进行不同的设计。
笔者将参照部分科技巨头提出的设计元素,结合自己的工作经验,为读者整理一下对话交互设计的过程。
第一步:定义场景和用户画像
设计一个对话系统之前,我们首先要明确谁是这个系统的用户。
不同的用户具备不同的知识背景和交互习惯,同时每一类用户都有不同的需求点和痛点。清晰的用户定义可以帮助我们更加有针对性的设计对话的内容和节奏。
常用的用户定义方法包括:用户画像,用户背景调查,用户采访,A/B测试,使用习惯调研等。
定义场景和定义用户是相辅相成的,需要关联在一起进行思考。
场景的定义主要是回答自己这样一个问题:我的用户将在什么时候,什么地点,以一个什么样的状态与我设计的对话系统进行交互?
这当中就涉及到了很多变量,包括时间,空间和情感触发。
通常有效的场景设计需要结合深入的用户调研和测试,设计者需要亲自在特定的时间和地点带着特定的情绪和期待去体验对话系统。
第二步:设计问答对
定义清楚了用户和场景之后,我们就可以开始设计对话了。
千里之行始于足下,在设计一个对话系统时,我们首先要设计好一个简单的问答对。好的问答对包括一个好的问题和一个好的答案。
问题的设计主要是语法的设计。和人类的语言一样,计算机对话系统也需要一套语法框架。我们试图让计算机掌握人类的语言,所以,这个工作就是把人类语言的语法重新以一个适合计算机的方式设计出来。
当我们有一个有效的语法框架时,就可以快速的为对话系统设计问题,并覆盖一个问题的各种问法。
比如当设计一个询问节日假期的问题时,我们可以通过语法匹配的方式来实现。
例句:
- 中秋节假期是哪天?
- 中秋节假期在哪天?
- 我想问一下中秋节假期是哪天?
- 中秋节假期什么时候?
- 哪天到哪天是中秋节假期?
- 中秋节是哪天?
- 中秋节假期在何时呢?
- 什么时候是中秋节假期呢?
语法:
- 疑问 = 什么时候||哪天||何时
- {前缀}{节日}假期||{介词}{疑问}{后缀}
回复的设计主要是话术的设计。话术的设计将会直接影响到对话系统的表现和用户体验。
话术往往需要结合对话系统的使用场景与目标用户进行设计。
话术设计主要有两个原则:即内容接近人的思维,以及让交互者有持续聊下去的意愿。
第三步:制作对话流
对话流的设计是对话交互设计的最后一个环节,也是最为重要的环节。
对话流泛指通过不同对话节点将多个问答对按照一定逻辑串联起来的流程框架。对话流往往可以解决一个具体的任务,如订机票、查天气等。
另外,常见的会话类游戏,绘本等应用也是通过对话流的设计来实现的。
简单来说就是,从一组问答对中扩散出多个对话节点,再衍生新的问答对,同时部分问答对与对话节点之间存在逻辑上的关联,这当中的每一个节点,每一层关联都需要预先设计(下图是笔者之前设计的游戏对话流的一小部分内容,供参考)。
一个好的对话流设计通常具备以下特点:自然通顺,逻辑严谨,引导清晰,简洁有效。
第四步:对话流之外的设计
在设计对话交互的时候,还需要充分考虑对话系统的各种极端使用情况,以及遇到错误时的应对办法。
首先,我们需要让用户知道,其聊天对象是一个机器人而不是一个真实的人。
虽然很多会话交互设计都声明,其设计的主旨就是让人工智能可以表现无限接近真人(通过图灵测试)。但是笔者认为,在实际应用场景下,也并非如此。
事实上,在效率和针对性两方面,人工智能可以比人类做的更好。用户需要适应与机器之间的对话交互方式,这必然是一种有别于用户与其他人之间的交互。在这样的前提下,用户会有意无意提高对对话系统的包容度。
另外,比较重要的一点是,设计者有必要在对话流的中加入足够的对话引导,和内容确认的部分。这样用户就能够清楚的知道自己可以说什么、怎么说。关于对话引导和主动对话的相关设计网上以及有很多相关的文章分享,这部分笔者就不做过多描述了。
最后,设计这应该预先想到错误发生的情况,并提前设计好应对措施。
目前在业界针对这块的处理有一些歧义。不少人认为当系统无法识别用户问题时就设置一个兜底答案库(可能是技术开发者不愿意向用户承认自己的技术能力不足),通过“打马虎眼”的方式避免这些对话内容。
但是笔者认为,在这种情况下,对话系统应该直接向用户道歉,并承认自己能力的不足。从真实的体验效果上来看,“认怂”可能比“打马虎眼”更易被用户接受。
不过,单纯“认怂”肯定是不够的。
这种情况下,笔者会在“认怂”之后,为对话系统加一个问题推荐和话题引导的功能,再次把主动权抓住,将用户重新引入一个可控状态当中。
第五步:验证和评测对话质量
对话系统设计好之后,我们需要一套有效的对话能力评估系统来对其进行检测和评估。
评估结果可以帮助设计者客观判断对话系统的能力,同时还能够横向对比不同的对话系统,从而找到对话系统的问题和不足,针对性优化和改善对话交互的设计。
对话系统的评估可以从两个方面来进行。
- 一方面是对话系统的表现,对话系统需要按照特定的指标和维度被评估,评估结果将能够直接反应出对话系统在各个指标上的表现。
- 另一方面是用户的体验反馈,对话交互设计者应该刻意去收集用户在使用对话系统后的反馈,整理用户的建议,并制定改进的策略。常见的方法包括用户调研,用户采访,用户行为数据跟踪等。
为了让整个对话设计更加完整和有效,除了基本的对话设计流程之外,我们还需要在设计前做好充足的准备。同时在设计后,对整个对话系统将呈现给用户的样子做进一步的思考。
设计前的准备
在对话交互开始之前,我们首先需要定义对话的内容和展示形态。
对话内容包括:话题的设计,意图的设计,以及词槽列表的设计。
计算机设备无法像人类一样,可以同时有逻辑地表达不同话题的语言内容。因此在制定一个对话系统之前,我们需要明确,被创建的对话系统将会处理什么样的话题,以及话题当中将包含什么样的会话意图。
此外,根据展示媒介的不同,对话交互中还可能会包含视觉信号、提示灯、提示声音,以及富文本内容。
很多人认为这些内容是在会话设计过程当中逐步完善的,但是笔者认为,这些工作对于设计一个好的人机对话交互体验来说至关重要,这些内容均需要在对话交互开始之前就预先定义好,以便于在设计对话的时候使用。
设计后的思考
当完成一个对话交互系统的设计后,我们还需要对整个对话系统的风格和交互体验进行设计。
单是完成一个清晰和对话流程设计是不够的,设计者需要从一个更高的维度去看整个对话系统,塑造对话系统的“性格”。就像人一样,我们希望在设计对话系统的时候,也要考虑到用户在与对话系统交互时的情感和感受。
当计算机设备能够实现语音交互时,它就不再是一个冷冰冰的“机器”,而是变成了一个富有个性的“机器人”。
理想状态下,情感共鸣将在用户与对话系统完成交互后产生。对话交互设计的最后一步是不断通过评测与反馈,反复塑造对话系统背后的角色(avatar)。
这也就意味着,在适当的时候,笔者会为了让对话系统保持回话风格的一致性,而放弃部分对每一句问答内容质量的坚持,以牺牲单轮对话质量的代价来更好地塑造整个对话系统的“性格”。
本文介绍了对话交互设计的基本概念、重要原则与实践环节,帮助读者理清对话设计工作的大致流程和内容。
在未来,语音交互并不会代替现有的交互形式,而是与现有的交互形式相叠加,为人们的生活与交互体验带来更多的可能性。
在可预见的未来里,人们将与电子设备更紧密的结合。放眼当下,最新的科研成果正在不断的被开源和共享,应用技术的门槛也正变得越来越低。技术的领先性已经不再是行业的壁垒,只有应用体验的差异化才是企业与产品的突破口。
好的对话交互设计,必将带来好的体验,而好的体验必将把成功带给行业和企业。
本文由 @单师傅 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash ,基于 CC0 协议