语音产品设计-学习(一)
语音交互主要包含自动语音识别(Automatic Speech Recognition, ASR)、自然语言理解(Natural Language Understanding, NLU)、自然语言生成(Natural Language Generation, NLG)与文字转语音(Text to Speech, TTS)等技术,如同真人在进行对话时的「聆听」、「理解」与「回复」三种能力。也因为是基于人类的听学系统,目前这样的交互方式也被定义为对话式人机界面(Conversational User Interface, CUI)。
实时语音识别 ASR 技术能力的成熟,已经让机器取代这部份的工作变成了可能,目前语音识别的正确率在较好的环境中甚至能高达 97% 的正确率。ASR 与 TTS 技术相对而言比较成熟,已经有较多的商业应用。但像是自然语言理解 NLU 与基于声音语调、说话內容来分析的情绪识别,这些都还在路上。而 NLU 技术目前在较简单的垂直领域中,像天气查询这类的领域还是有不错的表现,但到了交叉领域的通用问答中,还有很大的训练量要做。必须依赖于更好的算法以及大数据,才能慢慢的变成像电影钢铁侠中看到的 Javis 那样,有能力进行更自然的语音交互。
而说到语音体验设计师的设计职责,或许大多人会聚焦重点在电子音效与对话内容的设计,在这个思考上,我们内部前后做了许多次的专家工作坊以及设计研究。借由模拟人机交互中一个著名的「恐怖谷理论」,來探索机器拟人的过程中,有哪些因子是在三维无界面设计中,设计师可以发力的维度。
「恐怖谷理论」是指当机器人与人类在外表、动作上的相似程度到达一定水准时,人类会对机器人产生及为负面的情感。我们试着透过给予指定剧本以及无剧本的方式,让一人扮演真人一扮演机器人来重现这样的场景。借由观察以及会后访谈,来找出虚拟脚色的扮演中,有哪些设计因子会影响最终体验。
从总结的设计维度中,可以发现透过模拟对谈的行为模式,以及相关知识结构、人格情绪的设计,来树造出一个虚拟人格。而熟悉过程的设计,其实就相当于我们在 GUI 中常说的大数据或千人千面,透过语音交互的使用过程,了解用户的习惯进而帮助他达到更好的使用体验。其实也就像是我们在现实生活中,与人刚认识到熟悉的的这么一个过程。当然在目前的时间点,这样的设计可能还稍微早了些,离真正的技术实现、甚至商业应用都还有些距离。
拟人设计因子上,包含了较为概括的声音、谈吐、知识、行为、性格这些维度,这些因子都是帮助我们在所谓的拟人化设计这件事情上,设计师可以从哪些角度来思考。当然这些设计维度与因子都需要根据不同的业务、不同的场景来做不同的设定。
从专家工作坊、资料调研与相关设计研究的成果可以发现,在商业环境中的语音体验设计师,具体的设计内容可以分为「声音形象」、「对话式交互」与「对话内容」等三个部分:声音形象的设计,其实就相当于 GUI 上我们所说的品牌设计,但更大的挑战是设计师要更去思考赋予机器人性的平衡点在哪。以目前的技术和可实现的情境,一味的赋予人性可能会带来过度设计的问题,进而导致使用者会有过度预期。
上图的流程,是我们将整个语音交互过程中的几个重要节点归纳出来,大致可以分为「聆听」、「处理」、「回馈」三个阶段,我们想透过使用者在进行一次语音交互的使用过程,来说明如何做好预期管理。考虑到设备装置在家庭环境或固定空间中的拾音环境,如果设备能随时的聆听背景中的声音,可能会造成我们日常生活中的混乱。因此在设计这类型产品时,通常都会考虑到加入「唤醒硬件」的关键字设计,避免用户过于轻易的或误用的唤醒设备。
用户触发设备后,所输入的语料会经过识别、解析、知识对应等不同阶段。在语意解析甚至会有多轮或者追问的交互行为,来获取完成用户意图所需要的关键信息。 而最后再透过语料装配的工作,如『杭州今天天气晴朗,温度 24 到 20 度』,让用户能高效的接收语音信息,并有较为一致性的体验。
「响应状态设计」与「语音内容设计」相对容易理解,而对用户的操作心智所做的预期管理,主要是透过「交互行为的设计」来实现。我们在 GUI 的设计上会因当前的场景是任务导向、内容导向而有不同的设计。在 CUI 也是一样的,为了避免用户在使用过程中,变成 Anything to Anything 的使用心智。将用户所进行的输入分类成不同的任务类型,并有对应的使用回馈,能帮助用户对他所准备进行的操作有相符的期望。
问答操作型:
问答类以及命令类的操作都属于这个类型,用户在这类型的语音输入大多是具有明确目的性的。比如用户问「杭州今天天气怎么样?」的问题时,更多的期望是「讲出一句话」后,就能获得反馈。
这种类型也是我们在设计中,更倾向让用户进行的操作。因为这类型的语料,在语句上会自然的拥有比较结构化、比较带有指向性的关键词。因此在设计中,我们也会以「效率」、「明确」的设计目标,来尽量缩减这个类型的整体交互过程,提高操作效率。
内容播报型:
像新闻类的、音频类的操作我们都归类在这个类型内。这类型的共通点是,语音 TTS 上的回复可能内容会比较多。比如用户问了「读一下『望庐山瀑布』」,语音 A.I. 会回复「好的。『望庐山瀑布』,作者李白。『日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天。』」
在这种类型我们考虑的是「清晰」、「简洁」,因为使用者在接收信息时,只有 30% 是透过声音的刺激。短时间的聆听注意力也大约只在 11~13 秒左右。当语音 TTS 内容超出一定信息接收成本时,很容易就会影响用户的使用体验。
引导同步型:
最后这个类型实际是语音交互上,最重要也最难实现的类型。前面更多的任务,会是比较明确且带结构关键字信息的,语音 A.I. 还算能清楚的理解用户所表达的意图。而「引导同步」类型的问题,大多是用户所说的语音命令不够明确,或者需要更复杂的交互操作,比如界面的辅助。
在真实的用户对话场景中,比较不结构化、或者较为范化的口语表达方式,才是真实的对话方式,因此这种类型我们需要利用「对话框架」的设计,来判断用户的意图,并逐步的限缩对话走向直到用户完成意图的输入。
语音交互的对话框架,包含了「引导」、「限缩」、「回复」、「转化」四个过程。如果用户所表达的意图内容,带有一些关键字但仍不足时,我们可以透过引导以及局限性的追问句,来快速限缩用户的对话走向,让用户知道如果他要完成意图,还需要什么样的关键信息输入。总体而言,每次的语音教交互其实都会有「引导」、「限缩」、「回复」的过程。根据用户当前的输入信息完整度,来判断处于什么样阶段的内容回复。而「转化」就是视操作复杂度,适时提供可视化的帮助,或者是引导用户开启下段可能的谈话。例如用户完成买咖啡的交互后,我们还能询问是否要在定一些点心。
所以在语音对话设计上,设计师要先分析当前场景,用户所可能会进行的输入,是什么样的类型,并透过不同类型所对应的回馈结果,让用户在家居场景中可能会输入的 Anything ,转变成相对应的结构,语音交互的过程中,用户就会自然的有预期的相符。
情感化设计
GUI 中我们有情感化设计,在 CUI 中也是一样的。但在无界面可以施力的情形下,GUI 中的操作引导、系统错误、甚至一些界面的空状态设计,要怎么在 CUI 上体现呢。GUI 的设计中,我们常会借助文字提示和界面组件来引导用户,我们透过界面上的标题、导航条、按钮等方式,来帮助用户完成对应的意图操作。
但 CUI 中没有了图像界面的辅助,用户在表达相同的意图时,可能会有很多种表达方式。就如前面所说的,用户会使用较为口语的方式来进行交互。例如用户想设一个提醒时,可能会有「帮我设一个提醒下午开会」、「提醒我下午开会」、「设个下午开会提醒」等不同表达方式,甚至在语音 A.I. 说「是否添加一个提醒『下午开会』」来确认用户的意图时,用户可能也会用「是的」、「对」、「Yes」等方式来回复。
在这个问题上,其实设计师能做的事情相对有限。我们除了能透过挖掘场景,尽量收集用户对相同意图可能产生的不同语料外。我们还要透过非正常流程的设计,来帮助用户离开错误场景,也就是所谓的 CUI 情感化设计。比如像前面的语音交互流程中,几个可能发生错误的节点,都需要设计师事先设计发生错误时,该如何引导用户脱离当前场景。
语音设计方法的最后也是最重要的一条原则,对于设计师与开发工程师来说,语音设计中最困难的就是要面对大量无用的语音输入信息。整个语音交互过程中,用户可能的输入是无法像 GUI 那样相对规范化的。甚至在语音交互中,用户只能依靠有限的提示以及短期记忆来完成整个操作。所以语音设计上最好的方式,就是快速的利用一些工具,去模拟整个语音交互过程。前面所说的语音设计上,管理用户预期的方式,更多的是要透过亲身体验才能有比较清楚的认知。
设计角色的改变
从「科技型态的改变」、「设计思维的改变」到「设计方法的改变」,跟大家分享我们所总结出的「语音体验设计师」的设计思维,以及透过对话交互行为、内容结构、限缩谈话等方式来进行的「语音设计预期管理」。最后要跟大家分享的是,在智能时代的语音设计中,设计师可能扮演的角色以及刚刚所提到的内容,是如何在开发流程里面实现的。
目前在 GUI 类型的产品设计过程中,整个开发流程会有几个不同的角色,包含产品、交互、视觉、开发等来负责每个阶段的产出物。但在 CUI 中其实有个致命的问题,也就是所谓的「无界面设计」所导致的,就是交互与产品在工作负责范围中十分不清晰,以往产品定义需求交互设计原形的工作形式,在 CUI 中是不在存在的,甚至因为没有界面,视觉在 GUI 中较为重要的设计工作也没有了施力点。
所以如前面所提的「语音体验设计师」这个新角色,到底设计师在 CUI 的开发过程中扮演了什么角色?
在 CUI 的开发过程中,最容易遇到的问题就是相同的意图,用户可能会在不同的时间、不同的地点、不同的环境中,会有不同的表达方式。所以语音设计师要进入到用户具体使用产品的环境中,去挖掘用户可能会产生的意图,以及可能的表达方式。甚至要依不同的地域、不同的人群来看会有多少种的可能语料。
CUI 与 GUI 在处理错误的设计上,最大的不同是由于没有界面来限定用户的操作, CUI 需要提前考虑用户可能的使用方式,需求挖掘的越多、语料收集的越齐全,用户在进行语音交互时遇到错误情境的可能性越小。
挖掘出用户的意图以及语料后,语音设计师的主要工作会在设计用户进行语音交互的对话流程,设计方法中所提的「对话框架设计」以及其他预期管理的方式,都是在这个阶段来使用。设计师需要将用户输入的意图,书理出几种可能的使用路径,并依不同的的逻辑关系来判断用户可能会需要的反馈。这部份这就仰赖设计师根据不同的任务属性,订定不同的设计目标,来编写最终用户所接收到的语音内容。
最后也是最重要的,所以语音设计出来的产物,都必须放到真实环境中来测试使用。真实的使用过程往往会超乎一开始所设定的语音流程,因此透过实际的操作才能知道设计产出是否符合真实的使用情境。
语音交互场景,需求与心理分析
总结一下:
1.确保提出问题,避免利用陈述句或者反问句提问
2.不要假设用户知道怎么做,该有的提示还是要有
3. 但是又不可以把用户当傻瓜,有些废话不提也罢
4. 显示选项要清楚且不要超过三个,超过的用更多或者帮助等语言命令
5. 在给出选项后想用户提出一个问题
6. 避免创建太多确认的对话框,除了高度后果的操作,例如: ▪ 公开显示的操作(例如,发布到社交媒体) ▪ 影响其他人的操作(例如,发送消息 ▪ 涉及金钱的行为(例如,当用户购买东西时)
7. 提供语言示例或者介绍时要说明功能。
8. 注意提示用户他们所处的位置和让他们确保输入正确
9.最后加上问题保持对话不断裂。
10.选项后面注意加上编号,方便用户不用说选项全名
11.不要用括号等文本数据
12.重要的但是不适合语音表达的内容可以采用推送等方式告知
13.在重复提示前加上一个提示以帮助用户知道问题在哪,从而说出正确而内容。
14.每个功能总要留有余地的给用户留一个退出机制并且提示
15.当错误发生时,不要将责任归咎于用户,但也不要刻意说抱歉
16.要推测用户可能说的不支持的事情,然后智能地处理它们。
自然语言处理(简称NLP)
NLP研究计算机处理人类语言的一门技术,包括:
1.句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。
2.信息抽取:从给定文本中抽取重要的信息,比如,时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。
3.文本挖掘(或者文本数据挖掘):包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。
4.机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。
5.信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用1,2,3的技术来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。
6.问答系统: 对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。
7.对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,要开发用户画像以及基于用户画像的个性化回复。
随着深度学习在图像识别、语音识别领域的大放异彩,人们对深度学习在NLP的价值也寄予厚望。再加上AlphaGo的成功,人工智能的研究和应用变得炙手可热。自然语言处理作为人工智能领域的认知智能,成为目前大家关注的焦点。很多研究生都在进入自然语言领域,寄望未来在人工智能方向大展身手。
NLP分析技术的三个层面
NLP分析技术大致分为三个层面:词法分析、句法分析和语义分析。
1)词法分析
词法分析包括分词、词性标注、命名实体识别和词义消歧。
分词和词性标注好理解。
命名实体识别的任务是识别句子中的人名、地名和机构名称等等命名实体。每一个命名实体都是由一个或多个词语构成的。
词义消歧是要根据句子上下文语境来判断出每一个或某些词语的真实意思。
2)句法分析
句法分析是将输入句子从序列形式变成树状结构,从而可以捕捉到句子内部词语之间的搭配或者修饰关系,这一步是NLP中关键的一步。
目前研究界存在两种主流的句法分析方法:短语结构句法体系,依存结构句法体系。其中依存关系句法体系现在已经成为研究句法分析的热点。
依存语法表示形式简洁,易于理解和标注,其可以很容易的表示词语之间的语义关系,比如句子成分之间可以构成施事,受事,时间等关系。这种语义关系可以很方便的应用鱼语义分析和信息抽取等方面。依存关系还可以更高效的实现解码算法。
句法分析得到的句法结构可以帮助上层的语义分析,以及一些应用,例如机器翻译、问答、文本挖掘、信息检索等。
3)语义分析
语义分析的最终目的是理解句子表达的真实语义。当时用什么形式来表示语义一直没有能够很好的解决。语义角色标注是比较成熟的浅层语义分析技术。给定句子中的一个谓词,语义角色标注的任务就是从句子中标注出这个谓词的施事、受事、时间、地点等参数。语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要。
1.基于规则的智能问答
基于规则的智能问答通常是预先设置了一系列的问答规则,在用户输入一个问题时,去规则库里匹配,看是否满足某项规则,如果满足了就返回该规则对应的结果。如规则库里设置“*你好*”->“你好啊!”,那么用户在输入“你好”时,机器人会自动返回“你好啊!”。如果规则库非常庞大,达到了海量的级别库,则可对规则建立倒排索引,在用户新输入一个问题时,先去倒排索引中查找命中的规则集合,再通过这个集合中的规则进行匹配返回。
使用规则库的智能问答优点是简单方便,准确率也较高;缺点是规则库要经常维护扩展,而且覆盖的范围小,不能对新出现的问题进行回答。
2.基于检索的智能问答
基于检索的智能问答很像一个搜索引擎,但又和搜索引擎不同,相比搜索引擎而言,智能问答更侧重于用户意图和语义的理解。它基于历史的问答语料库构建索引,索引信息包括问题、答案、问题特征、答案特征等。用户问问题时,会将问题到索引库中匹配,首先进行关键字和语义的粗排检索,召回大量可能符合答案的问答对;然后通过语义和其他更丰富的算法进行精排计算,返回最好的一个或几个结果。