本发明属于语音识别领域,具体涉及到针对纯净测试语音和含噪测试语音两种环境采用不同语音特征进行声学解码的鲁棒语音识别方法。
背景技术:
目前大多数语音识别系统以美尔频率倒谱系数(mfcc:melfrequencycepstralcoefficients)为特征参数,以隐马尔可夫模型(hmm:hiddenmarkovmodel)为声学模型。mfcc采用对数函数对mel滤波后的系数进行非线性变换。对数函数不仅对高能量系数进行压缩,而且对低能量系数进行放大,因此mfcc考虑了各语音单元之间的细节差异,在纯净语音环境中可以取得很高的识别率。
在实际应用中,环境噪声往往是不可避免的,语音的低能量系数容易被噪声覆盖,不但不能提高语音单元之间的分辨率,而且使噪声环境下提取的mfcc与训练环境下生成的纯净语音声学模型严重失配,导致系统的识别性能下降。因此,在含噪测试语音环境下,没有必要考虑语音的低能量系数,只需要对高能量系数进行压缩即可。
技术实现要素:
发明目的:针对现有技术中存在的问题,本发明提供一种基于双特征模型的鲁棒语音识别方法。在该方法中,针对语音的低能量系数容易被噪声覆盖的特点,用幂函数取代对数函数,对含噪语音的mel谱系数进行压缩,得到含噪语音的幂美尔频率倒谱系数(pmfcc:powermelfrequencycepstralcoefficients),并根据含噪输入语音对声学模型的参数进行变换,使其与当前环境相匹配;如果输入语音是纯净测试语音,则仍采用传统的mfcc进行声学解码,保持纯净语音的高识别率。
本发明的具体步骤如下:
(1)用一个含有较少(一般取10个高斯单元)高斯单元的高斯混合模型监测输入语音中是否含有噪声,输出噪声存在标识;
(2)提取输入语音的美尔频率倒谱系数(mfcc),包括声学预加重、加窗、分帧、快速傅里叶变换、mel滤波、取对数和离散余弦变换;
(3)提取输入语音的幂美尔频率倒谱系数(pmfcc),用指数为真分数的幂函数取代对数函数对mel滤波后的系数进行压缩,其他步骤与mfcc相同;
(4)根据噪声存在标识,选择mfcc或pmfcc,作为系统的特征参数,前者用于纯净输入语音,后者用于含噪输入语音;
(5)如果输入是纯净语音,则直接输出mfcc声学模型用于声学解码;如果输入是含噪语音,则需要对pmfcc声学模型进行模型自适应,使其与含噪测试环境相匹配,再对含噪输入语音进行声学解码。
附图说明
图1为基于双特征模型的鲁棒语音识别系统的总体框架,主要包括噪声监测、mfcc提取、pmfcc提取、特征选择、模型自适应和声学解码模块。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于
本技术:
所附权利要求所限定的范围。
如图1所示,基于双特征模型的鲁棒语音识别方法主要包括噪声监测、mfcc提取、pmfcc提取、特征选择、模型自适应和声学解码模块。下面逐一详细说明附图中各主要模块的具体实施方案:
1、噪声监测
用一个含有较少(一般取10个高斯单元)高斯单元的高斯混合模型对环境噪声进行监测,根据其输出概率判断输入语音中是否含有噪声。
2、mfcc提取
mfcc提取采用标准方式,包括声学预加重、加窗、分帧、快速傅里叶变换、mel滤波、取对数和离散余弦变换。
3、pmfcc提取
在pmfcc提取中,用幂函数f(x)=xα,取代对数函数,对mel滤波后的mel谱系数进行压缩,0<α<1,α是幂函数的指数,x是mel谱系数。设语音的mel谱系数为xlin,则其pmfcc为:
x=c(xlin)α(1)
其中,x表示语音的pmfcc,c表示离散余弦变换矩阵。
4、特征选择
根据噪声存在标识,选择mfcc或pmfcc,作为系统的特征参数,前者用于纯净输入语音,后者用于含噪输入语音。对于每种特征,都用其纯净训练语音参数训练生成每个语音单元的声学模型。
5、模型自适应
对于每种特征mfcc或pmfcc,都有其对应的声学模型。如果特征选择模块选择的是mfcc,则不对其声学模型进行变换,直接输出,用于声学解码;如果特征选择模块选择的是pmfcc,则需要对其声学模型的参数进行变换,使其与含噪测试环境相匹配。
设用纯净语音训练生成的pmfcc声学模型的均值向量和协方差矩阵分别为μx和σx,则根据环境噪声的均值向量μn和协方差矩阵σn对其进行参数自适应,可得:
σy=vσxvt+uσnut(3)
其中,μy和σy分别表示含噪语音的均值向量和协方差矩阵;c和c-1分别表示离散余弦变换矩阵及其逆矩阵;u和v的表达式为:
式(4)和式(5)中,diag()表示以括号中的向量元素为对角元素生成的对角矩阵。
6、声学解码
根据特征的不同,选取mfcc声学模型或自适应后的pmfcc声学模型对纯净语音的mfcc或含噪语音的pmfcc计算概率,识别出当前输入语音对应的语音单元。