1、目录一 项目介绍二 项目原理三 项目完成过程四 项目结果与分析五 工作分配六 参考文献本次项目要求设计一个数字音效处理器,通过一系列相关算法以及借助相关工具(MATLAB),对声音信号进行处理,要求具备语音识别以及降除噪声的功能,另外我们又加入了语音均衡器,丰富了数字音效处理器的功能。最后加入GUI界面设计,方便了用户的使用。本部分主要分为三部分,分别是语音识别,噪声降除以及语音均衡器的相关原理。语音识别:1.1项目大体步骤我们主要采用基于VQ的说话人识别,我们采用的识别结构框图如下,提取特征函数预处理语音信号VQ码本匹配计算VQ码本训练码本库识别结果1.2 语音信号的预处理预处理包括:预加重
2、,端点检测,分帧以及加窗。预加重的目的是将更为有用的高频部分频谱进行提升,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求取频谱,以便于进行频谱分析或声道参数分析。端点检测即是对输入语音信号的起始点与结束点的判定。分帧:由于语音信号的准平稳特性,使得其只有在短时段上才可被视为一个平稳过程,所以需要把一定长度的语音分为很多帧来分析。加窗:为了减少语音帧的截断效应,降低帧两端的坡度,使语音帧的两端不引起急剧变化而平滑过渡到零,需要将语音帧乘以一个窗函数。1.3 MFCC特征函数的提取Mel频率倒谱系数(MFCC)的分析与传统的线性倒谱系数(LPCC)不同,它的分析是着眼于人耳
3、的听觉机理,因为人类在对1000Hz以下的声音频率范围的感知遵循近似的线性关系;对1000Hz以上的声音频率范围的感知不遵循线性关系,而是遵循在对数频率坐标上的近似线性关系,所以Mel倒谱系数获得了较高的识别率和较好的鲁棒性。实现上,Mel倒谱系数是将语音频率划分成一系列三角形的滤波器序列,这组滤波器在频率的Mel坐标上是等待宽的。MFCC参数的提取过程为:1. 对输入的语音信号进行分帧、加窗,然后作离散傅立叶变换,获得频谱分布信息。 设语音信号的DFT为: *(1)2. 再求频谱幅度的平方,得到能量谱。3. 将能量谱通过一组Mel尺度的三角形滤波器组。我们定义一个有M个滤波器的滤波器组(滤波
4、器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为f(m),m=1,2,3,M,本系统取M=100。4. 计算每个滤波器组输出的对数能量。 *(2)其中为三角滤波器的频率响应。5. 经过离散弦变换(DCT)得到MFCC系数。*(3) MFCC系数个数通常取2030,常常不用0阶倒谱系数,因为它反映的是频谱能量,故在一般识别系统中,将称为能量系数,并不作为倒谱系数,本文选取20阶倒谱系数。与线性预测倒谱分析相比,MFCC的优点是不依赖全极点语音信号产生模型的假定,因而在噪声环境下表现出更强的鲁棒性,在非特定人说话人识别方面有利于减小因说话人不同的差异可能带来的影响。1.4矢量量化
5、矢量量化是将若干个幅度连续取值的时域采样信号分成一组,则构成矢量,然后用若干离散数字值,来表示各种矢量,其有效地利用了矢量中各分量的四种相关的性质,因此在量化过程中最大限度地消除数据之间的冗余,从而实现高效的熵压缩码。其基本原理为:将一帧语音数据中提取的矢量特征在多维空间给予整体量化。首先把信号序列的每隔K个连续点分成一组,形成K维欧氏空间中的一个矢量,然后对此矢量进行量化。本文中矢量量化有两个作用,在训练阶段,把每个说话者所提取的特征参数进行分类,产生不同码子组成的码本;在识别阶段,我们用VQ方法计算平均失真测度,以此进行说话人识别。VQ码本的设计主要采用LBG算法,该算法是一种递推算法,从
6、一个事先选定的初始码本进行迭代,直到系统性能满足要求或不再有明显的改进为止。具体LBG算法如下:设 为训练序列,B为码本。1. 取提取出来的所有帧的特征矢量的型心(均值)作为第一个码字矢量B1。2. 将当前的码本Bm根据以下规则分裂,形成2m个码字。 *(4)其中m从1变化到当前的码本的码字数,是分裂时的参数,本文=0.01。3. 根据得到的码本把所有的训练序列(特征矢量)进行分类,然后按照下面两个公式计算训练矢量量化失真量的总和以及相对失真(n为迭代次数,初始n=0,=,B为当前的码书),若相对失真小于某一阈值,迭代结束,当前的码书就是设计好的2m个码字的码书,转。否则,转下一步。量化失真量
7、和:相对失真: *(6)4. 重新计算各个区域的新型心,得到新的码书,转3。5. 重复 , 和步,直到形成有M个码字的码书(M是所要求的码字数),其中D0=10000。1.5说话人识别在匹配阶段,VQ用来计算未知说话人特征矢量和已经训练说话人码本之间的平均量化失真D,并设置一个阈值,若D小于此阈值,则是原训练者,反之则认为不是原训练者。注: *(7)2噪声降除我们使用了维纳法和LMS自适应滤波法来降除噪声。2.1 维纳法(Wiener Scalart Method)维纳是用来解决从噪声中提取信号的一种过滤(或滤波)方法。这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。一个线性系统,
8、如果它的单位样本响应为h(n),当输入一个随机信号x(n) 且x(n)=s(n)+v(n) *(8)其中x(n)表示信号,v(n)表示噪声,则输出y(n)为 yn=mh(m)x(n-m) *(9)我们希望x(n)通过线性系统h(n)后得到的y(n)尽量接近于s(n),因此称y(n)为s(n)的估计值,用s(n)表示,即 yn=s(n). *(10) 则维纳滤波器的输入输出关系可用下面图1表示。实际上,式 (9) 所示的卷积形式可以理解为从当前和过去的观察值x(n),x(n-1),X(n-2)x(n-m).来估计信号的当前值 s(n)。因此,用h(n) 进行过滤问题实际上是一种统计估计问题。 一
9、般地,从当前的和过去的观察值x(n),x(n-1),x(n-2)估计当前的信号值Y(n)=s(n)成为过滤或滤波;从过去的观察值,估计当前的或者将来的信号值 yn=s(n+N).称为外推或预测;从过去的观察值,估计过去的信号值 yn=s(n-N) 称为平滑或内插。因此维纳滤波器又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓的最佳与最优是以最小均方误差为准则的。 如果我们分别以s(n) 与 s(n) 表示信号的真实值与估计值,而用e(n) 表示他们之间的误差,即 en=sn-s(n) *(11)显然e(n)可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合
10、理的,所谓均方误差最小即它的平方的统计期望最小:n=Ee2n=min* (12)采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。为了按 (12) 式所示的最小均方误差准则来确定维纳滤波器的冲激响应h(n),令n对h(j)的导数等于零,即可得 Rxsm=hiRxxm-1,m * (13)式中,Rxsm 是s(n)与x(n)的互相关函数,Rxxm是x(n)的自相关函数,分别定义为 Rxs=Exxsn+m Rxx=Ex(x)x(n+m)式 (13) 称为维纳滤波器的标准方程或维纳霍夫方程。如果已知 Rxsm 和 Rxxm,那么解此方程即可求的维纳滤波器的冲激
11、响应。式 (13) 所示标准方程右端的求和范围即i的取值范围没有具体标明,实际上有三种情况:(1) 有限冲激响应(FIR)维纳滤波器,i从0到N-1取得有限个整数值;(2) 非因果无限冲激响应(非因果IIR)维纳滤波器,i从到取所有整数值;(3) 因果无限冲激响应(因果IIR)维纳滤波器,i从0到取正整数值。上述三种情况下标准方程的解法不同,本文只描述FIR维纳滤波器的求解。设滤波器冲激响应序列的长度为N,冲激响应矢量为 h=h0h1hN-1T * (14)滤波器输入数据矢量为 xn=xnxn-1x(n-N+1)T *(15)则滤波器的输出为 yn=sn=xTnh=hTx(n) *(16)这样,式 (13) 所示的维纳-霍夫方程可写成 PT=hTR or P=Rh * (17)其中 P=Ex(n)s(n) * (18)是s(n) 与x(n) 的互相关函数,它是一个N维列矢量;R是x(n)的自相关函数,是N阶方阵R=Ex(n)xT(n) * (19)利用求逆矩阵的方法直接求解式 (19),得 hopt=R-1P *(20)这里opt表示“最佳”,这就是FIR
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1