重庆方言语音识别系统的设计与实现
2018-02-05,,,
,,,
(1.重庆第二师范学院 数学与信息工程学院,重庆 400065;2.西华师范大学 电子信息工程学院,四川 南充 637000)
0 引言
语音是人类交流信息中最自然、最方便、最有效的手段。随着计算机技术的发展和广泛应用,人们思考如何将语音交流的这些优点赋予给计算机,这样就能让计算机能够和人们利用语音进行自然、方便的交流。语音识别技术就能够实现让计算机赋予听懂语音的功能。语音识别技术简单来讲,就是将模拟的自然语音通过数字信号处理技术转换成数字信号,然后通过计算机利用模式识别技术将数字信号识别成语音对应的文本。
经过几十年的发展,汉语普通话的语音识别已经发展得比较成熟。中国一些高校、科研院所以及科技公司很早就开展了语音识别的研究。比如中国科学技术大学[1]、中国科学院声学研究所[2]、科大讯飞[3]等。中国幅员辽阔,人口众多,因此方言也较多。处于西南地区的重庆地区和四川东部地区就有特点很明显的方言称为重庆方言。将重庆方言作为语音识别的研究对象,可以促进重庆方言语音技术发展的同时,还有助于重庆方言文化的传承,以及方便重庆地区利用习惯的方言与计算机进行交流。
1 语音识别概述
1.1 语音识别原理
语音识别就是将语音信息识别成相应的文本信息。具体来讲就是将连续的自然语音经过数字信号处理技术获得能表征自然语音的数字信号,并利用这些数字信号对已经建立的声学模型对训练,形成声学模型库。在识别语音的时候,对待识别的语音进行数字化处理并获得相应数字信号,这些数字信号和声学模型库中的模型进行匹配,从而得出识别结果的过程。
从上面语音识别的简单定义可以看出,语音识别分为两个阶段,一个是训练阶段,另一个是识别阶段。训练阶段即模型训练阶段,是对语料库中的语料进行数字化处理后,然后提出能够表征语音信号的特征参数,再利用特征参数对新建的语音原始模型进行充分的重估训练,最后得到语音模型库。识别阶段即是待识别语音进行模型匹配的阶段,是对待识别的原因信号进行数字化,和训练阶段一样,获得特征参数,再利用模式识别方法对模型库中的模型进行匹配,最后获得语音识别结果。语音识别的原理图如图1所示。
图1 语音识别原理
1.2 语音识别基元
语音识别基元是语音识别的最小单元,也是语音识别过程中声学建模的最小单元。根据不同的使用环境,常用的识别基元有音素、声韵母、音节、字节、词语、短语等。英语的语音技术应用领域常用因素作为音素,汉语常常以声韵母为识别基元。汉语普通话共有22个声母(含零声母),39个韵母。汉语声母表和韵母表分别如表1[4]和表2[4]所示。
表1 汉语普通话声母表
表2 汉语普通话韵母表
重庆方言虽然也属于汉语,但是和汉语普通话存在一些差异。在声母方面的差异在于重庆方言只有19个声母,重庆方言不能区分/n/和/l/,也就是说没有鼻音声母/n/,并且通常把声母/h/读成/f/;在韵母方面的差异在于重庆方言只有6个单韵母,并且没有/ing/和/eng/这两个后鼻音韵母[5]。
1.3 特征参数
语音特征参数能够表征语音信息,也就是说语音特征参数能够反应出语音之间的不同特征。常见语音特征参数有线性预测系数(linear predictive coefficients, LPC)、线性预测倒谱系数(linear predictive cepstral coefficients, LPCC)、基于Mel频率倒谱系数(mel frequency cepstral coefficients,MFCC)。不同的特征参数有它们相应的优劣,语音的优劣最终是由人耳朵感知来决定的,因此特征参数的选择取决于是否接近人耳对语音信号频率的感知特性。根据人们对语音信号的研究可知,人耳对语音的感知能力在1 kHz以下和在1 kHz以上分别表现出线性关系和对数关系。因此,人们提出Mel频率[6]概念来体现人耳对语音的感知状况,Mel为人耳对语音感知的衡量单位。如图2所示。
图2 Mel频率与Hz频率的对应关系
根据图2的Mel频率与Hz频率的关系,本文选择更加接近人耳感知特定的基于Mel频率倒谱系数(MFCC)为特征参数。
1.4 声学模型
从图1的语音识别原理可以看出,声学模型在整个语音识别系统中起着承上启下的关键作用。在实际的语音识别过程中声学模型远比承上启下的作用要大。声学模型是语音识别过程中的能够描述说话人特征在特征空间中的概率密度分布,声学模型的选择影响着语音识别的效果。常用的声学模型有隐马尔可夫模型(hidden markov model,HMM)、高斯混合模型(gaussian mixture model,GMM)、向量量化(vector quantization,VQ)模型、人工神经网络(artificial neural network,ANN)模型等。其中HMM模型对于语音处理领域是较成熟的声学模型,本文根据实际情况选择HMM模型作为该语音识别系统的声学模型。
HMM模型是由马尔可夫演变而来,由“单链”的马尔可夫变成“双链”的HMM模型,其中一条隐藏的链描述了状态的转移,产生一定的状态序列,因此不可观测;另外一条可见的链描述了状态和观测值之间的统计对应关系。观察者只能通过可见的观测值来感知状态的转移关系。常见的5状态的HMM模型如图3[7]所示。
图3 5状态的HMM模型
从图3中可以看出,5状态的HMM模型只有中间3个状态有状态转移,这是由于5状态的HMM模型左右两端的状态只起到前后连接作用,这两个状态并没有高斯分布。因此图3只能看到3个状态才有状态转移标示。
2 语音识别系统的实现
2.1 语料库的建立
语料库是实现语音识别系统的基础,语料库由语音文件和文本标注文件两部分组成。本文将建立重庆方言语料库,选取具有独特重庆方言的部分词语形成本系统所需的语料库。
2.1.1 采集重庆方言词语文本
本文采集了20个极具重庆方言的词语,并有汉语普通话含义进行对应。重庆方言词语文本如表3所示。
表3 重庆方言词语文本(部分)
2.1.2 语音录音人的选择
本文所采集的重庆方言语音,因此要选择重庆本地人,并且该录音人平常的日常生活都是以重庆方言为交流语言。
2.1.3 语音录制环境的配置
本文语音录制软件采用Cool Edit Pro 2.1。录音软件界面如图4所示。录音软件参数设置为单通道、16 bit量化、16 kHz采样率,并保存为WAV格式。
图4 Cool Edit Pro 2.1录音软件界面
2.1.4 语音录制
在安静的录音环境中,录音人对照表3的重庆方言词语逐一进行录制,录制过程中声音要响亮,语速适中,每一个词语录制10遍,每一遍之间要有停顿,便于下一步对词语进行编辑剪辑。
2.1.5 语料库的整理
将录制后的语音进行编辑整理,并将语音对应的文本标注与语音文件进行一一对应。本文的语料库共有25个重庆方言,每一个重庆方言发音10遍,共计25*10个语音文件,其中25*8个语音文件作为语音训练集,剩下的25*2个语音文件作为语音测试集,最终的语料库由训练集和测试集组成。
2.2 语音识别系统的搭建
语音识别系统的搭建分为两个过程,一个是训练过程,另一个是识别过程。训练过程是利用已经建立好的语料库中的语音文件和文本文件对声学模型进行重估训练,并得到声学模型库。识别过程是对待识别的语音进行预处理,得到语音相应的特征参数,然后利用一定的模型匹配原则得到语音识别结果,系统再对语音识别结果进行分析,最后输出识别结果。本文的语音识别系统是基于HTK(HMM Toolkit)[8]搭建的。重庆方言语音识别系统框图如图5所示。
图5 重庆方言语音识别系统框图
由图5可知,语音识别系统有训练过程和识别过程组成。下面本文将对这两个过程中的重要部分进行阐述。
2.2.1 目标语法的建立
重庆方言语音识别系统定义了一个目标语法,将采集到的25个重庆方言对应的文本全部写进目标语法中,在本文中所有重庆方言用其对应的发音来表示,如重庆方言的“抵拢倒拐”就用“dilongdaoguai”来表示。部分语法格式如下:
dialect=dilongdaoguai|badaoluzou|leifanzenzang|zenlanqibie|baxinbude;
( [sil](
语法格式中的“”表示变量符号,“dialect”表示自定义的变量,“sil”表示静音,“sp”表示短暂停,“|”表示或关系,“[]”表示可选项,“<>”表示一个或可以多个重复。
2.2.2 重庆方言词网络与词典的建立
第1步中建立的目标语法是为了方便用户能够理解重庆方言在语音识别中的定义规则,而计算机不能识别这样定义的规则,那么需要将目标语法转换成计算机能够理解的规则,这样的规则体现在词网络中。部分词网络如图6所示。
图6 部分词网络
搭建语音识别系统需要一个用于搜索重庆方言的词典。部分词典如图7所示。图中左侧一栏表示用于该语音识别系统训练的重庆方言,右侧一栏表示重庆方言对应的发音。
图7 部分词典
2.2.3 语音文件的预处理
语音输出语音识别系统之后第一步就是要进行预处理,预处理的内容包括采样量化、分帧加窗、预加重等。采样量化将模拟信号处理为数字信号;分帧加窗将非平稳的语音信号分成10~30 ms的短时准平稳信号,便于获取语音特征参数,加窗的窗函数较多,本文选取哈明窗函数(如公式1);预加重是为了解决高频低功率谱的问题,提高语音高频部分的功率谱。
(1)
2.2.4 语音特征参数的提取
自然语音信号中包含了很多的信息,如果对这些都进行特征提取的话,会造成特征信号的冗余,不便对语音信号进行处理。因此,只需要对能够表征语音特征的部分参数进行提取,本文采用更加接近人耳听觉感知特性的Mel频率倒谱系数[9](Mel Frequency Cepstral Coefficients, MFCC)为该系统的语音特征参数。MFCC的提取过程如图8所示。
图8 MFCC提取过程
2.2.5 声学模型的训练
本文选取5个状态的HMM模型作为声学模型。5状态的HMM模型中除去首尾起着链接作用的两个状态,只有中间三个状态才有高斯分布,每一个状态有均值和协方差以及五个状态的转移概率。HMM模型的部分参数如图9所示。
图9 HMM模型的部分参数
2.2.6 语音识别
语音识别过程是实现测试过程中待测试语音的特征参数与训练过程中得到的声学模型进行模式匹配。模式匹配过程实际就是求取待识别语音的特征参数匹配声学模型库中模型的最大似然概率。由本文2.4声学模型中对HMM模型的介绍可知,HMM模型由一条隐藏的链描述了状态的转移和一条可见的链描述了状态和观测值之间的统计对应关系组成,观察者只能通过可见的观测值来感知状态的转移关系。利用维特比算法来确定观测值向量在声学模型上的最大似然概率,得到语音识别结果。
2.2.7 识别结果分析
待测试语音进行语音识别后又对应的识别结果,为了能够直观地看到识别结果,语音识别系统需要对识别结果进行分析。识别结果分析包括识别的正确率、和精确度,具体包括总的待识别语音的总数、识别正确的数量、删除错误数量、替换错误数量、插入错误数量等。
3 语音识别系统的测试与分析
利用语料库中用于测试的25*2个重庆方言语音文件作为该语音识别系统的待测试语音文件。测试过程为先对这个25*2个重庆方言语音文件进行预处理,得到相应的语音帧信号;然后对语音帧信号进行参数提取,得到相应的语音特征参
数;再利用维特比算法对模型库中的声学模型进行匹配,得到概率最大的匹配结果;最后对匹配进过进行分析,得到语音识别结果。重庆方言语音识别结果如图10所示。
图10 重庆方言语音识别结果
4 结论
本文以重庆方言为实验研究对象,采集了重庆方言文本,并录制成语音文件,建立了重庆方言语料库。搭建了由训练过程和识别过程组成的重庆方言语音识别系统。利用语料库中的测试集语料作为待识别语料对搭建好的重庆方言语音识别系统进行了测试与分析。实验结果表明,所设计的重庆方言语音识别系统能够实现重庆方言的识别,并且语音识别的正确率达到100%。
[1] 张仕良. 基于深度神经网络的语音识别模型研究[D].合肥:中国科学技术大学, 2017.
[2] 张鹏远, 计 哲, 侯 炜,等.小资源下语音识别算法设计与优化[J]. 清华大学学报(自然科学版), 2017(2):147-152.
[3] http://www.iflytek.com/[EB/OL].
[4] 王海燕. 汉藏双语跨语言统计参数语音合成的研究[D]. 兰州:西北师范大学, 2015.
[5] 钟维克. 重庆方言音系研究[J]. 重庆社会科学, 2005(6):118-118.
[6] Yu D, Deng L, Droppo J, et al. A minimum-mean-square-error noise reduction algorithm on Mel-frequency cepstra for robust speech recognition[C]. IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, 2008:4041-4044.
[7] Ling Z H, Kang S Y, Zen H, et al. Deep learning for acoustic modeling in parametric speech generation: A systematic review of existing techniques and future trends[J]. Signal Processing Magazine, IEEE, 2015, 32(3): 35-52.
[8] Young S, Evermann G, Gales M, et al. The HTK book (for HTK version 3.4)[J]. 2009.
[9] Veton Z. Kёpuska, Elharati H A. Robust Speech Recognition System Using Conventional and Hybrid Features of MFCC, LPCC, PLP, RASTA-PLP and Hidden Markov Model Classifier in Noisy Conditions[J]. Journal of Computer & Communications, 2015,3(6):1-9.