天天看点

解构语音交互产品--如何设计对话产品一、VUI设计流程二、业务需求分析三、撰写对话四、原型设计五、用户测试六、构建聊天机器人

前面几篇文章中讲了语音产品的一些认知,产品的实现原理和VUI设计原理。本篇梳理设计对话产品的流程。

关联文章:

1.解构语音交互产品–认知篇

2.解构语音交互产品–人工智能AI技术

3.解构语音交互产品–VUI设计原则

目录

  • 一、VUI设计流程
  • 二、业务需求分析
    • 1.目标与功能
    • 2.定义机器人角色Persona
    • 3.早期测试:Wizard of Oz(绿野仙踪方法)
  • 三、撰写对话
    • 1.考虑对话场景
    • 2.梳理对话逻辑(流程概览)
    • 3.意图&实体映射
    • 4.撰写对话
    • 5.早期测试:模拟朗读
  • 四、原型设计
    • 1.使用WOz方法
    • 2.使用工具创建
  • 五、用户测试
    • 1.早期测试
    • 2.可用性测试
  • 六、构建聊天机器人
    • 1.使用现有Bot平台实现
    • 2.自主研发
    • 参考材料

一、VUI设计流程

VUI设计流程可梳理为以下几点:

1.业务需求分析

2.撰写对话

3.原型设计

4.用户测试

5.开发实现:构建机器人

6.数据分析与迭代

二、业务需求分析

1.目标与功能

设计目标

语音产品要考虑用户场景,进行调研分析,从而设定产品目标。

例如:基于酒店服务场景的语音助手,目标是尽可能优化用户在酒店内的体验; 基于旅行场景的机票预订助手,目标是规避用户繁琐的规划和预订流程,让用户高效完成机票预订; 基于人力资源场景的招聘助手,目标是辅助HR高效地完成整个招聘流程。

所需功能

为达到产品目标,需要分析应该做哪些功能,哪些不应该做。以订火车票的场景为例:

1)应该做:

  • 订票、退票、改签、查询业务。
  • 火车票业务中一些常见问题解答
  • 简单的问候和答谢
  • 与出行相关的天气查询功能

2)不应该做:

  • 漫无目的的闲聊

定义了所需功能后,对功能做优先级排序,创建最小可行性功能,并持续优化和迭代。

2.定义机器人角色Persona

VUI设计原则中提到创建角色画像的重要性,在火车票助手的例子中,机器人角色为:

  • 服务品牌:专业、高效
  • 派生个性:认真负责,友善,不会太随意。像私人助理。
  • 语音特质:语调平缓,语气温和

3.早期测试:Wizard of Oz(绿野仙踪方法)

为了探索用户行为,在开始撰写对话前,可以通过一些早期测试方法,来得到一些决策分析。这里提到一个概念:Wizard of Oz方法,国内翻译成“绿野仙踪”方法,Wizard的中文意思是“魔法师/巫师”,所以直译是奥兹魔法师。这种方法描述的是一种测试或者迭代设计方法论,直白的说,就是由真人(“巫师”)来模拟计算机,与用户进行交互。

WOz方法用于系统设计早期,通常在开发之前。具体怎么操作呢?比如在钉钉上或者其他消息应用上,注册一个账号,换上机器人的logo和名字。然后假装自己是机器人,向目标用户介绍自己,并发起对话引导。在与用户对话中,可以提前发现一些问题。比如:发送推荐的链接时,是否搭配上一句话更自然?哪些地方更适合用按钮?发现用户回复问题的不同方式,以及一些没有料想到的对话等等。

除了WOz方法,还可以用“面对面”与目标用户交谈的方法。

三、撰写对话

1.考虑对话场景

撰写对话之前,要考虑对话的场景。正如谷歌VUI设计原则中提到的核心要点之一:突破框架去思考。

1)新手引导示例对话,如问候语,引导语。

2)业务的常规对话,即最优路径。

3)异常情况的修复对话,比如系统没有听到或者没有理解用户的话的示例、用户订票时变更、用户取消意图等。

4)帮助流程的对话。用户请求帮助。

5)反馈流程的对话。系统向用户收集意见/服务反馈。

2.梳理对话逻辑(流程概览)

