一种抗噪语音识别系统的制作方法

文档序号:15494778发布日期:2018-09-21 21:26阅读:393来源:国知局

本发明涉及语音识别技术领域。



背景技术:

随着信息技术的高速发展,人机交互受到越来越多的关注,语音识别作为人机交互的关键技术,成为该领域的研究重点。语音识别是计算机通过对人类语音语义信息的提取分析,从而把语音信号转变为相应的文本或命令的高技术的语音识别技术,在工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域有着广泛的应用。

语音识别作为智能化技术的一个重要分支,其相关应用越来越广泛.然而语音信号特别容易受到噪声的污染,从采集到传输再到还原过程中,各个环节都可能受到噪声影响.语音增强技术就是专门用来处理含有噪声的语音信号的。谱减法作为语音增强技术的一种,总体上运算简单,容易实现。

目前语音识别中最主流的特征参数是梅尔频率倒谱系数(melfrequencycepstrumcoefficent,mfcc),mfcc特征是基于傅里叶变换提取的,而事实上,傅里叶变换仅适用于平稳信号的处理。听觉变换作为处理非平稳语音信号的新方法,弥补了傅里叶变换的不足,具有谐波失真少和谱平滑度好的优点。贝尔实验室的peterli博士在2011年第一次提出耳蜗滤波倒谱系数并应用于说话人识别,耳蜗滤波倒谱系数是第一个使用听觉变换的特征。虽然很多学者对cfcc特征进行研究,但是从神经元动作电位发放率与声音强度的饱和关系推导出非线性幂函数可以近似于听觉神经元—强度曲线,传统的cfcc特征提取方法并没有考虑到人耳听觉的这个特性,因此采用能够模拟人耳听觉特性的非线性幂函数提取新的cfcc特征。

一个完整的语音信号包含了频率信息和能量信息。teager能量算子作为一种非线性差分算子,能够消除零均值噪声的影响和语音增强的能力,用于特征提取中,不仅能够更好地反映语音信号的能量变化,而且能够抑制噪声,增强语音信号,用于语音识别中可以取得良好的效果。

支持向量机(supportvectormachine,svm)是基于结构风险最小化原则的一种新的机器学习技术。它可以更好的解决小样本、非线性、高维度等分类问题,并且具有良好的泛化性,广泛应用在模式识别、分类估计等问题当中,并通过其卓越的分类能力和良好的泛化性能,成为语音识别技术中较常用的分类模型。



技术实现要素:

本发明所要解决的技术问题是:如何改善语音识别效果。

本发明所采用的技术方案是:一种抗噪语音识别系统,按照如下的步骤进行:

步骤一、对于语音信号s(n)进行加窗分帧,然后做离散傅里叶变换,求出语音信号的幅值和相角

对语音信号s(n)进行加窗,采用的窗函数为汉明窗w(n):

用窗函数w(n)乘以语音信号s(n),形成加窗语音信号x(n)

x(n)=s(n)*w(n)

对加窗语音信号x(n)进行分帧处理,则语音信号x(n)表示为xn(t),其中n为帧序号,t为帧同步的时间序号,n为帧长;

对分帧后的语音信号xn(t)进行离散傅里叶变换:

其中,j表示复数,e是常数,π是常数,谐波分量序号k=0,1,...,n-1,则加窗语音信号x(n)的短时幅度谱估计为|x(n,k)|,相角为:

将|x(n,k)|的值表示为语音信号的幅值,的值表示为语音信号的相角;

步骤二、计算噪声段平均能量,通过谱减运算得到估计信号的功率谱;

噪声段的时长为is,其相应的帧数为nis,噪声段的平均能量为:

采用以下的谱减运算得到估计信号的功率谱

其中,a1和b1是两个常数,a1为过减因子,a1为增益补偿因子;

步骤三、利用谱减前的相位角信息对信号进行重构,得到谱减后的语音序列;

用谱减后的功率谱结合谱减前的相位角信息进行ifft,将频域还原到时域,得到的谱减后的语音序列

步骤四、对谱减后的语音序列采用非线性幂函数模拟人耳听觉特性提取耳蜗滤波倒谱特征cfcc及其一阶差分△cfcc,并利用维度筛选法进行特征混合;

听觉变换模拟了人耳听觉机理,是将耳蜗滤波函数作为一种新的小波基函数,运用小波变换实现滤波的过程;

