3.1 语音信号数字化
语音信号数字化之前,必须先进行防混叠滤波及防工频干扰滤波。其中防混叠滤波指滤除高于1/2采样频率的信号成分或噪声,使信号带宽限制在某个范围内;否则,如果采样率不满足采样定理,则会产生频谱混叠,此时信号中的高频成分将产生失真;而工频干扰指50Hz的电源干扰。由于防混叠和工频干扰滤波器在一个集成块中,实现起来很简便,在这里不再赘述。
3.1.1 语音信号的采样和量化
语音信号是时间和幅度都连续变化的一维模拟信号,要想在计算机中对它进行处理,就要先进行采样和量化,将它变成时间和幅度都离散的数字信号。
在语音信号处理中,需要将信号表示成可以处理的函数的形式。对于模拟信号xa(t),它表示函数值随着连续时间变量t的变化趋势。如果以一定的时间间隔T对这样的连续信号取值,则连续信号xa(t)即变成离散信号x(n)=xa(nT),这个过程称为采样,其中两个取样点之间的间隔T称为采样周期,它的倒数Fs称为采样频率。
根据采样定理,当采样频率大于信号最高频率的两倍时,在采样过程中就不会丢失信息,并且可以用采样后的信号重构原始信号。实际的信号常有一些低能量的频谱分量超过采样频率的一半,如浊音的频谱超过4kHz的分量比其峰值至少要低40dB;而对于清音,即使超过8kHz,频率分量也没有显著下降,因此语音信号所占的频率范围可以达到10kHz以上。虽然这样,但对语音清晰度有明显影响部分的最高频率为5.7kHz左右。CCITT(国际电报电话咨询委员会)提出的G.711标准建议采样频率为8kHz,但一般情况下这只适合电话语音的情况,因为电话语音的频率为60~3400Hz。在实际的语音信号处理中,采样频率一般为8~10kHz。有一些系统为了实现更高质量的语音合成,或者使语音识别系统得到更高的识别率,将可处理的语音信号扩展到7~9kHz,这时的采样频率一般为15~20kHz。表3-1给出了采样率对语音识别系统性能的影响。
表3-1 不同采样率对误识率降低程度的影响
在表3-1中,将8kHz采样率时的系统作为基线系统,当采样率为11kHz时,系统的误识率有10%的降低;继续升高采样率到16kHz时,系统的误识率与11kHz相比有10%的降低;当采样率继续增加时,误识率几乎没有降低。因此在一般的识别系统中,采样率最高选择在16kHz。
图3-1的下半部分为一段模拟信号,其上半部分为对应的离散信号。可以看出,采样后的信号在时间域上是离散的形式,但在幅度上还保持着连续的特点,所以要进行量化。量化的目的是将信号波形的幅度值离散化。一个量化器就是将整个信号的幅度值分成若干个有限的区间,并且把落入同一个区间的样本点都用同一个幅度值表示,这个幅度值称为量化值。量化方式有3种:零记忆量化、分组量化和序列量化。零记忆量化是每次量化一个模拟采样值,并对所有采样点都使用相同的量化器特性。分组量化是从可能输出组的离散集合中,选出一组输出值,代表一组输入的模拟采样值。序列量化是在分组或非分组的基础上,用一些邻近采样点的信息对采样序列进行量化。
图3-1 模拟信号和对应的离散信号
零记忆量化是最简单的一种,它的输入-输出特性采用阶梯形函数的形式。图3-2给出了两种量化器特性。中点上升量化器的输出没有零电平,在零附近有两个输入区间;正区间产生正输出电平,负区间产生负输出电平。中点水平量化器有零电平输出,它对应于零输入区间。量化范围和电平可以用不同方法选取,但通常都是均匀分布的。
图3-2 量化器特性
一般量化值都用二进制来表示,如果用B个二进制数表示量化值,即量化字长,那么一般将幅度值划分为2B个等分区间。从量化的过程可以看出,信号在经过量化后,一定存在一个量化误差。其定义为
其中,e(n)为量化误差或噪声;为量化后的采样值,即量化器的输出;x(n)为未量化的采样值,即量化器的输入。对于上图中的两种量化器,当按2xmax=Δ×2B选定Δ和B时,量化误差的变化范围为
其中,xmax表示信号的峰值,当信号波形的变化足够大或量化间隔Δ足够大时,可以证明量化噪声符合具有下列特性的统计模型:①它是一个平稳的白噪声过程;②量化噪声和输入信号相互独立;③量化噪声在量化间隔内均匀分布,即具有等概率密度分布。
若用表示输入语音信号序列的方差,表示噪声序列的方差,则可以证明量化信噪比SNR(dB)为
假设语音信号的幅度服从拉普拉斯分布,此时信号幅度超过4σx的概率很小,只有0.35%,因而可以取xmax=4σx。此时式(3-3)变为
式(3-4)表明:量化器中每个比特字长对信噪比的贡献大约为6dB。当量化字长为7比特时,信噪比为35dB。此时量化后的语音质量能满足一般通信系统的要求。然而研究表明,语音波形的动态范围达55dB,故量化字长应取10比特以上。
经过采样和量化过程后,一般还要对语音信号进行一些预加重。由于语音信号的平均功率谱受声门激励和口鼻辐射的影响,高频端大约在800Hz以上按着-6dB/倍频程跌落,为此要在预处理中进行预加重。其目的就是提升高频部分,使信号的频谱变得平坦,便于进行频谱分析或声道参数分析。预加重可以在A/D变换前,在防混叠滤波之前进行,这样不仅能够进行预加重,而且可以压缩信号的动态范围,有效地提高信噪比。预加重也可以在A/D变换之后进行,用具有6dB/倍频程提升高频特性的预加重数字滤波器实现,预加重滤波器一般是一阶的,形式如下:
其中,u值接近1,典型的取值为0.94~0.97。预加重后的信号在分析处理之后,需要进行去加重处理,即加上-6dB/倍频程下降的频率特性来还原成原来的特性。
一般情况下,如果一个输入信号是若干信号的线性叠加,而其输出是对应的若干输出信号的线性叠加时,则称这样的数字系统为线性系统,否则称其为非线性系统。语音信号处理中常用的非线性系统如表3-2所示。
表3-2 语音信号处理中常用的非线性系统
对于系统的表示,除线性系统和非线性系统外,还可以根据系统参数是否随时间变化分为时不变系统和时变系统。
3.1.2 短时加窗处理
经过数字化的语音信号实际上是一个时变信号,这是由于人在发音时声道一直处于变化状态,因此实际上的语音信号产生系统可以近似看作线性时变系统。为了能用传统的方法对语音信号进行分析,假设语音信号在10~30ms短时间内是平稳的。后面的所有分析都是在语音信号短时平稳这个假设条件下进行的。
为了得到短时的语音信号,要对语音信号进行如式(3-6)所示的加窗操作。窗函数平滑地在语音信号上滑动,将语音信号分成帧。分帧可以连续,也可以采用交叠分段的方法,交叠部分称为帧移,一般为窗长的一半。
在加窗的时候,不同的窗口选择将影响到语音信号分析的结果。在选择窗函数时,一般有两个问题要考虑。
1.窗函数形式
窗函数可以选用矩形窗,即
或其他形式的窗函数,如汉明(hamming)窗,即
或汉宁窗,即
其中,N为窗口长度。
这两种窗函数可以统一定义为
其中,汉明窗对应的α=0.46,汉宁窗对应的α=0.5。
虽然这些窗函数的频率响应都具有低通的特性,但不同的窗口形状将影响分帧后短时特征的特性。下面以矩形窗和汉明窗为例对窗口形状进行比较。
矩形窗在窗内对所有的采样点给以同等的加权,矩形窗函数对应的数字滤波器的单位冲激响应对应的频谱为
其中,幅值响应A(ω)是实偶函数,其形状如图3-3所示。A(ω)穿过横轴的点为ωk=2πk/N,第一个零值所对应的归一化频率为
图3-3(a)中给出了在N=51时的矩形窗及其频率响应的对数幅度。需要注意,f1对应于矩形窗的低通滤波器的归一化截止频率。51点汉明窗的频率响应如图3-3(b)所示。可以看到,汉明窗的第一个零值频率位置比矩形窗要大一倍左右,即汉明窗的主瓣带宽大约是同样宽度矩形窗带宽的两倍。同时也可以很明显地看到,在通带外,汉明窗的衰减较相应的矩形窗大得多。
图3-3 矩形窗和汉明窗的傅里叶变换
对语音信号的时域分析来说,窗函数的形状是非常重要的,矩形窗的谱平滑性较好,但波形细节丢失,并且矩形窗会产生泄漏现象;而汉明窗可以有效地克服泄漏现象,应用范围也最为广泛。
2.窗函数长度
不论什么样的窗口,窗的长度对能否反映语音信号的幅度变化起决定性作用。如果N特别大,即等于几个基音周期量级,则窗函数等效于很窄的低通滤波器,此时信号短时信息将缓慢地变化,因而也就不能充分地反映波形变化的细节;反之,如果N特别小,即等于或小于一个基音周期的量级,则信号的能量将按照信号波形的细微状况而很快地起伏。但如果N太小,滤波器的通带变宽,则不能得到较为平滑的短时信息,因此窗口的长度要选择合适。窗的衰减基本上与窗的持续时间无关,因此当改变宽度N时,只会使带宽发生变化。
前面的窗口长度是相对于语音信号的基音周期而言的。通常认为一个语音帧内,应含有1~7个基音周期。然而不同人的基音周期变化范围很大,基音周期的持续时间会从高音调(女性或儿童)的约20个采样点(采样频率为10kHz)变化到很低音调(男性)的250个采样点,这意味着在进行分析时可能需要多个不同的N值,所以N的选择比较困难。通常在采样频率为10kHz的情况,N选择在100~200量级(10~20ms持续时间)是合适的。