梳理上述场景中的逻辑的各个流程:新手引导流程、主流程、异常对话流程、帮助流程、反馈流程等。

比如订火车票的“订票”功能异常对话的信息变更逻辑流程,如下图:

解构语音交互产品--如何设计对话产品一、VUI设计流程二、业务需求分析三、撰写对话四、原型设计五、用户测试六、构建聊天机器人

异常对话除了信息变更的情况,还包括:意图变更、取消订票、语音无法识别、语义无法理解、纠错等情况。

3.意图&实体映射

1)意图即我们说的功能,比如订票意图、帮助意图、反馈意图。

将用户表达意图的关键字表述出来,这些关键字将启动意图。例如订票意图的关键字:我想订,你好,到北京,明天的票,帮我买/订…

2)实体是从用户处收集的变量,比如“订票”意图的实体有:

  • 出发时间{时间}
  • 出发站点{城市名称}
  • 到达站点{城市名称}
  • 火车类型{G高铁、D动车…}
  • 车次{一段字符串}
  • 座位类型{特等座、一等座…}

对话的目的是达成这些实体的相互了解。可以通过用户输入实体信息或者以富控件(如按钮)的形式收集。

意图和实体的映射会在创建机器人相关技能时使用。

4.撰写对话

完成上述事项后,就可以开始撰写示例对话脚本了。比如订票的最优路径的对话可能是:

用户:帮我订一张从上海到南京的火车票

BOT:好的,你想几时出发?

用户:明天下班后的时间段吧

BOT:收到,对座位有要求吗?

用户:没要求

BOT:为您找到的车次和信息如下,确认下单吗?

用户:好

BOT:已为您订好11月13日晚上7点到南京的票。

5.早期测试:模拟朗读

创建了示例对话后,进行模拟朗读。谷歌在其指南中介绍了工具:actions on google模拟器)

除了使用工具,也可以与其他人一起对剧本进行朗读,一个人扮演机器人,一个人按演用户。这个测试可以感觉对话是否自然,有重复吗,同词与角色形象是否匹配等。

四、原型设计

现在大多数的语音产品,都会有屏幕显示。比如APP中的语音交互功能,车载机器人的屏幕,音箱的屏幕等。此类对话产品的设计,除了CUI设计,还有GUI设计(GUI除了展示信息,还有引导用户对话的作用。)

所以需要定义从Bot接收用户输入到输出结果的整个运行过程中,涉及所有流程的GUI、对话UI设计。

原型设计可以使用Wizard of Oz方法,也可以使用工具创建。

1.使用WOz方法

以真人假扮机器人模拟对话脚本的执行,能提供低保真原型。比如不能显示按钮等控件。

2.使用工具创建

一些可视化制作工具,通常是无需写代码的Chatbot平台,集成了AI功能(NLP和语音技术),还可以托管机器人。 比如botsociety工具,用于创建原型,将对语音体验的关注区别开来,主要关注非语音的富交互。以下是我使用工具创建的旅游助手的景点推荐用例。

操作界面如下:

解构语音交互产品--如何设计对话产品一、VUI设计流程二、业务需求分析三、撰写对话四、原型设计五、用户测试六、构建聊天机器人

BOT SAYS 是机器人的输出,类型有文本、图片、轮播图、快捷回复、网络视图、列表、按钮。USER SAYS是用户的输入,类型有文字、图片、地址上传、语音(暂时未开放)。

效果图如下:

解构语音交互产品--如何设计对话产品一、VUI设计流程二、业务需求分析三、撰写对话四、原型设计五、用户测试六、构建聊天机器人

支持将对话Export为GIF、MP4或AVI格式,目前免费版只能一次机会,通过升级版本(付费)和邀请好友才可获得更多机会。

五、用户测试

1.早期测试

用户测试越早越好,前面提到的一些方法均属于低保真的测试方法。比如:

  • 撰写示例对话,并模拟朗诵。
  • APP原型测试。在VUI完成前就进行GUI原型测试。即让用户在原型上进行测试,比如滑动页面、按下按钮、及操作部分功能。
  • 绿野仙踪方法:在VUI测试时,巫师必须做一些实时动态的解读,并判断用户的这句话在真实的语音识别引擎下能否被识别。

2.可用性测试

可用性测试是通过观察用户使用产品完成典型任务,发现产品中存在的效率与满意度相关问题的方法。

