基于MATLAB的语音信号检测分析及处理
2.1.1 语音信号的“短时谱”
对于非平稳信号,它是非周期的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短段,再进行傅里叶变换,就可以得到该语音的短时谱。
2.1.2 基音周期
浊音信号的周期称为基音周期,它是声带振动频率的倒数,基音周期的估计称为基音检测。基音检测是语音处理中的一项重要技术,它在有调语音辨意、低速率语音编码、说话人识别等方面起着非常关键的作用。但在实现过程中,由于声门激励波形不是一个完全的周期脉冲串,再加上声道影响去除不易、基音周期定位困难、背景噪声影响强烈等一系列因素,基音检测面临着很大的困难。现在已有很多性能优越的基音检测算法,自相关基因检测算法就是一种基于语音时域分析理论较好的算法,在这里基于声音文件比较稳定的基础上,使用观察法获取基音周期。
2.2 语音信号预处理
为了消除因为人类发声器官本身和因一些采集语音信号的设备等所引起的混叠、高次谐波失真现象,在对语音信号进行分析和处理之前,必须对其进行预处理。语音信号的预处理应尽可能地保证处理后得到的信号更均匀、平滑,且能提高语音的质量。
2.2.1预加重
在进行语音信号数字处理时,为了获取一段语音信号的时域波形,首先要将语音信号转换成电信号,再用A/D转换器将其变换为离散的数字化采样信号。己经数字化的语音信号将依次进入一个数据区。由于语音信号的平均功率受声门激励和口鼻辐射影响,高频端大约在800Hz以上按6dB/倍频程跌落,即6dB/oct(2倍频)或20dB/dec(10倍频),所以求语音信号频谱时,频率越高相应的成分越小,高频部分的频谱比低频部分的难求,为此要在预处理中进行预加重处理。目的是提升高频部分,使信号变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱,而且预加重零点与辐射零点将抵消声门波的影响,使语音信号中只包含声道部分,以便于频谱分析或声道参数分析。图2.1表明了语音预处理的
6
基于MATLAB的语音信号检测分析及处理
过程
语音 采样 量化 预加重 加窗分帧 算法处理 图2.1 语音信号的预处理
预加重一般是在语音信号数字化之后,用具有6dB/倍频程的提升高频特性的预加重数字滤波器来实现,它一般是一阶的数字滤波器:
H(z)?1??z?1
(2-1)
式中?的取值接近于1。
有时要恢复原信号,需要从做过预加重的信号频谱来求实际的频谱时,要对测量值进行去加重处理,即加上6dB/倍频程的下降的频率特性来还原成原来的特性。
2.2.2加窗分帧
语音信号检测首先要进行分帧处理,然后依次判断每一帧是否为语音的端点。如果采用较小的窗长,则计算量增加,语音识别的速度会降低。我们可以在语音静音段时,采用较长的窗 ;在语音和静音的过渡段时采用较小的窗 ,可以确切判断语音的起始点 ;一旦确定语音的起点,就改用常规窗长。
在进行了预加重后,接下来就要对语音信号进行加窗分帧处理。将语音信号划分为许多短时的语音段,每个短时的语音段称为一个分析帧。另外,由于不同语音信号的基音周期不同,为了兼顾男声和女声的最高和最低基音频率,且能准确地描述语音能量自身的实际变化规律,通常将窗宽选为10ms~20ms。
图2.2 帧长和帧移
7
基于MATLAB的语音信号检测分析及处理
如图2.2所示分帧一般采用交叠分段的方法,这是为了使帧与帧之间能平滑过渡,保持其连续性。前一帧和后一帧的交叠部分称为帧移,帧移与帧长的比值一般取为0~0.5之间。分帧是用可移动的有限窗口长度进行加权实现的,即用窗函数?(n)乘以语音信号s(n),从而形成加窗的语音信号:
S?(n)?S(n)??(n) (2-2)
由于窗函数一般取为S(n)中间大两头小的光滑函数,这样的冲激响应所对应的滤波器具有低通特性,其带宽和频率取决于窗函数的选取。用得最多的三种窗函数是矩形窗、汉明窗(Hamming)和汉宁窗(Hanning),它们的定义如下:
矩形窗:
?(n)??汉明窗:
?1, 0?n?N?1 (2-3)
?0, 其他?0.54?0.46cos(2?n/(N?1)),0?n?N?1?(n)?? (2-4)
0,其他?汉宁窗:
?(n)???0.5?1?cos(2?n/N)?,0?n?N?1 (2-5)
?0,其他式中N为窗长,窗函数?(n)的选取(形状和长度)对于短时分析参数的特性影响很大,为此应该选择合适的窗口,使其短时参数能更好地反映语音信号的特性变化。以上这些窗函数的幅度频率响应都具有低通特性,它们的主瓣宽度和旁
瓣高度如表1-1所示。
表1-1 1s长的各种窗的主瓣宽度和旁瓣高度
主瓣宽度 旁瓣宽度 矩形 0.81Hz -13dB 汉明 1.19Hz -43dB 汉宁 1.87Hz -32dB 从表中可知:矩形窗的主瓣宽度最小,但其旁瓣高度最高;汉明窗的主瓣最宽,而旁瓣高度最低。矩形窗的旁瓣太高,会产生严重的泄漏现象。汉明窗旁瓣
8
基于MATLAB的语音信号检测分析及处理
最低,可以有效地克服泄漏现象,具有更平滑的低通特性,因此,一般在语音信号预处理中,都选用汉明窗来进行语音分帧处理。
2.3 语音信号分析
语音信号处理包括语音识别、语音合成、语音编码、说话人识别等方面,但是其前提和基础是对语音信号进行分析。只有将语音信号分析成表示其本质特性的参数,才有可能利用这些参数进行高效的语音通信,以及建立用于识别的模板或知识库。而且,语音识别率的高低,语音合成的音质好坏,都取决于对语音信号分析的准确性和精度。
2.3.1短时时域分析
语音信号本身就是时域信号,因此,时域分析方法是应用最为广泛的一种方法,这种方法直接利用语音信号的时域波形。时域分析通常用于最基本的参数分析以及用于语音的分割、预处理等。语音信号的时域参数有短时能量、短时平均幅度、短时过零率、短时自相关函数等,这些是语音信号中一组最基本的短时参数,在各种语音信号数字处理技术中都有重要应用。
进行语音信号分析时,最先接触到且最直观的就是它的时域波形。时域分析通常用于最基本的参数分析,语音的分割、预处理和大分类。这种分析方法的特点是表示语音信号比较直观、物理意义明确;实现起来比较简单、运算量少;可得到语音的一些重要参数;可采用示波器等通用设备进行观测。取样之后要对信号进行量化,而量化过程不可避免地会产生量化误差,即量化后的信号值与原信号之间的差值。
2.3.2频域分析
语音信号频域分析,主要是对一些频域的参数进行分析,常用的一些频域参数有频谱、功率谱、倒谱等等,最常用的频域分析方法有傅立叶变换法、线性预测法等。 1、傅立叶变换法
傅里叶频谱变换是语音信号频域分析中广泛使用的方法,是分析线性系统和
9
基于MATLAB的语音信号检测分析及处理
平稳信号稳态特性强有力的手段,对分帧加窗后的语音信号,进行傅里叶变换和逆傅里叶变换,可以相应的得到频谱,功率谱,倒谱距离,嫡等特征。由于语音信号的特性是随着时间缓慢变化,所以采用短时傅里叶变换,相应的求得特征为短时频域特征,这里的窗函数都使用汉明窗。
(1)短时频谱和短时功率谱
设信号xn(m)经过傅里叶变换后在频域记为Xn(ejw),则Xn(ejw)与xn(m)的关系见公式1-6。
Xn(e)??xn(m)e?jwm (2-6)
jwm?0N?1语音的频谱为Xn(ejw)的幅度,则有
pn(ejw)?Xn(ejw) (2-7)
语音的短时功率谱的是幅度的平方,所以短时功率谱的计算方法为
Gn(ejw)?Xn(ejw) (2-8)
2(2)倒谱距离
语音信号的倒谱分析是通过同态处理来实现的。同态信号处理也称为同态滤波,就是将非线性问题转化为线性问题的处理方法。由于语音信号可视为声门激励信号和声道冲击响应的卷积,可以对语音信号进行解卷。倒谱能很好表示语音的特征,在强噪声环境下,可通过倒谱系数求得倒谱距离,使用倒谱距离来作为端点检测的特征。信号的倒谱也可以定义为信号的能量谱密度函数S(叻的对数的傅里叶级数展开式的系数,
logs(w)?n????c(n)e??jnw (2-9)
cn即为倒谱系数,通过倒谱系数求得倒谱距离几dcep为
dcep?4.3429(c1(n)?c0(n))?2?(c1(n)?c0(n))2 (2-10)
2n?1p(3)熵
熵(用H表示)是物质的复杂程度的一种反映。熵H代表X的信
息量,X的概率分布越模糊,越难判断,
10