带你了解语音识别技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

带你了解语音识别技术作者:邵建勋倪俊杰
来源:《中国信息技术教育》2021年第21期
编者按:语音识别技术在生活中的应用已经非常广泛,如在车载导航、智能家居、日常办公等领域都有涉及,给人们生活带来了很多便利。

由于语音交互是一种更便利、更自然、更高效的沟通形式,所以它必定成为未来最主要的人机交互接口之一。

那么,你真的了解语音识别技术吗?它的发展历程和技术原理又是怎样的?我们一起来了解。

语音识别技术又称ASR技术(Automatic Speech Recognition),指机器自动将语音转成文字。

语音识别技术属于人工智能方向的一个重要分支,涉及许多学科,如信号处理、计算机科学、语言学、声学、生理学、心理学等,是人机自然交互技术中的关键环节。

语音识别技术诞生半个多世纪以来,由于缺乏突破性进展,在技术上存在较大缺陷,一直处在实验室研究阶段,没有在实际应用中得到认可。

2009年是一个转折点,深度学习和人工神经网络的兴起,使得语音识别技术在常见词汇场景下识别率超过了95%,这意味着语音识别技术具备了与人类相仿的语言识别能力。

但不可否认的是,即使到现在,语音识别技术还是存在着很多不足,如对强噪声、超远场、强干扰、多语种、大词汇等场景下的语音识别还有很大的提升空间。

国内某机构发布的《2018—2022年中国智能语音行业深度调研及投资前景预测报告》显示,我国智能语音市场整体处于启动期,智能车载、智能家居、智能可穿戴等垂直领域处于爆发前夜。

因此,我们有必要深入了解一下它的发展历程和技术原理。

语音识别技术的发展历程
最早在1952年,著名的贝尔实验室首次实现Aurdrey英文数字识别实验系统(6英尺高),该系统有两个特点:①可以识别0~9单个数字的发音;②对熟人的发音识别准确度高达90%以上。

同时期,美国麻省理工学院的林肯实验室开发了针对十个元音的非特定人语音识别系统,普林斯顿大学的RCA实验室也开发了单音节识别系统,能够识别特定人的十个单音节词中所包含的不同音节。

20世纪60年代,东京无线电实验室、京都大学和NEC实验室在语音识别领域取得了开拓性的进展,并且各自先后制作了能够进行语音识别的专用硬件。

1971年,美国国防部研究所赞助了五年期限的语音理解研究项目,推动了语音识别的一次大发展。

参与该项目的公司和学术机构包括IBM、卡内基梅隆大学、斯坦福研究院。

Harpy 系统也就在这样的背景下诞生了,该系统能够识别1011个单词,在这个时期大词汇量的孤立词识别取得实质性进展。

到了80年代,研究思路发生了重大变化,语音识别技术已经从孤立词识别发展到连续词识别,当时出现了两项非常重要的技术,即隐马尔科夫模型(HMM)、N-gram语言模型。

1984年,IBM发布的語音识别系统在5000个词汇量级上达到了95%的识别率。

1987年12月,李开复开发出世界上第一个“非特定人连续语音识别系统”。

1990年,大词汇量连续词识别持续进步,提出了区分性的模型训练方法MCE和MMI,使得语音识别的精确度日益提高,尤其适用于长句子的情况。

与此同时,还提出了模型自适应方法MAP和MLLR。

到了21世纪,随着深度学习的不断发展,神经网络之父Hinton提出深度置信网络(DBN)。

2009年,Hinton和学生Mohamed将深度神经网络应用于语音识别,在小词汇量连续语音识别任务TIMIT上获得成功。

2017年,微软发布新的里程碑技术。

通过改进微软语音识别系统中基于神经网络的听觉和语言模型,在Swichboard上达到词错误率仅为5.1%,比此前降低了大约12%,并声称已经超过专业速记员(在特定环境下)。

由于中文语音识别的复杂性,我国在声学模型方面的研究进展相对更快一些,主流方向是更深更复杂的神经网络技术融合端到端技术,也表现了强大的技术实力。

