基础概念
ASR(Automatic Speech Recognition):语音识别,声音到文字
NLU(Natural Language Understanding):自然语言理解,理解意图
DM(Dialog Management):对话管理
NLG(Natural Language Generation):自然语言生成
TTS(Text To Speech):语音合成
语音识别
- 信号处理,声学特征提取
声音信号是连续的模拟信号,要让计算机处理首先要转换成离散的数字信号,进行采样处理,通常的采样率为16KHz。
在数字化的过程中,我们首先要判断端头,确定语音的开始和结束,然后要进行降噪和过滤处理(除了人声之外,存在很多的噪音),保证让计算机识别的是过滤后的语音信息。获得了离散的数字信号之后,为了进一步的处理我们还需要对音频信号 分帧。因为离散的信号单独计算数据量太大了,按点去处理容易出现毛刺,同时从微观上来看一段时间内人的语音信号一般是比较平稳的,称为 短时平稳性,所以会需要将语音信号分帧,便于处理。
通常一帧为20~50毫秒,同时帧与帧之间有交叠冗余,避免一帧的信号在两个端头被削弱了影响识别精度。常见的比如 帧长为25毫秒,两帧之间交叠15毫秒,也就是说每隔25-15=10毫秒取一帧,帧移为10毫秒,分帧完成之后,信号处理部分算是完结了。
随后进行的就是整个过程中极为关键的特征提取。将原始波形进行识别并不能取得很好的识别效果,而需要进行频域变换后提取的特征参数用于识别。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。
实际应用中,这一步有很多细节,声学特征也不止有MFCC这一种,具体这里不讲,但是各种特征提取方法的核心目的都是统一的:尽量描述语音的根本特征,尽量对数据进行压缩。 - 识别字符,组成文本
特征提取完成之后,就进入了特征识别,字符生成环节。这部分的核心工作就是从 每一帧当中找出当前说的音素,再由多个音素组成单词,再由单词组成文本句子。 其中最难的当然是从每一帧中找出当前说的音素,因为我们每一帧是小于一个音素的,多个帧才能构成一个音素,如果最开始就错了则后续很难纠正。
怎么判断每一个帧属于哪个音素了?最容易实现的办法就是概率,看哪个音素的概率最大,则这个帧就属于哪个音素。那如果每一帧有多个音素的概率相同怎么办,毕竟这是可能的,每个人口音、语速、语气都不同,人也很难听清楚你说的到底是Hello还是Hallo。而我们语音识别的文本结果只有一个,不可能还让人参与选择进行纠正。
这时候多个音素组成单词的统计决策,单词组成文本的统计决策就发挥了作用,它们也是同样的基于概率:音素概率相同的情况下,再比较组成单词的概率,单词组成之后再比较句子的概率。 - 信号处理:模数转换,识别端头,降噪等等。
- 信号表征:信号分帧,特征提取,向量化等等。
- 模式识别:寻找最优概率路径,声学模型识别音素,词汇模型和语言模型识别单词和句子。
NLU
自然语言理解 Natural Language Understanding,目的是让机器能理解人类语言中的意图,输入来源可以是ASR的文本结果 ,也可以是纯粹的文本。在整个的语音交互中,NLU起到承上启下的作用,只有完全理解了会话的意图,机器才能给出精准的反馈。而由于人类语言的多样性和复杂性,NLU一直是人工智能领域的硬骨头,本章将重点介绍其中的难点,技术原理,关键指标。
对话管理
ASR让机器听见,而NLU让机器听懂,再然后就应该是听懂之后怎么做,而这些则是对话管理的工作。为了获得获得接近甚至等同于人的交互体验,对话管理非常重要,在不同的系统中,对于对话管理有不同的翻译,有的称作对话引擎Conversation Engine,这里我们统一称为对话管理DM(Dialog Management)。
DM根据用户的输入获得任务,然后明确出任务所需要的信息,对接业务平台完成任务,或者要求用户进一步输入更多信息,直到能够完成任务,最后将任务执行结果返回给用户。
可以这么说,ASR和NLU决定了语音交互的下限,而DM则决定了语音交互的上限。DM就像是语音交互的大脑,灵魂,是业务能力的载体,决定着交互逻辑的下一步状态,下一个动作。
自然语言生成
NLU将文本转化为语义表征,而NLG将语义表征转化为文本,是一个逆向的NLU过程。NLU本质上来说是一个文本分类器,而NLG则对应的是一个文本泛化器。传统上,将输入数据转换为输出文本的NLG问题通过将其分解为多个子问题来解决, 一般可以将这些问题分为以下六类:
1.内容确定(Content determination):决定在建文本中包含哪些信息,
2.文本结构(Text structuring):确定将在文本中显示的信息,
3.句子聚合(Sentence aggregation):决定在单个句子中呈现哪些信息,
4.词汇化(Lexicalisation):找到正确的单词和短语来表达信息,
5.引用表达式生成(Referring expression generation):选择单词和短语以识别域对象,
6.语言实现(Linguistic realisation):将所有单词和短语组合成格式良好的句子。
其中内容确定在语音交互的结构中通常已经由DM决定了,剩余部分可以划分为两个部分,一部分为句子规划,另一部分为句子实现。
网友评论