谱减后的语音序列经过听觉变换后在某一频带范围内的输出为:

其中为耳蜗滤波函数,它的表达式为:

上式中β>0,其中α和β的取值决定了耳蜗滤波函数的频域形状和宽度,u(t)为单位步进函数,b2为随时间可变的实数,a2为尺度变量,θ是初始相位,一般情况下可由滤波器组的中心频率fc和最低中心频率fl决定

其中,一般的取值范围是β一般取经验值β=0.2;

人耳耳蜗的内毛细胞将经过听觉变换输出后的语音信号转变为人脑可分析的电信号:

h(a2,b2)=[t(a2,b2)]2

根据人耳的听觉特性,声音听觉神经对声音的响应持续时间会随着频率的增加而逐渐变短,说明了人耳对高频暂态成分更加敏感,因此对中心频率较高的耳蜗滤波器,需要适当缩短其时间平滑窗长。对于不同的频带选用不同的窗长,第i频带毛细胞函数平均值可以表示为:

其中d=max{3.5τq,20ms},为第i频带的平滑窗长,τq是第p个滤波器中心频带中心频率的时间长度,τq=1/fc,l为帧移,l=d/2,w是窗的个数;

毛细胞输出通过非线性幂函数完成响度变换,由能量值变为感知响度,第i个频带的感知响度可以表示为:

y(i,w)=[s(i,w)]0.101

最后再用离散余弦变换对所得的特征去相关,得到cfcc特征参数:

其中,n1为cfcc特征的阶数,m是耳蜗滤波器的通道数;

在提取cfcc参数后计算其一阶差分系数:

dx(n1)表示第x帧语音信号的一阶差分cfcc参数的第n1阶系数,k为常数,一般取k=2;

分别提取出16阶cfcc和△cfcc之后,对特征进行维度筛选,选取最能表征语音特征的部分再进行特征混合;

步骤五、在cfcc+△cfcc特征基础上,加入teocc构成融合特征;

对每一帧语音信号x(n)计算其teo能量:

ψ[x(n)]=x(n)2-x(n+1)x(n-1)

进行归一化处理并取对数得到:

最后进行dct变换得到一维的teocc;

将一维的teocc特征加入到混合特征向量的最后一维中;

步骤六、对融合特征用数据归一化处理,形成归一化训练集和归一化测试集两部分,分别给两个集合加注标签,得到训练集标签和测试集标签;

特征训练集和特征测试集中任意一个数据样本为yyi,进行归一化处理后,归一化训练集和归一化测试集中对应的数据样本为:

其中ywin和yw0x代表yi各自的极小值和极大值。

步骤七、将归一化后的训练集采用pca进行降维,并带入svm模型,得到识别准确率

将降维后的语音特征划分为训练集train_data和测试集test_data两部分,分别添加训练集标签train_label和测试集标签test_label,把训练集输入svm建立模型model:

model=svmtrain(train_label,train_data)

用建立好的模型对测试集进行测试得到识别准确率accuracy:

accuracy=svmpredict(test_label,test_data)。

本发明的有益效果是:本发明通过将谱减法引入特征提取前端,降低了噪声对语音信号的影响,采用非线性幂函数模拟人耳听觉特性提取cfcc及其一阶差分系数,在此基础上加入表征语音信号能量的teocc构成融合特征,并用主成分分析方法对该融合特征进行特征选择,将选择后特征的svm模型应用于语音识别系统,其识别准确率更高,鲁棒性更强,识别速度更快。

具体实施方式

本发明以windows7系统作为程序开发软件环境,使用matlabr2011a作为程序开发平台,本例通过9个人对10个孤立词在信噪比为0db条件下,每词发音三次的270个语音样本作为训练集,对应7个人在相应的词汇量和信噪比下的210个语音样本作为测试集。

步骤一、对于语音信号s(n)进行加窗分帧,然后做离散傅里叶变换,求出语音信号的幅值和相角

对语音信号s(n)进行加窗,采用的窗函数为汉明窗w(n):

用窗函数w(n)乘以语音信号s(n),形成加窗语音信号x(n)

x(n)=s(n)*w(n)

对加窗语音信号x(n)进行分帧处理,则语音信号x(n)表示为xn(t),其中n为帧序号,t为帧同步的时间序号,n为帧长;

对分帧后的语音信号xn(t)进行离散傅里叶变换:

其中,j表示复数,e是常数,π是常数,谐波分量序号k=0,1,...,n-1,则加窗语音信号x(n)的短时幅度谱估计为|x(n,k)|,相角为:

将|x(n,k)|的值表示为语音信号的幅值,的值表示为语音信号的相角;

步骤二、计算噪声段平均能量,通过谱减运算得到估计信号的功率谱;

噪声段的时长为is,其相应的帧数为nis,噪声段的平均能量为:

采用以下的谱减运算得到估计信号的功率谱

其中,a1和b1是两个常数,a1为过减因子,a1为增益补偿因子;

步骤三、利用谱减前的相位角信息对信号进行重构,得到谱减后的语音序列;

用谱减后的功率谱结合谱减前的相位角信息进行ifft,将频域还原到时域,得到的谱减后的语音序列

步骤四、对谱减后的语音序列采用非线性幂函数模拟人耳听觉特性提取耳蜗滤波倒谱特征cfcc及其一阶差分△cfcc,并利用维度筛选法进行特征混合;

听觉变换模拟了人耳听觉机理,是将耳蜗滤波函数作为一种新的小波基函数,运用小波变换实现滤波的过程;

谱减后的语音序列经过听觉变换后在某一频带范围内的输出为:

其中为耳蜗滤波函数,它的表达式为:

上式中β>0,其中α和β的取值决定了耳蜗滤波函数的频域形状和宽度,u(t)为单位步进函数,b2为随时间可变的实数,a2为尺度变量,θ是初始相位,一般情况下可由滤波器组的中心频率fc和最低中心频率fl决定

其中,一般的取值范围是β一般取经验值β=0.2;

人耳耳蜗的内毛细胞将经过听觉变换输出后的语音信号转变为人脑可分析的电信号:

h(a2,b2)=[t(a2,b2)]2

根据人耳的听觉特性,声音听觉神经对声音的响应持续时间会随着频率的增加而逐渐变短,说明了人耳对高频暂态成分更加敏感,因此对中心频率较高的耳蜗滤波器,需要适当缩短其时间平滑窗长。对于不同的频带选用不同的窗长,第i频带毛细胞函数平均值可以表示为:

其中d=max{3.5τq,20ms},为第i频带的平滑窗长,τq是第p个滤波器中心频带中心频率的时间长度,τq=1/fc,l为帧移,l=d/2,w是窗的个数;

毛细胞输出通过非线性幂函数完成响度变换,由能量值变为感知响度,第i个频带的感知响度可以表示为:

y(i,w)=[s(i,w)]0.101

最后再用离散余弦变换对所得的特征去相关,得到cfcc特征参数:

其中,n1为cfcc特征的阶数,m是耳蜗滤波器的通道数;

在提取cfcc参数后计算其一阶差分系数:

dx(n1)表示第x帧语音信号的一阶差分cfcc参数的第n1阶系数,k为常数,一般取k=2;

分别提取出16阶cfcc和△cfcc之后,对特征进行维度筛选,选取最能表征语音特征的部分再进行特征混合;

步骤五、在cfcc+△cfcc特征基础上,加入teocc构成融合特征;

对每一帧语音信号x(n)计算其teo能量:

ψ[x(n)]=x(n)2-x(n+1)x(n-1)

进行归一化处理并取对数得到:

最后进行dct变换得到一维的teocc;

将一维的teocc特征加入到混合特征向量的最后一维中;

步骤六、对融合特征用数据归一化处理,形成归一化训练集和归一化测试集两部分,分别给两个集合加注标签,得到训练集标签和测试集标签;

特征训练集和特征测试集中任意一个数据样本为yyi,进行归一化处理后,归一化训练集和归一化测试集中对应的数据样本为:

其中ywin和ywax代表y4各自的极小值和极大值。

步骤七、将归一化后的训练集采用pca进行降维,并带入svm模型,得到识别准确率

将降维后的语音特征划分为训练集train_data和测试集test_data两部分,分别添加训练集标签train_label和测试集标签test_label,把训练集输入svm建立模型model:

model=svmtrain(train_label,train_data)

用建立好的模型对测试集进行测试得到识别准确率accuracy:

accuracy=svmpredict(test_label,test_data)。

其中accuracy为测试集样本的分类准确率,对应该测试集样本的语音识别准确率为accuracy=88.10%。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1