零值的次数。对有时间横轴的连续语音信号,可以观察到语音的时域波形通过横轴的情况。在离散时间语音信号情况下,如果相邻的采样具有不同的代数符号就称为发生了过零,因此可以计算过零的次数。单位时间内过零的次数就称为过零率。一段长时间内的过零率称为平均过零率。因此过零率在一定程度上可以反映信号的频率信息。语音信号不是简单的正弦序列,所以平均过零率的表示方法就不那么确切。但由于语音信号是一种短时平稳信号,采用短时平均过零率仍然可以在一定程度上反映其频谱性质,由此可获得谱特性的一种粗略估计。
定义语音信号Xn(m)的短时过零率Zn为:
Zn??sgn[x(m)]?sgn[x(m?1)]w(n?m)????? (3.2.2.1)
sgn[x(n)]?sgn[x(n?1)]?w(n)式中,sgn[ ]是符号函数,即:
sgn?x???1,(x?0)?1,(x?0)
w(n)为窗函数,计算时常采用矩形窗,窗长为N。可以理解为:当两个相邻点
符号相同时,sgn[x(m)]?sgn[x(m?1)]?0,没有产生过零;当相邻两个样点符号相反时sgn[x(m)]?sgn[x(m?1)]?2,为过零次数的2倍。因此在统一帧(N点)的短时平均过零率时,求和后必须要除以2N。这样就可以将窗函数w(n)表示为
?21N?w(n)?? 0??1 Zn?2Nn0?n?N?1其它
在矩形窗条件下,式(3.2.2.1)可以化简为
m?n?(N?1)?sgn[x(m)]?sgn[x(m?1)]
由此可以得出实现短时平均过零率的运算图,如下图所示
Sgn[.] ????? sgn[x] ? ??? x(n)nsgn[x(n)]一阶差分 取绝对值 ? 低通滤波 h(n)?w(n) Nn???
sgn[xn?1] 在实际中求过零率参数时,需要十分注意的一个问题是如果输入信号中包含
11
有50Hz的工频干扰或者A/D变换器的工作点有偏移(这等效于输入信号有直流偏移),往往会使计算的过零率参数很不准确。为了解决前一个问题,A/D变换器前的防混叠带通滤波器的低端截频应高于50Hz,以有效地抑制电源干扰。对于后一个问题除了可以采用低直流漂移器件外,也可以在软件上加以解决,这就是算出每一帧的直流分量并予以滤除。
对语音信号进行分析,发现发浊音时,尽管声道有若干个共振峰,但由于声门波引起功率谱的高频跌落,所以其话音能量约集中在3kHz以下。而发清音时,多数能量出现在较高频率上。高频就意味着高的平均过零率,低频意味着低的平均过零率,所以可以认为浊音时具有较低的过零率,而清音时具有较高的过零率。当然,这种高低仅是相对而言,并没有精确的数值关系。
利用短时平均过零率还可以从背景噪声中找出语音信号,可用于判断寂静无声段和有声段的起点和终点位置。在孤立词的语音识别中,必须要在一连串连续的语音信号中进行适当分割,用以确定一个一个单词的语音信号,即找出每一个单词的开始和终止位置,这在语音处理中是一个基本问题。此时,在背景噪声较小时用平均能量识别较为有效,而在背景噪声较大时用平均过零率识别较为有效。但是研究表明,在以某些音为开始或结尾时。如当弱摩擦音(如[f]、[h]等音素),弱爆破音(如[p]、[t]、[k]等音素)为语音的开头或结尾;以鼻音(如[n]、[m]等音素)为语音的结尾时。只用其中一个参量来判别语音的起点和终点是有困难的,必须同时使用这两个参数。图3-1是用Mtalab仿真一段语音信号时域波形的短时能量和短时平均过零率。
10.5speech0-0.5-1500100015002000250030003500400040energy3020100510152025303540453020100zcr51015202530354045
图3-1语音信号的短时能量和短时平均过零率
3.3 语音信号的频域分析
12
语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线性预测法等几种。本文介绍的是语音信号的傅里叶分析法。因为语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱”。
3.3.1利用短时博里叶变换求语音的短时谱
对第n帧语音信号xn(m)进行傅里叶变换(离散时域傅里叶变换,DTFT),可得到短时傅里叶变换,其定义如下:
Xn(e)?jwN?1m?0?x(m)en?jwn (3-1)
由定义可知,短时傅里叶变换实际就是窗选语音信号的标准傅里叶变换。这里,窗w(n-m)是一个“滑动的”窗口,它随n的变化而沿着序列X(n)滑动。由于窗口是有限长度的,满足绝对可和条件,所以这个变换是存在的。当然窗口函数不同,博里叶变换的结果也将不同。
我们还可以将式(3—1)写成另一种形式。设语音信号序列和窗口序列的标准傅里立叶变换均存在。当n取固定值时,w(n-m)的傅里叶变换为:
?根据卷积定理,有:
?w(n?m)e?jwn?e?jwn?W(e?jw) (3-2)
m????jwn?jwe?W(e)? Xn(ejw)?X(ejw)???? (3-3)
因为上式右边两个卷积项均为关于角频率w的以2π为周期的连续函数,所以也可将其写成以下的卷积积分形式:
1 Xn(e)?2?jwj?jn?j(w??)???W(e)e?X(e)??-?????d? (3-4)
?即,假设x(m)的DTFT是X(ejw),且w(m)的DTFT是W(ejw),那么Xn(ejw)是
X(ejw)和W(ejw)的周期卷积。
根据信号的时宽带宽积为一常数这一基本性质,可知W(ejw)主瓣宽度与窗口宽度成反比,N越大,W(ejw)的主瓣越窄。由式(3-4)可知,为了使Xn(ejw)忠实再现X(ejw)的特性。W(ejw)相对于X(ejw)来说必须是—个冲激函数。所以为了使
13
Xn(ejw)?X(ejw),需N??;但是N值太大时,信号的分帧又失去了意义。尤其是N大于语音的音素长度时,Xn(ejw)已不能反映该语音音素的频谱了。因此,应折衷选择窗的宽度N。另外,窗的形状也对短时傅氏频谱有影响,如矩形窗,虽然频率分辨率很高,但由于第一旁瓣的衰减很小,有较大的上下冲,采用矩形窗时求得的Xn(ejw)与X(ejw)的偏差较大,这就是Gibbs效应,所以不适合用于频谱成分很宽的语音分析中。而汉明窗在频率范围中的分辨率较高,而且旁辩的衰减大,具有频谱泄漏少的优点。所以在求短时频谱时一般采用具有较小上下冲的汉明窗。
与离散傅里叶变换和连续博里叶变换的关系一样,如令角频率w=2πk/N,则得离散的短时傅里叶变换(DFT)。它实际上是Xn(ejw)在频域的取样,如下所示:
Xn(ej2?kNN?12?kmN)?Xn(k)??xn(m)em?0?j(0?k?N?1) (3-5)
在语音信号数字处理中,都是采用xn(m)的离散博里叶变换(DFT)Xn(k)来替代
Xn(ejw)并且可以用高效的快速傅里叶变换(FFT)算法完成由xn(m)至Xn(k)的转换。当然,这时窗长N必须是2的倍数2L(L是整数)。根据傅里叶变换的性质,实数序列的傅里叶变换的频谱具有对称性,因此,全部频谱信息包含在长度为N/2+1个Xn(k)里。另外,为了使Xn(k)具有较高的频率分辨率,所取的DFT以及相应的FFT点数N1应该足够多,但有时xn(m)的长度N要受到采样率和短时性的限制,例如,在通常采样率为8kHz且帧长为20ms时,N=160。而N1一般取256、512或1024,为了将xn(m)的点数从N扩大力N1,可以采用补0的办法,在扩大的部分添若干个0取样值,然后再对添0后的序列进行FFT。例如、在10kHz的范围内采样求频谱,并要求频率分辨率在30Hz以下。由10kHz/N1<30,得N1>333,所以N1=2L要取比333大的值,这时可取N1=29=512点,不足的部分采用补0的办法解决,此时频率分辨率(即频率间隔)为10Hz/512=19.53Hz,采样后的该帧信号频率处在0~2L?1?19.53Hz之间,因此,原连续信号频率就处在0~2L?1?19.53Hz之间(即
fmax?5kHz),所以我们要在0~5kHz频率范围内求其频谱。FFT的计算可以在通用计算机上由相应的算法软件来完成,这种方式一般只能实现非实时运算。为了完成实时运算可以采用先进的数字信号处理芯片、阵列处理芯片或专用FFT芯片。为了完成1024点的FFT,这些专用芯片所需的运算时间是几十毫秒至几毫秒,甚至可以降至1ms以下。
在语音信号数字处理中,功率谱具有重要意义,在一些语音应用系统中。往往都是利用语音信号的功率谱。根据功率谱定义,可以写出短时功率谱与短时傅里叶变换之间的关系:
2Sn(e)?Xn(e)?X(e)?Xn(e)
14
jwjw?njwjw
?或者: Sn(k)?Xn(k)?Xn(k)?Xn(k)
2式中*表示复共轭运算。并且功率谱Sn(ejw)是短时自相关函数Rn(k)的傅里叶变换。
N?1Sn(e)?Xn(e)?
jwjw2k??N?1?Rn(k)e?jwk
图3-2是用Matlab中的psdplot命令绘得的同一人两次说同一词的功率谱比较(窗函数取窗长度为256的Hamming窗)。
图3-2同一人两次说同一词的功率谱比较
可以看出功率谱图比较好地反映出声音的个人特征:在低频部分(频率低于6000Hz),同一人说同一词,其功率谱图中的各个波峰所对应的频率基本相同;不同人说同一词,其功率谱图的出现波峰的频率比较接近;同一人说不同词时功率谱的形状差别较大。在高频部分,波峰比较密集,特征不明显。
3.4 语音信号的语谱图
语音的时域分析和频域分析是语音分析的两种重要方法。显然这两种单独分析的方法均有局限性:时域分析对语音信号的频率特性没有直观的了解;而频域分析出的特征中又没有语音信号随时间的变化关系;语音信号是时变信号,所以其频谱也是随时间变化的。但是由于语音信号随时间变化是很缓慢的,因而在一段短时间内(如10~30ms之间,即所谓的一帧之内)可以认为其频谱是固定不变的,这种频谱又称为短时谱。短时谱只能反映语音信号的静态频率特性,不能反映语音信号的动态频率特性。因此,人们致力于研究语音的时频分析特性。
把和时序相关的傅里叶分析的显示图形称为语谱图(Sonogram,或者
15