一种基于GMM噪声估计的模型组合语音识别方法技术领域
本发明涉及一种基于GMM噪声估计的模型组合语音识别方法,具体是用测
试环境下提取的噪声参数调整语音识别系统声学模型的参数,使其与实际环境下
提取的含噪语音特征参数相匹配,提高系统噪声鲁棒性的模型组合方法;属于语
音识别技术领域。
背景技术
自动语音识别技术可以为电子设备提供方便的输入接口,已广泛应用于移动
电话、平板电脑、导航仪等移动设备。但是在实际应用中,环境噪声等语音变异
性是不可避免地,这通常会导致语音识别系统的性能急剧下降,因此有必要采取
措施提高语音识别系统的环境鲁棒性。鲁棒语音识别算法通常可以划分为两大
类,即前端特征域方法和后端模型域方法。
特征域方法的目的是提高声学特征的噪声鲁棒性,或者对测试环境下提取的
含噪特征进行补偿,使其特性尽量与纯净训练语音接近。特征域方法的优点是与
系统后端的具体识别器无关,且计算量较小,因而可以用于各种实时系统。后端
模型域方法对预先训练的声学模型的参数进行调整,使之与当前测试环境相匹
配,用参数调整后的声学模型对测试语音直接识别,无需对提取的特征参数进行
额外处理。模型域方法主要包括模型自适应和模型组合,前者通过实际环境下的
少量测试语音调整声学模型的参数,可以用于处理任意语音变异性;后者对纯净
语音声学模型和单高斯噪声模型进行模型组合,生成用于声学解码的含噪语音声
学模型,只能用于处理由环境噪声引起的语音变异性。
与特征域方法相比,模型自适应可以取得更高的补偿精度,但会导致巨大的
计算量。这是因为大词汇量语音识别系统的基本语音单元很多,通常会达到数百
个,而每个基本语音单元对应一个声学模型,在模型自适应中每个声学模型都要
参与自适应参数估计运算,其计算量难以被实时系统所接受。传统模型组合的噪
声参数来自于语音间隙期的噪声估计,但是在非平稳环境下的一段连续语音中,
可能不存在足够的语音间隙期,噪声估计无法进行,模型参数就不能及时更新,
因而其应用范围受到限制。
发明内容
发明目的:针对现有技术中存在的问题,为了兼顾计算复杂度和补偿精度,
就需要将特征补偿和模型自适应结合起来,在不降低识别率的前提下尽量减小算
法的计算量,提高语音识别系统的实际应用能力。本发明提供一种基于高斯混合
模型(GMM:GaussianMixtureModel)噪声估计的模型组合语音识别方法。该
算法用一个含有较少高斯单元的GMM从含噪测试语音中实时估计噪声的参数,
并监控噪声的变化。估得的噪声参数被用于与纯净语音声学模型进行模型组合,
得到含噪语音声学模型,然后直接对测试语音进行声学解码,得到识别结果。
技术方案:一种基于GMM噪声估计的模型组合语音识别方法,主要包括训
练阶段和测试阶段两个部分,下面具体说明其内容。
(1)GMM训练:在训练阶段,用所有基本语音单元的训练语音训练生成
一个统一的GMM,该GMM含有较少的高斯单元,可以近似表示语音倒谱特征
的分布。
(2)HMM训练:在训练阶段,用每个基本语音单元的训练语音训练生成
该基本语音单元的隐马尔可夫模型(HMM:HiddenMarkovModel),所有基本
语音单元的HMM共同组成语音识别系统的声学模型。
(3)噪声估计:在测试阶段,用GMM从含噪测试语音中实时提取噪声的
均值和方差,并根据平均对数似然值判断噪声是否发声变化。为了保证最大似然
估计的准确性,噪声信息通常每100帧更新一次,噪声估计的同时判断噪声的变
化情况。噪声估计按时间间隔(100帧)进行,不需要进行语音活动检测,对静
音段也当作含噪语音处理。
(4)模型组合:对某个时间间隔,如果噪声发声变化,则对纯净语音声学
模型和单高斯噪声模型进行模型组合,生成与当前测试环境相匹配的含噪语音声
学模型,该模型不仅用于声学解码,而且其参数被保存在内存中;如果噪声没有
变化,则该时间间隔不必进行模型组合,可以直接用存储在内存中的上一个时间
间隔的含噪语音声学模型作为当前测试语音声学模型。根据噪声变化情况决定是
否进行模型组合,有助于节省电能,延长移动设备的电池使用时间。
(5)声学解码:用模型组合得到的含噪语音声学模型直接对含噪测试语音
进行声学解码,得到识别结果。
模型组合中涉及DCT计算的部分,用快速DCT算法实现,以减少模型组合
的计算量。根据噪声的变化标识决定是否进行模型组合运算,有助于多数应用环
境下节省移动设备的电能,延长电池使用时间。该方法结合了GMM噪声估计计
算量小和模型补偿精度高的优点,在不降低识别性能的前提下,显著降低了系统
的计算复杂度,提高了系统的实际应用能力。
附图说明
图1为基于GMM噪声估计的模型组合语音识别系统总体框架图;
图2为噪声估计模块的具体结构图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本
发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发
明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
基于高斯混合模型噪声估计的模型组合语音识别方法,其总体框架如图1
所示。本发明的核心内容是噪声估计模块,其具体结构如图2所示。下面详细说
明噪声估计模块和模型组合模块的具体实施方案。
1、噪声估计
本发明只考虑加性背景噪声,不处理信道卷积噪声。根据美尔频率特征参数
(MFCC:Melfrequencycepstralcoefficient)提取过程可知,含噪语音倒谱特征y
与纯净语音倒谱特征x的关系可以表示为:
y=Clog(exp(C-1x)+exp(C-1n))(1)
其中,n是加性噪声的倒谱特征,C和C-1分别表示离散余弦变换矩阵及其逆矩阵。
将式(1)在定点(μx,μn0)处用一阶矢量泰勒级数(VTS:VectorTaylorSeries)展
开,可以得到如下的线性近似式:
y=(I-U)(x-μx)+U(n-μn0)+Clog(exp(C-1μx)+exp(C-1μn0))(2)
其中,μx和μn0分别是x的均值和n的初始均值,I是单位矩阵,U的表达式如下:
U = C d i a g ( exp ( C - 1 μ n 0 ) exp ( C - 1 μ x ) + exp ( C - 1 μ n 0 ) ) C - 1 - - - ( 3 ) ]]>
式(3)中diag()表示以括号中向量的元素为对角元素生成对角矩阵。
对式(2)分别取均值和方差,即可得到含噪语音y的均值μy和方差Σy:
μy=Uμn-Uμn0+Clog(exp(C-1μx)+exp(C-1μn0))(4)
Σy=(I-U)Σx(I-U)T+UΣnUT(5)
其中,μn和Σn分别是噪声n的均值和方差,也就是待估计的噪声参数。
假设GMM有M个高斯单元,其输出概率表达式为:
b ( x t ) = Σ m = 1 M c m { ( 2 π ) - D / 2 | Σ x , m | - 1 / 2 exp [ - 1 2 ( x t - μ x , m ) T Σ x , m - 1 ( x t - μ x , m ) ] } - - - ( 6 ) ]]>
其中,xt是第t帧纯净语音倒谱特征向量;cm、μx,m、Σx,m分别是GMM第m个
高斯单元的混合系数、均值向量和协方差矩阵;D是特征向量的维数。为了从含
噪语音中估计μn和Σn,构建如下辅助函数:
Q ( λ ‾ | λ ) = - 1 2 Σ m = 1 M Σ t = 1 T γ m ( t ) [ ( y t - μ y , m ) T Σ y , m - 1 ( y t - μ y , m ) - l o g | Σ y , m - 1 | ] - - - ( 7 ) ]]>
其中,γm(t)=P(kt=m|yt,λ)是在给定含噪语音yt和GMM先验参数λ条件下,第t
帧含噪语音yt属于GMM第m个高斯单元的后验概率;是待估计的GMM参
数集。
对GMM的第m个高斯单元,式(4)和(5)可以分别表示为:
μy,m=Umμn-Umμn0+Clog(exp(C-1μx,m)+exp(C-1μn0))(8)
σy,m=(Vm·*Vm)σx,m+(Um·*Um)σn(9)
式(9)中,Vm=I-Um;σy,m、σx,m、σn是分别用Σy,m、Σx,m、Σn的对角元素生成
的方差向量;操作符·*表示矩阵的点乘,即两个相同维数的矩阵的对应元素相乘。
将式(8)和(9)分别代入辅助函数式(7),并分别令辅助函数关于μn和σn
的导数等于0,即可得到μn和σn的估计公式:
μ n = [ Σ m = 1 M Σ t = 1 T γ m ( t ) U m T Σ y , m - 1 U m ] - 1 [ Σ m = 1 M Σ t = 1 T γ m ( t ) U m T Σ y , m - 1 ( y t - C l o g ( exp ( C - 1 μ x , m ) + exp ( C - 1 μ n 0 ) ) + U m μ n 0 ) ] - - - ( 10 ) ]]>
σ n = [ Σ m = 1 M Σ t = 1 T γ m ( t ) G m ( U m · * U m ) ] - 1 [ Σ m = 1 M Σ t = 1 T γ m ( t ) G m ( ( y t - μ y , m ) · * ( y t - μ y , m ) - ( V m · * V m ) σ x , m ) ] ]]>
( 11 ) ]]>
式(11)中, G m = ( U m T · * U m T ) d i a g [ ( ( V m · * V m ) σ x , m + ( U m · * U m ) σ n 0 ) - 2 ] . ]]>
为了能从含噪语音中实时估计噪声参数,GMM通常只包含较少的高斯单
元。假设语音识别系统有400个基本语音单元,每个语音单元的HMM有6个状
态,每个状态包括4个高斯单元,这样整个声学模型就有9600个高斯单元。而
本发明用于噪声估计的GMM取40个高斯单元即可,这样在不考虑HMM前向
后向算法计算量的前提下,GMM噪声估计的计算量只有直接用声学模型进行噪
声估计计算量的为了保证最大似然估计的准确性,在GMM噪声估计中,
每100帧作为一个时间间隔,每个时间间隔估计一次噪声。估得的噪声参数不仅
输出给模型组合模块,而且存储在内部存储器中,用于下一个时间间隔的噪声变
化判断。
噪声估计模块的另一个重要作用是监控噪声的变化。虽然用GMM进行噪声
估计可以使噪声估计的计算量大大减小,但是由于声学模型包含的高斯单元非常
多,对声学模型每个高斯单元进行模型组合的计算量仍然很大。另一方面,语音
识别系统所处的应用环境大部分是近似平稳的,或者噪声是缓慢变化的,噪声快
速变化的应用环境只占很小的比例。因此,模型组合没有必要每个时间间隔都进
行,只有在检测到噪声发生变化时,才对含噪语音声学模型的参数进行调整,否
则就直接用上一个时间间隔的含噪语音声学模型对当前测试语音进行识别。这样
设计的好处在于可以节省电能,延长移动设备的电池使用时间。
噪声的均值和方差都是多维向量,因此通过直接比较两个时间间隔的噪声参
数来判断噪声是否改变是非常困难的。本发明采用两个含噪语音GMM每帧的平
均似然差监控噪声的变化。如图2所示,GMM模型组合模块首先从存储器中读
出上一个时间间隔的噪声参数,并与纯净语音GMM组合,得到含噪语音GMM。
然后用含噪语音GMM对当前时间间隔的测试语音进行概率计算,得到每帧特征
向量的平均概率对数值,即平均似然值。最后将该平均似然值与噪声参数估计模
块输出的平均似然值进行比较,如果平均似然差小于等于阈值,则认为噪声没有
发生变化;如果大于阈值,则认为噪声发生了变化。平均似然差的阈值一般设置
在0.5~1之间,针对不同的系统需要通过实验数据进行适当调整。
2、模型组合
通常可以认为含噪语音声学模型与纯净语音声学模型具有高斯对应关系,只
需要将纯净语音声学模型每个高斯单元的均值和方差调整到与含噪测试环境相
匹配,就可以得到含噪语音声学模型。
模型组合模块收到当前时间间隔的噪声参数后,首先查看噪声变化标识,如
果噪声没有改变,则直接采用上一个时间间隔的含噪语音声学模型作为当前时间
间隔的声学模型,输出到声学解码模块。如果噪声发生了变化,则根据以下公式
更新声学模型的参数:
μy,kij=Clog(exp(C-1μx,kij)+exp(C-1μn))(12)
σy,kij=((I-Ukij)·*(I-Ukij))σx,kij+(Ukij·*Ukij)σn(13)
其中,μx,kij和σx,kij分别是第k个纯净语音HMM的第i个状态的第j个高斯单元的
均值向量和方差向量(协方差矩阵的对角元素);μy,kij和σy,kij分别是含噪语音
HMM的均值向量和方差向量,Ukij由下式决定:
U k i j = C d i a g ( exp ( C - 1 μ n ) exp ( C - 1 μ x , k i j ) + exp ( C - 1 μ n ) ) C - 1 - - - ( 14 ) ]]>
设μx,kij为D维向量,则式(12)和(13)的乘法次数都与D2成正比,而式
(14)的乘法次数与D3成正比,因此直接用矩阵乘法实现式(14)会导致巨大
的计算量。式(14)可以改写为:
U k i j = C [ d i a g ( exp ( C - 1 μ n ) exp ( C - 1 μ x , k i j ) + exp ( C - 1 μ n ) ) C - 1 ] - - - ( 15 ) ]]>
式(15)方括号中对角矩阵与C-1相乘的乘法次数为D2,C与方括号中矩阵
的乘法可以通过D次快速离散余弦变换实现,其乘法次数约为D2log2D次,如果
D=32,则模型组合的计算量减小为原矩阵乘法的