在《点石成金》一书中讲“应该什么时候测试”时指出,可用性测试是需要在整个开发过程中持续进行,比如让用户测试同类竞品、现有产品、手绘的草图、原型图等都是可用性测试的方式。所以在上述的早期测试中,只要能收集真实用户的数据的测试都属于可用性测试。

除了创建一个模拟机器人的模型,还可以开始构建真正的机器人(构建方法下文会提及)让真实用户进行内测,这是抵达生产阶段最快的路径,用户用真实的数据测试真正的机器人,开发者可以获得实时和准确的反馈。

可用性测试的步骤一般为:

1)定义任务

选择核心功能、对话的主流程、高风险区域作为任务,并为用户设定场景。

在撰写任务内容时要注意:只要描述任务目标即可,避免提及相关的指令和操作步骤。

2)招募测试参与者

在目标用户中抽取测试用户,可选择有同类产品使用经验、完全没有同类产品使用经验的用户。

参与者人数:5名以内。可用性专家Jakob Nielsen推荐选择五名用户进行测试(关注成本投入,5名以上投入产出比ROI会下降)

3)设置环境

准备安装了可测试运行的机器人的APP或者电脑

4)观察和访谈

观察并记录用户在执行任务中做了什么,说了什么,遇到了什么问题。

  • 开始测试前,向用户说明测试是让他们帮助改善系统功能,任务失败也不会有什么问题。
  • 测试过程中,不要干扰和诱导用户执行任务。用户在执行过程中遇到困难也先让他们自己解决。 要求用户在执行任务时,说出自己的想法。
  • 重点观察和记录用户在什么界面说了什么做什么了。
  • 在每项任务完成后,向用户进行提问

VUI可用性测试时还要重点关注以下事项:

  • 如果用户知道可以与系统对话,那么用户知道他们什么时候该说话,什么时候不该说话吗?
  • 在语音识别功能就绪之前,他们会说什么?系统如何捕捉现实语音?

5)数据分析

测试完成后,统计用户的任务完成率、完成任务时长、错误数据和类型、用户对产品的满意度的评分。根据统计的信息,对问题进行描述,找到用户痛点和分析用户问题的影响程度。

6)改进和迭代

  • 按照问题发生的频率、严重程度、修复成本进行排序,同时给出相应的解决方案建议。
  • 给出问题修复的优先级,制定修复计划。即哪些问题在这个版本要修复,哪些问题可以在下个版本解决。
  • 问题修复后,需要再次进行回归测试。

六、构建聊天机器人

构建机器人的方法,简单可分为两种:

  • 使用现有Bot平台实现
  • 自主研发

1.使用现有Bot平台实现

1)可视化制作工具和集成开发环境IDE

  • 无需写代码
  • 集成了AI功能
  • 可以托管你的机器人

此类非编码Chatbot平台有:Flow XO、 PullString、Chatflow、Chatfuel、Botsify、Pandorabots、Automat、Recast.AI、Imperson、KITT.AI等。

2)人工智能AI服务

  • 可以使用文本或可视化的方式处理对话,让AI来管理和处理与用户的对话
  • 可以托管你的机器人
  • 可以调用API提供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)

使用这类平台的自然语言处理能力(技能平台),再结合其提供的语音技术,就可以实现语音的交互了。

2.自主研发

如果要自主研发,一个执行简单问答任务的聊天机器人,需要搭建一个信息检索IR框架。一个能执行任务和复杂问答的聊天机器人,需要完整的语音交互框架,包含ASR、TTS、NLU、对话管理、NLG、知识图谱等功能,要考虑多轮对话的话,还需要一个多轮框架。

自主研发优点在于灵活,可根据自身业务控制机器人和流程。缺点在于学习难度大,机器人要更长时间上市,开发时间长,对工程资源有依赖性。

最后,机器人上市后,需要进行数据分析和持续迭代。

参考材料

《聊天机器人:对话式体验产品设计》by Amir Shevat

《语音用户界面设计》by Cathy Pearl》

《点石成金》by Steve Krug

从0到1构建聊天机器人

十大聊天机器人平台推荐

实操平台:百度UNIT平台、腾讯云小微、海知智能-ruyi、Bibotsociety

继续阅读