人机交互-语音交互方法综述
上图展示了智能语音的界面架构,从中可以看出,语音交互所涉及的技术模块有 4 个部分,如下图所示:
首先,通过应用自动语音识别技术听到用户说的话,然后应用自然语言理解来分析语句的含义,随后用自然语言生成对话结果,最后应用文字转语音技术将结果播放给用户,完成与用户的语音交互。下面分别介绍这几种技术:
自动语音识别:Automatic Speech Recognition, ASR
ASR是通过声学模型和语言模型,将人的语音识别为文本的技术。
上图是标准语音系统的组成元素。声学概率的评估是由声音前端和一个声学模型处理的,而词组序列的概率评估则是由一个语言模型处理的。找到得分最高的词组序列的代码称为搜索组件。虽然这些模块在逻辑上是分开的,但是它们在语音识别中的应用是高度相互依赖的。
- 前端模式:输入的语言被数字化,并转化成一个矢量序列,它可以找到由一个声学前端输入的整体频谱。多年来,标准的前端模式都是用梅尔频率倒谱系数(MFCC) 的矢量来表示语言的每一个帧。该表达被选择呈现一帧的整个频谱包络,但抑制了基本频率的谐波。
- 声学模型:在一个标准系统里,语言被建模成词组序列,词组则是音素序列。但是声学表达是协同发音的结果,声音和词组里的每一个音素都相互依赖。虽然语境依赖性可以跨越几个音素或音节,许多系统仍采用“三音子” 估算近似音位,三音子即音素受到的左、右语音语境的限制条件。因此,一个词组序列是通过三音子序列的表达式来体现的。这里有许多可能存在的三音子,当中又有很多极少发生。所以标准的技术就是用决策树让它们聚集起来,然后为聚焦的集合建立模型,而不是针对每个三音子。
对于每个假定的单词序列,系统会从字典中查找每个构成单词的音素的发音,然后用决策树来查找语境中每个音素的三音子。接着,根据三音子的序列,系统会查找 HMM 的状态序列。该假设的声音概率即为输入语音与这些状态对齐后的概率。
语言模型能够计算不同单词序列的概率,并帮助识别系统指出输入话语最可能正确的含义。运用于语音识别系统中的语言模型可以分成截然不同的两种类型:语法型语言模型和随机型语言模型。
- 语法型语言模型允许一些单词序列,但并非全部。这些语法往往取决于应用程序,支持与某些特定任务相关的话语,比如预约餐厅或发布电脑命令。这些语法规定了准确的单词序列,用户须按照这些单词序列才能指示系统行为。
- 随机型语言模型估算了任意单词序列的概率。例如,“中国餐厅”就是一个合理的概率,“餐厅中国”相比起来的概率就小些,而“附近餐厅中国的一个找” 的概率就更小了。编写一个语法型语言模型以覆盖所有可能的英文输入的尝试至今没有成功,因此一般口头命令应用程序更青睐随机型语言模型。
语音识别系统的目的是把语音转换成文字。即输入一段语音信号O,要找到对应的文字序列W,使得它和语音信号的匹配程度最高。能利用标准语音识别器解决的问题都符合贝叶斯规则(Bayes’ rule),过程如下:
除了以上介绍的几种重要的技术之外,另外与语音识别相关的技术如下表所示:
自然语言理解:Natural Language Understanding, NLU
上面的语音识别只是知道用户说了什么,但真正要理解用户说的是什么,就需要依靠 NLU 这项技术。自然语言理解就是希望机器像人一样,具备正常人的语言理解能力。自然语言理解这个技能完善后,可以让机器从各种自然语言的表达中区分出来,哪些话归属于这个意图,而哪些表达不是归于这一类的,不再依赖那么死板的关键词。自然语言理解主要解决分词、词性标注、实体识别、文本分类和情感分析这几个问题。与 NLP 类似,NLU 使用算法将人类语音转化为结构化本体。然后使用 AI 算法检测意图,时间,位置和情绪等。
NLU 的实现方式经历了3次迭代:
- 基于规则的方法:通过总结规律来判断自然语言的意图,常见的方法有:CFG、JSGF等。
- 基于统计的方法:基于统计学的方法,常见的有 SVM、ME 等。
- 基于深度学习的方法:采用深度学习方式,常用的方法有 CNN、RNN、LSTM 等,后出现的 Transformer 则是更先进的方法。
自然语言生成:Natural Language Generation, NLG
NLG 主要能够做的是根据 NLP 和 NLU 之前处理的信息,在有组织结构的数据上创建,通过将结构良好的数据放置在精心配置的模板中,NLG 可以自动输出并提供可记录的数据形式,例如分析报告、产品描述、以数据为中心的博客文章等。在语音交互的角度,自然语言生成的在这种情况下,依靠算法编程的机器可以完成以内容开发者所希望的格式创建内容。自然语言生成(NLG)主要的好处在于它能够将数据集转换为人类理解的清晰叙述。
NLG 是一种独特的技术,旨在产生特定的答案。如果定期传达的任务具有一致的格式,NLG可能是自动执行这些任务的最佳资源。对于语音交互的任务来讲,用户倾向于接收符合日常用语的回复,所以这需要自然语言生成技术的加持。
NLG 有两种方式:
- text – to – text:文本到语言的生成
- data – to – text:数据到语言的生成
NLG 的3个级别如下:
- 简单的数据合并:自然语言处理的简化形式,这将允许将数据转换为文本(通过类似 Excel 的函数)。为了关联,以邮件合并(MS Word mailmerge)为例,其中间隙填充了一些数据,这些数据是从另一个源(例如 MS Excel 中的表格)中检索的。
- 模板化的 NLG:这种形式的NLG使用模板驱动模式来显示输出。以足球比赛得分板为例。数据动态地保持更改,并由预定义的业务规则集(如 if / else 循环语句)生成。
- 高级 NLG:这种形式的自然语言生成就像人类一样。它理解意图,添加智能,考虑上下文,并将结果呈现在用户可以轻松阅读和理解的富有洞察力的叙述中。
NLG 的6个步骤如下图所示:
文字转语音:Text to Speech, TTS
TTS 即“从文本到语音”,通过神经网络的设计,把文字智能地转化为自然语音流。TTS文语转换用途很广,包括电子邮件的阅读、IVR 系统的语音提示等等,能够在语音交互的过程中发挥巨大的作用。
TTS 技术主要包括以下几部分:
- 文本分析:对输入文本进行语言学分析,逐句进行词汇的、语法的和语义的分析,以确定句子的低层结构和每个字的音素的组成,包括文本的断句、字词切分、多音字的处理、数字的处理、缩略语的处理等。
- 语音合成:把处理好的文本所对应的单字或短语从语音合成库中提取,把语言学描述转化成言语波形。
- 韵律处理:合成音质(Quality of Synthetic Speech)是指语音合成系统所输出的语音的质量,一般从清晰度(或可懂度)、自然度和连贯性等方面进行主观评价。清晰度是正确听辨有意义词语的百分率;自然度用来评价合成语音音质是否接近人说话的声音,合成词语的语调是否自然;连贯性用来评价合成语句是否流畅。
综上,语音交互所涉及的4个技术模块关系图如下:
首先,通过应用自动语音识别技术听到用户说的话,然后应用自然语言理解来分析语句的含义,此时涉及多种指令执行与对话管理流程,随后用自然语言生成对话结果,最后应用文字转语音技术将结果播放给用户,完成与用户的语音交互。
总之,语音交互依赖于以上若干技术流程的紧密配合。