前面几篇文章中讲了语音产品的一些认知,产品的实现原理和VUI设计原理。本篇梳理设计对话产品的流程。
关联文章:
1.解构语音交互产品–认知篇
2.解构语音交互产品–人工智能AI技术
3.解构语音交互产品–VUI设计原则
VUI设计流程可梳理为以下几点:
1.业务需求分析
2.撰写对话
3.原型设计
4.用户测试
5.开发实现:构建机器人
6.数据分析与迭代
设计目标
语音产品要考虑用户场景,进行调研分析,从而设定产品目标。
例如:基于酒店服务场景的语音助手,目标是尽可能优化用户在酒店内的体验; 基于旅行场景的机票预订助手,目标是规避用户繁琐的规划和预订流程,让用户高效完成机票预订; 基于人力资源场景的招聘助手,目标是辅助HR高效地完成整个招聘流程。
所需功能
为达到产品目标,需要分析应该做哪些功能,哪些不应该做。以订火车票的场景为例:
1)应该做:
2)不应该做:
定义了所需功能后,对功能做优先级排序,创建最小可行性功能,并持续优化和迭代。
VUI设计原则中提到创建角色画像的重要性,在火车票助手的例子中,机器人角色为:
为了探索用户行为,在开始撰写对话前,可以通过一些早期测试方法,来得到一些决策分析。这里提到一个概念:Wizard of Oz方法,国内翻译成“绿野仙踪”方法,Wizard的中文意思是“魔法师/巫师”,所以直译是奥兹魔法师。这种方法描述的是一种测试或者迭代设计方法论,直白的说,就是由真人(“巫师”)来模拟计算机,与用户进行交互。
WOz方法用于系统设计早期,通常在开发之前。具体怎么操作呢?比如在钉钉上或者其他消息应用上,注册一个账号,换上机器人的logo和名字。然后假装自己是机器人,向目标用户介绍自己,并发起对话引导。在与用户对话中,可以提前发现一些问题。比如:发送推荐的链接时,是否搭配上一句话更自然?哪些地方更适合用按钮?发现用户回复问题的不同方式,以及一些没有料想到的对话等等。
除了WOz方法,还可以用“面对面”与目标用户交谈的方法。
撰写对话之前,要考虑对话的场景。正如谷歌VUI设计原则中提到的核心要点之一:突破框架去思考。
1)新手引导示例对话,如问候语,引导语。
2)业务的常规对话,即最优路径。
3)异常情况的修复对话,比如系统没有听到或者没有理解用户的话的示例、用户订票时变更、用户取消意图等。
4)帮助流程的对话。用户请求帮助。
5)反馈流程的对话。系统向用户收集意见/服务反馈。
梳理上述场景中的逻辑的各个流程:新手引导流程、主流程、异常对话流程、帮助流程、反馈流程等。
比如订火车票的“订票”功能异常对话的信息变更逻辑流程,如下图:
异常对话除了信息变更的情况,还包括:意图变更、取消订票、语音无法识别、语义无法理解、纠错等情况。
1)意图即我们说的功能,比如订票意图、帮助意图、反馈意图。
将用户表达意图的关键字表述出来,这些关键字将启动意图。例如订票意图的关键字:我想订,你好,到北京,明天的票,帮我买/订…
2)实体是从用户处收集的变量,比如“订票”意图的实体有:
对话的目的是达成这些实体的相互了解。可以通过用户输入实体信息或者以富控件(如按钮)的形式收集。
意图和实体的映射会在创建机器人相关技能时使用。
完成上述事项后,就可以开始撰写示例对话脚本了。比如订票的最优路径的对话可能是:
用户:帮我订一张从上海到南京的火车票
BOT:好的,你想几时出发?
用户:明天下班后的时间段吧
BOT:收到,对座位有要求吗?
用户:没要求
BOT:为您找到的车次和信息如下,确认下单吗?
用户:好
BOT:已为您订好11月13日晚上7点到南京的票。
创建了示例对话后,进行模拟朗读。谷歌在其指南中介绍了工具:actions on google模拟器)
除了使用工具,也可以与其他人一起对剧本进行朗读,一个人扮演机器人,一个人按演用户。这个测试可以感觉对话是否自然,有重复吗,同词与角色形象是否匹配等。
现在大多数的语音产品,都会有屏幕显示。比如APP中的语音交互功能,车载机器人的屏幕,音箱的屏幕等。此类对话产品的设计,除了CUI设计,还有GUI设计(GUI除了展示信息,还有引导用户对话的作用。)
所以需要定义从Bot接收用户输入到输出结果的整个运行过程中,涉及所有流程的GUI、对话UI设计。
原型设计可以使用Wizard of Oz方法,也可以使用工具创建。
以真人假扮机器人模拟对话脚本的执行,能提供低保真原型。比如不能显示按钮等控件。
一些可视化制作工具,通常是无需写代码的Chatbot平台,集成了AI功能(NLP和语音技术),还可以托管机器人。 比如botsociety工具,用于创建原型,将对语音体验的关注区别开来,主要关注非语音的富交互。以下是我使用工具创建的旅游助手的景点推荐用例。
操作界面如下:
BOT SAYS 是机器人的输出,类型有文本、图片、轮播图、快捷回复、网络视图、列表、按钮。USER SAYS是用户的输入,类型有文字、图片、地址上传、语音(暂时未开放)。
支持将对话Export为GIF、MP4或AVI格式,目前免费版只能一次机会,通过升级版本(付费)和邀请好友才可获得更多机会。
用户测试越早越好,前面提到的一些方法均属于低保真的测试方法。比如:
可用性测试是通过观察用户使用产品完成典型任务,发现产品中存在的效率与满意度相关问题的方法。
在《点石成金》一书中讲“应该什么时候测试”时指出,可用性测试是需要在整个开发过程中持续进行,比如让用户测试同类竞品、现有产品、手绘的草图、原型图等都是可用性测试的方式。所以在上述的早期测试中,只要能收集真实用户的数据的测试都属于可用性测试。
除了创建一个模拟机器人的模型,还可以开始构建真正的机器人(构建方法下文会提及)让真实用户进行内测,这是抵达生产阶段最快的路径,用户用真实的数据测试真正的机器人,开发者可以获得实时和准确的反馈。
可用性测试的步骤一般为:
1)定义任务
选择核心功能、对话的主流程、高风险区域作为任务,并为用户设定场景。
在撰写任务内容时要注意:只要描述任务目标即可,避免提及相关的指令和操作步骤。
2)招募测试参与者
在目标用户中抽取测试用户,可选择有同类产品使用经验、完全没有同类产品使用经验的用户。
参与者人数:5名以内。可用性专家Jakob Nielsen推荐选择五名用户进行测试(关注成本投入,5名以上投入产出比ROI会下降)
3)设置环境
准备安装了可测试运行的机器人的APP或者电脑
4)观察和访谈
观察并记录用户在执行任务中做了什么,说了什么,遇到了什么问题。
VUI可用性测试时还要重点关注以下事项:
5)数据分析
测试完成后,统计用户的任务完成率、完成任务时长、错误数据和类型、用户对产品的满意度的评分。根据统计的信息,对问题进行描述,找到用户痛点和分析用户问题的影响程度。
6)改进和迭代
构建机器人的方法,简单可分为两种:
1)可视化制作工具和集成开发环境IDE
此类非编码Chatbot平台有:Flow XO、 PullString、Chatflow、Chatfuel、Botsify、Pandorabots、Automat、Recast.AI、Imperson、KITT.AI等。
2)人工智能AI服务
此类编码Chatbot平台有:Google API.AI、IBM Watson、微软Azure Bot、Facebook Wit.ai、 Microsoft LUIS、Msg.ai、Semantic Machines、Reply.ai、ManyChat 等
3)SDK和机器人框架
例如:Botkit、Microsoft Framework、Slapp、Twilio SDK
除了国外的Bot工具,国内也有很多Bot平台可以构建机器人。
1)没有NLP基础,工程能力、机器学习能力和KG能力也能搭建的聊天机器人。比如海知智能-ruyi.ai
2)对NLP有了解,要搭建任务型对话,实现多轮对话等,可以使用百度UNIT、腾讯云小微等。
如何在这类平台构建对话技能,百度UNIT的文档中也有很详细的描述了,并且也有实用范例。简单来讲有5个步骤:
1)创建技能
2)配置意图及实体
3)配置训练数据
4)训练模型
5)验证效果
具体可以查看以下链接:
https://ai.baidu.com/docs#/UNIT-v2-guide/top
https://ai.baidu.com/docs#/UNIT-v2-sample/top
也可查看 人机对话系统全面理解中对机对话开放平台体验(百度DuerOS)
使用这类平台的自然语言处理能力(技能平台),再结合其提供的语音技术,就可以实现语音的交互了。
如果要自主研发,一个执行简单问答任务的聊天机器人,需要搭建一个信息检索IR框架。一个能执行任务和复杂问答的聊天机器人,需要完整的语音交互框架,包含ASR、TTS、NLU、对话管理、NLG、知识图谱等功能,要考虑多轮对话的话,还需要一个多轮框架。
自主研发优点在于灵活,可根据自身业务控制机器人和流程。缺点在于学习难度大,机器人要更长时间上市,开发时间长,对工程资源有依赖性。
最后,机器人上市后,需要进行数据分析和持续迭代。
《聊天机器人:对话式体验产品设计》by Amir Shevat
《语音用户界面设计》by Cathy Pearl》
《点石成金》by Steve Krug
从0到1构建聊天机器人
十大聊天机器人平台推荐
实操平台:百度UNIT平台、腾讯云小微、海知智能-ruyi、Bibotsociety