《小波去噪语音识别》由会员分享,可在线阅读,更多相关《小波去噪语音识别(32页珍藏版)》请在金锄头文库上搜索。
1、笪庆1,方超2,单梦凡3,封孔飞4 DaQing1,FangChao2,ShanMengfan3,FengKongfei4 061221015 061221021 061221016 061221022,摘要: 语音作为一个交叉学科,具有深远的研究价值,近 50 年的研究发展,语音识别技术已经有了极大的发展,但大多数产品能存在与实验室,没有达到使用化的效果,所以语音识别的研究还要更加深入。本为主要阐述了小波变换在语音信号去噪的应用,语音端点的检测,语音特征的提取及一种简单的语音识别算法。,引言 语音识别系统构成 语音信号的小波去噪 语音信号的端点检测 语音特征的提取 基于DTW的语音识别算法
2、实验结果及分析,让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输入这样便于使用的、自然的、人性化的输入方式。尤其是汉语,它的汉字输入一直是计算机应用普及的障碍,因此,利用汉语语音进行人机交互是一个极其重要的研究课题。它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理,工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询,以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面了。,前端处理包括
3、语音的录入、处理、特征值的提取后端是个夸数据库的搜索过程, 分为训练和识别 训练是对所建的模型进行评估、匹配、优化, 获得模型参数 识别是一个专用的搜索数据库,获取前端数值后, 有声学模型、一个语言模型和一个字典, 声学模型表示一种语言的发音声音, 可以通过训练来识别特定用户的语音模型和发音环境的特征, 语言模型是对语料库单词规则化的概率模型。字典列出了大量的单词及发音规则。总体上说,语音识别是一个模式识别匹配的过程。在这个过程中,计算机首先要根据人的语音特点建立语音模型, 对输入的语音信号进行分析,并抽取所需的特征,在此基础上建立语音识别所需的模板。然后,在识别过程中,计算机根据语音识别的整
4、体模型,将计算机中已经存有的语音模板与输入语音信号的特征进行比较, 并根据一定的搜索和匹配策略找出一系列最优的与输入语音匹配的模板。最后通过查表和判决算法给出识别结果。显然,识别结果与语音特征的选择、语音模型和语言模型的好坏、模板是否准确等都有直接的关系。,语音去噪技术是语音信号处理的一个重要分支,它在解决噪声污染、改进语音质量、提高语音可懂度等方面发挥着越来越重要的作用。当噪声与语音的频谱相似时,传统的单纯时域或频域处理往往无法达到很好的效果。小波变换是一种多尺度的信号分析方法,是分析非平稳信号的有力工具。它克服了短时傅里叶变换固定分辨率的弱点,既可以分析信号的概貌,又可以分析信号的细节。利
5、用小波变换实现信号去噪,具有很好的效果。小波阈值去噪方法是实现最简单、计算量最小的一种方法,因而得到了最广泛的应用,设(t)L2(R)(L2(R)表示平方可积的实数空间,即能量有限的信号空间), 其傅立叶变换为()。当()满足允许条件:,时,我们称(t)为一个基本小波或母小波,将母函数(t)经伸缩或平移后, 就可以得到一个小波序列。,对于连续的情况,小波序列为,其中a为伸缩因子,b为平移因子。对于离散的情况, 小波序列为,对于任意的函数f(t)L2(R)的连续小波变换为,,,小波去噪方法大致可分为三类, 第一类是基于小波变换模极大值原理进行去噪; 第二类是对含噪声信号作小波变换之后,计算相邻尺
6、度间小波系数的相关性,根据相关性区别小波系数的类型; 第三类是阈值去噪。阈值去噪即对小波系数设置阈值, 在众多小波系数中, 把绝对值较小的系数置为零,而让绝对值较大的系数保留或收缩, 然后对阈值处理后的系数进行小波逆变换,直接进行信号重构, 即可达到去噪的目的。小波阈值去噪的主要理论依据为:信号在小波域内其能量主要集中在有限的几个系数中, 而噪声的能量却分布于整个小波域内。因此经小波分解后, 信号的小波变换系数要大于噪声的小波变换系数。于是可以找到一个合适的数作为阈值,当小波系数小于该阈值时, 认为这时的小波系数主要是由噪声引起的;当小波系数大于该阈值时, 则认为其主要是由信号引起的。选择一个
7、合适的阈值, 对小波系数进行阈值处理, 就可以达到去除噪声而保留有用信号的目的。,实验中通过改进matlab系统函数ddencmp求解得阈值,并对阈值进行了一定修改,由于实验中阈值很小,在经过多次比较后,决定把已经求得的阈值thr+0.3作为重建小波的阈值。,含高斯白噪声的随机信号,去噪后的信号,对于简单的直接加入高斯噪声的信号,去噪效果还是比较理想的,但在具体实验中,环境变量等其他因素引起的噪声情况比较复杂,效果并没有以上明显。 考察主要因素还是阈值的确定存在缺陷,故还应在阈值函数上多加改进,语音信号的端点识别是语音处理和语音识别的基础,然而在噪声环境下识别语音信号的端点往往比较困难的。我们
8、采用的是经典的双门限检测法,为了区分噪音和语音,很直观的一种方法是用信号的幅度作为特征,只要设定一个门限,当信号的幅度超过该门限的时候,就认为语音开始,当幅度降低到门限以下就认为语音结束。 实际上,一般我们是使用短时能量的概念来描述语音信号的幅度的。对于输入的语音信号x(n),其中n为采样点,首先进行分帧的操作,将语音信号分成2030毫秒一段,相邻的两帧之间有1020毫秒的交叠。具体的帧长和帧移随采样频率不同而不同。,对于第i帧,第n个样本,他与原始语音信号的关系为:,第i帧语音信号的短时能量可以用下面几种算法得到:,将语音信号分帧后计算每帧的短时能量,再设一个门限,就可以实现一个简单的端点检
9、测算法。但是这样的算法是很不可靠的,因为人的语音分清音和浊音两种。浊音为声带振动发出,对应的语音信号有幅度高周期性明显的特点,而清音则不会有声带的振动,只是靠空气在口腔中的摩擦、冲击或爆破而发声,其短时能量一般比较小,往往会被基于能量的算法漏过去。所以我们用过零率来进行修正。,尽管不能用短时能量可靠地区分清音和静音,但是还是可以发现在静音段信号的波形变化相对比较缓慢,而在清音段,由于口腔空气摩擦的效果,所造成的波形在幅度上的变化比较剧烈,通常可以用一帧信号中波形穿越零电平的次数来描述这种变化的剧烈程度,称为过零率。即:,将短时能量和过零率结合起来,对一段语音进行单个语音端点的检测:,对连续语音
10、进行语音分割:,5.1 线性预测系数 5.2 线性预测倒普系数 5.3 Mel频率倒普系数,语音信号是一种典型的时变信号,然而如果把观察时间缩短到十毫秒至十几毫秒,则可以得到一系列近似稳定的信号。人的发音器官可以用若干段前后连接的声管斤进行模拟,这就是所谓的声管模型。由于发音器官不可能毫无规律地快速变化,因此语音信号是准稳定的全极点线性预测模型可以对声管模型进行很好的描述,这里信号的激励源是由肺部气流的冲击引起的,声带可以有周期振动也可以不振动,分别对应浊音和清音,而每个声管则对应一个LPC模型的极点。一般情况下,极点的个数在1216个之间,就足够清晰地描述语音信号的特征了。,语音信号的声管模
11、型,在语音识别系统中,很少直接使用LPC系数,而是由LPC系数推导出另一种参数:线性预测倒普系数(LPCC),其递推式如下:,式中 a1 ,., ap 为 p阶 LPC特征向量。cn , n = 1,., p, p为倒谱的前 p个值, 当LPCC的阶数不超过 LPC阶数 p的时候 ,用第二式进行计算;如果 LPCC阶数大于 p, 则用第三式进行计算 ,此时实际上是一种外推。,LPC模型是基于发音模型建立的,LPCC系数也是一种基于合成的参数。这种参数没有充分利用人耳的听觉特性。实际上,人的听觉系统是一个特殊额度非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系。近年来,一种
12、能够比较充分利用人耳这种特殊的感知特性的参数得到了广泛的应用,这就是Mel尺度倒谱参数,或称Mel频率倒谱参数(MFCC)。 MFCC参数的计算是以“bark”为其频率基准的,它和线性频率的转换关系是:,MFCC参数的计算通常采用如下的流程: ( 1) 确定每一帧语音采样序列的点数,系统中取 N = 256点。对每帧序列 s ( n) 进行预加重处理后再经过离散 FFT变换,取模的平方得到离散功率谱 S ( n) 。 ( 2) 计算 S ( n) 通过 M 个滤波器 Hm ( n) 后得到的功率值,即计算 S ( n) 和 Hm( n) 在各离散频率点上乘积之和,得到M 个参数 pm ,m =
13、 0,1,.,M-1。 ( 3) 计算 pm 的自然对数,得到 Lm ,m = 0,1,.,M-1。 ( 4) 对 L0 ,L1 ,.,Lm - 1 计算其离散余弦变换, 得到 Dm ,m = 0,1,.,M-1。舍去代表直流成分的 D0 ,取 D1 ,D2 ,.,DK 作为M FCC参数。最后对MFCC进行一阶差分 ,得到一组新的M FCC差分系数 ,作为特征矢量的一组分量。,差分参数的计算采用下面的公式:,这里的c和d都表示一帧语音参数, k为常数, 通常取 2,这时差分参数就称为当前帧的前两帧和后两帧的线性组合。,在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Tim
14、e Warping,动态时间弯折),该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早,较为经典的一种算法。用于孤立词识别,DTW算法与HMM算法在相同的环境下,识别效果相差不大。但HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模板参数,而DTW算法的训练中几乎不需要额外的计算。,每个词条通过端点检测和特征提取存入模板库,称为一个参考模板,可以表示为R(1),R(2),.,R(m),.,R(M),R(m)为第m帧的语音特征矢量,M为该段语音帧总数。所要识别的一个输入词条称为测试模板,可表示为T(1),T(2), .,T(n),.,R(N)
15、,T(n)为第n帧的语音特征矢量,N为该段语音帧总数。 为了比较他们之间的相似度,可以计算他们之间的距离DT,R,距离越小相似度越高。为了计算这一距离,应从T和R中各个对应帧之间的距离算起,设n和m分别是T和R中任意选择的帧号,dT(n),R(m)为这两帧间的距离,距离函数为欧式距离。 若N=M则可以直接计算,否则要考虑对齐的问题,这里采用了动态规划的方法。如果把测试模板和参考模板的各个帧号在一个二维坐标标出,并画出网格,于是问题归结为寻找一条经过网格的从(1,1)到(N,M)路径,路径通过的网格点的坐标对应的是进行距离计算的两个帧号。,为了描述这条路径,假设路径通过的所有格点依次为(n1,m
16、1),.,(ni,mi),.,(nN,mN),路径可以用函数:描述,为了使路径不至于过分倾斜,可以约束斜率在0.52的范围内,即如果路径已通过了(ni-1,mi-1),则(ni,mi)只可能是: 1.(ni,mi)=(ni-1+1,mi-1+2); 2.(ni,mi)=(ni-1+1,mi-1+1);3.(ni,mi)=(ni-1+1,mi-1); 于是求最佳路径的问题可以归结为求最佳路径函数使得路径的积累距离最小。,搜索该路径的方法如下:搜索从(n1,m1)点出发,可以展开若干条满足约束条件的路径。假设可计算每条路径达到终点的总的积累距离,具有最小积累距离的路径即为最佳路径。易于证明,限定范围的任意网格点(ni,mi)只可能有一条搜索路径通过。对于(ni,mi),其可达到该网格点的前一个网格点只可能是(ni-1,mi),(ni-1,mi-1)和(ni,mi-2),那么(ni,mi)一定选择这3个距离中最小的对应的点为其前续网格点,若用(ni-1,mi-1)代表此网格点,并将通过该格点的路径延伸而通过(ni,mi),此时路径的累计距离为:而:这样就可以从(ni,mi)=(1,1)出发直至搜索到(nN,mN)求得整条路径,