2018年,科大讯飞提出深度全序列卷积神经网络(DFCNN),使用大量的卷积直接对整句语音信号进行建模。

同年,阿里提出LFR-DFSMN模型,将低帧率算法和DFSMN算法进行融合,语音识别错误率相比上一代技术降低20%,解码速度提升3倍。

2019年,百度提出了流式多级的截断注意力模型SMLTA,该模型在LSTM和CTC的基础上引入了注意力机制来获取更大范围和更有层次的上下文信息。

在线语音识别率上,该模型比百度上一代Deep Peak2模型提升相对15%的性能。

语音识别的基本过程
首先是确定文件格式。

常见的声音格式MP3、WMA等都是压缩格式,要进行语音识别须采用WAV格式的声音文件,也就是未经压缩的,里面存的是声音波形的具体信息。

声音在数字化之后就是图1所示的形状。

在开始语音识别之前,有时需要把首尾段的静音切除,尽量降低对后续步骤的干扰。

然后把声音分帧,即把声音分成一系列的小段,每小段称为一帧,分帧的操作不是简单切割,而是通过移动窗函数来实现,帧与帧之间一般是有交叠的,如图2所示。

接着,再进行声学特征提取。

语音分成小段后,再做波形变换。

常见的一种变换方法是提取MFCC(声学特征有多种)特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。

声音就成了一个M行N列的矩阵,称之为观察序列,如下页图3所示。

每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。

接着就是把矩阵变成文本的过程。

把帧识别成状态,把状态组合成音素,把音素组合成单词。

“音素”是构成单词发音的基本单元,英语常用的音素集是由卡内基梅隆大学设计的一套由39个音素构成的音素集,汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还需分声调。

“状态”可以理解为比音素更细分的语音单位,通常把一个音素划分为3个“状态”,如下页图4所示。

图中每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音
素,若干个音素组合成一个单词。

所以只要知道每帧语音对应哪个状态,语音识别的工作就完成了。

帧对应的状态寻找是根据对应状态的概率大小来进行的,概率大小的数据来源于“声学模型”,这个模型里存了很多参数,通过这些参数就可以知道帧和状态对应的概率。

获取这些参数的方法叫做“训练”,这就需要使用大量语音数据。

因为每帧都会得到一个状态号,所以结果会是非常多的杂乱无章的状态号。

实际上一段语音不会有太多的音素,最常用的方法是使用隐马尔可夫模型(Hidden Markov Model,HMM)。

这个模型通过构建一个状态网络,从中寻找与声音最匹配的路径。

总的来说,语音识别的过程其实就是在状态网络中搜索一条最佳路径。

语音识别主流技术介绍
从语音识别算法的发展来看,语音识别技术主要分为三大类:第一类是模型匹配法,包括矢量量化(VQ)、动态时间规整(DTW)等;第二类是概率统计方法,包括高斯混合模型(GMM)、隐马尔科夫模型(HMM)等;第三类是辨别器分类方法,如支持向量机(SVM)、人工神经网络(ANN)和深度神经网络(DNN)等,以及多种组合方法。

下面对主流的识别技术做简单介绍。

1.动态时间规整(DTW)
Dynamic Time Warping(DTW)由日本学者Itakura提出,是一种衡量两个长度不同的时间序列的相似度的方法。

其应用也比较广,主要是用在模板匹配中,如用在孤立词语音识别(识别两段语音是否表示同一个单词)、手势识别、数据挖掘和信息检索中等。

在语音识别中,由于语音信号的随机性,如即使同一个人发的同一个音,只要说话环境和情绪不同,时间长度也不尽相同,因此时间规整是必不可少的。

DTW是一种将时间规整与距离测度有机结合的非线性规整技术,在语音识别时,需要把测试模板与参考模板进行实际比对和非线性伸缩,并依照某种距离测度选取距离最小的模板作为识别结果输出。

动态时间规整技术的引入,将测试语音映射到标准语音时间轴上,使长短不等的两个信号最后通过时间轴弯折达到一样的时间长度,进而使得匹配差别最小,结合距离测度,得到测试语音与标准语音之间的距离。

在实现小词汇表孤立词识别系统时,DTW识别率及其他指标与HMM算法实现几乎等同。

又由于HMM算法复杂,在训练阶段需要提供大量的语音数据通过反复计算才能得到模型参数,而DTW算法本身既简单又有效,因此DTW算法在特定的场合下获得了广泛的应用。

2.支持向量机(SVM)
SVM法即支持向量机法(Support Vector Machine),由俄罗斯统计学家、数学家Vapnik 等人于1995年提出,具有相对优良的性能指标。

该方法是建立在统计学习理论基础上的机器
学习方法。

通过学习算法,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化间隔类与类,因而有较好的适应能力和较高的分准率。

该方法只需要由各类域的边界样本的类别来决定最后的分类结果。

支持向量机算法的目的在于寻找一个超平面H(d),该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM法亦被称为最大边缘算法。

待分样本集中的大部分样本不是支持向量,移去或者减少这些样本对分类结果没有影响,SVM法对小样本情况下的自动分类有着较好的分类结果。

SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题。

简单地说,就是升维和线性化。

升维,就是把样本向高维空间做映射,一般情况下会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津。

但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归)。

一般的升维都会带来计算的复杂化,而SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”。

这一切要归功于核函数的展开和计算理论。

选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
①线性核函数K(x,y)=x·y;
②多项式核函数K(x,y)=[(x·y)+1]^d;
③径向基函数K(x,y)=exp(-|x-y|^2/d^2);
④二层神经网络核函数K(x,y)=tanh(a(x·y)+b)。

3.矢量量化(VQ)
矢量量化VQ(Vector Quantization)是一种广泛应用于语音和图像压缩编码等领域的重要信号压缩技术,其基本原理是把每帧特征矢量参数在多维空间中进行整体量化,在信息量损失较小的情况下对数据进行压缩。

模拟信号是连续的值,而计算机只能处理离散的数字信号,所以在将模拟信号转换为数字信号的时候,我们可以用区间内的某一个值去代替这一个区间,如[0,1]上的所有值变为0,则[1,2]上的所有值变成1,以此类推。

因此,它不仅可以减小数据存储,而且还能提高系统运行速度,保证语音编码质量和压缩效率,一般应用于小词汇量的孤立词语音识别系统。

4.隐马尔科夫模型(HMM)
隐马尔科夫模型是一种统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。

其难点是从可觀察的参数中确定该过程的隐含参数,然后利用这些参数来做进一步的分析,目前多应用于语音信号处理领域。

在该模型中,马尔科夫(Markov)链中的一个状态是否转移到另一个状态取决于状态转移概率,而某一状态产生的观察值取决于状态生成概率。

在进行语音识别时,HMM首先为每个识别单元建立发声模型,通过长时间训练得到状态转移概率矩阵和输出概率矩阵,在识别时根据状态转移过程中的最大概率进行判决。

5.高斯混合模型(GMM)
帧对应的状态寻找是根据对应状态的概率大小来进行的,概率大小的数据来源于“声学模型”,这个模型里存了很多参数,通过这些参数就可以知道帧和状态对应的概率。

获取这些参数的方法叫做“训练”,这就需要使用大量语音数据。

因为每帧都会得到一个状态号,所以结果会是非常多的杂乱无章的状态号。

实际上一段语音不会有太多的音素,最常用的方法是使用隐马尔可夫模型(Hidden Markov Model,HMM)。

这个模型通过构建一个状态网络,从中寻找与声音最匹配的路径。

总的来说,语音识别的过程其实就是在状态网络中搜索一条最佳路径。

语音识别主流技术介绍
从语音识别算法的发展来看,语音识别技术主要分为三大类:第一类是模型匹配法,包括矢量量化(VQ)、动态时间规整(DTW)等;第二类是概率统计方法,包括高斯混合模型(GMM)、隐马尔科夫模型(HMM)等;第三类是辨别器分类方法,如支持向量机(SVM)、人工神经网络(ANN)和深度神经网络(DNN)等,以及多种组合方法。

下面对主流的识别技术做简单介绍。

1.动态时间规整(DTW)
Dynamic Time Warping(DTW)由日本学者Itakura提出,是一种衡量两个长度不同的时间序列的相似度的方法。

其应用也比较广,主要是用在模板匹配中,如用在孤立词语音识别(识别两段语音是否表示同一个单词)、手势识别、数据挖掘和信息检索中等。

在语音识别中,由于语音信号的随机性,如即使同一个人发的同一个音,只要说话环境和情绪不同,时间长度也不尽相同,因此时间规整是必不可少的。

DTW是一种将时间规整与距离测度有机结合的非线性规整技术,在语音识别时,需要把测试模板与参考模板进行实际比对和非线性伸缩,并依照某种距离测度選取距离最小的模板作为识别结果输出。

动态时间规整技术的引入,将测试语音映射到标准语音时间轴上,使长短不等的两个信号最后通过时间轴弯折达到一样的时间长度,进而使得匹配差别最小,结合距离测度,得到测试语音与标准语音之间的距离。

在实现小词汇表孤立词识别系统时,DTW识别率及其他指标与HMM算法实现几乎等同。

又由于HMM算法复杂,在训练阶段需要提供大量的语音数据通过反复计算才能得到模
型参数,而DTW算法本身既简单又有效,因此DTW算法在特定的场合下获得了广泛的应用。

2.支持向量机(SVM)
SVM法即支持向量机法(Support Vector Machine),由俄罗斯统计学家、数学家Vapnik 等人于1995年提出,具有相对优良的性能指标。

该方法是建立在统计学习理论基础上的机器学习方法。

通过学习算法,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化间隔类与类,因而有较好的适应能力和较高的分准率。

该方法只需要由各类域的边界样本的类别来决定最后的分类结果。

支持向量机算法的目的在于寻找一个超平面H(d),该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM法亦被称为最大边缘算法。

待分样本集中的大部分样本不是支持向量,移去或者减少这些样本对分类结果没有影响,SVM法对小样本情况下的自动分类有着较好的分类结果。

SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题。

简单地说,就是升维和线性化。

升维,就是把样本向高维空间做映射,一般情况下会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津。

但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归)。

一般的升维都会带来计算的复杂化,而SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”。

这一切要归功于核函数的展开和计算理论。

选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
①线性核函数K(x,y)=x·y;
②多项式核函数K(x,y)=[(x·y)+1]^d;
③径向基函数K(x,y)=exp(-|x-y|^2/d^2);
④二层神经网络核函数K(x,y)=tanh(a(x·y)+b)。

3.矢量量化(VQ)
矢量量化VQ(Vector Quantization)是一种广泛应用于语音和图像压缩编码等领域的重要信号压缩技术,其基本原理是把每帧特征矢量参数在多维空间中进行整体量化,在信息量损失较小的情况下对数据进行压缩。

模拟信号是连续的值,而计算机只能处理离散的数字信号,所
以在将模拟信号转换为数字信号的时候,我们可以用区间内的某一个值去代替这一个区间,如[0,1]上的所有值变为0,则[1,2]上的所有值变成1,以此类推。

因此,它不仅可以减小数据存储,而且还能提高系统运行速度,保证语音编码质量和压缩效率,一般应用于小词汇量的孤立词语音识别系统。

4.隐马尔科夫模型(HMM)
隐马尔科夫模型是一种统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。

其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来做进一步的分析,目前多应用于语音信号处理领域。

在该模型中,马尔科夫(Markov)链中的一个状态是否转移到另一个状态取决于状态转移概率,而某一状态产生的观察值取决于状态生成概率。

在进行语音识别时,HMM首先为每个识别单元建立发声模型,通过长时间训练得到状态转移概率矩阵和输出概率矩阵,在识别时根据状态转移过程中的最大概率进行判决。

5.高斯混合模型(GMM)。

相关文档
最新文档