1、完整版数字音频处理数字语音实验吕佩壕10024134一、实验要求1.编程实现一句话语音的短时能量曲线,并比较窗长、窗口形状(以直 角窗和和哈明窗为例)对短时平均能量的影响 ;2.编程分析语音信号的短时谱特性,并比较窗长、窗口形状(以直角窗 和和哈明窗为例)对语音短时谱的影响 ;3.运用低通滤波器、中心削波和自相关技术估计一段男性和女性语音信 号的基音周期,画出基音轨迹曲线,给出估计准确率。二、实验原理及实验结果1.窗口的选择通过对发声机理的认识,语音信号可以认为是短时平稳的。在 550ms的范围内,语音频谱特性和一些物理特性参数基本保持不变。我们将每个短时的语音 称为一个分析帧。一般帧长取10
2、30ms我们采用一个长度有限的窗函数来截取 语音信号形成分析帧。通常会采用矩形窗和汉明窗。图1.1给出了这两种窗函数 在窗长N=50时的时域波形。图1.1矩形窗和hamming窗的时域波形 矩形窗的定义:一个N点的矩形窗函数定义为如下:1,0 n Nw(n) ,其他),00.54 0.46cos(2w(n)= 0,其他这两种窗函数都有低通特性,通过分析这两种窗的频率响应幅度特性可以发现(如图1.2 ):矩形窗的主瓣宽度小(4*pi/N ),具有较高的频率分辨率,旁瓣 峰值大(-13.3dB),会导致泄漏现象;汉明窗的主瓣宽 8*pi/N,旁瓣峰值低(-42.7dB),可以有效的克服泄漏现象,具
3、有更平滑的低通特性。因此在语音频 谱分析时常使用汉明窗,在计算短时能量和平均幅度时通常用矩形窗。表 1.1对比了这两种窗函数的主瓣宽度和旁瓣峰值。图1.2 矩形窗和Hamming窗的频率响应2 .短时能量由于语音信号的能量随时间变化,清音和浊音之间的能量差别相当显著。 因 此对语音的短时能量进行分析,可以描述语音的这种特征变化情况。定义短时能 量为:n2 2En x(m)w (n m) x(m)w (n m)m m n N 1,其中N为窗长特殊地,当采用矩形窗时,可简化为:En x2(m)m图2.1和图2.2给出了不同矩形窗和hamming窗长,对所录的语音“我是吕 佩壕”的短时能量函数:(1
4、)矩形窗(从上至下依次为“我是吕佩壕” 波形图,窗长分别为32,64,128,256,512的矩形窗的短时能量函数): 一一屮i一 亠一L L iD ? 4 5 9 Id F IdI | | I号二亠一 1 4-”一 一丄 t 励般显仏s 2 A 韦 4 I? 14xlf*衬图2.1矩形窗(2) hamming窗(从上至下依次为“我是吕佩壕”波形图,窗长分别为32,64,128,256,512 的hamming窗的短时能量函数):图 2.2 hamming 窗我们发现:在用短时能量反映语音信号的幅度变化时, 不同的窗函数以及相应窗的长短均有影响。hammi ng窗的效果比矩形窗略好。但是,窗的
5、长短影响起 决定性作用。窗过大(N很大),等效于很窄的低通滤波器,不能反映幅度 En的变化;窗过小(N很小),短时能量随时间急剧变化,不能得到平滑的能量函 数。在11.025kHz左右的采样频率下,N选为100200比较合适。短时能量函数的应用 :1 )可用于区分清音段与浊音段。 En 值大对应于浊音段, En 值小对应于清音段。 2)可用于区分浊音变为清音或清音变为浊音的时间(根 据 En 值的变化趋势)。3)对高信噪比的语音信号, 也可以用来区分有无语音 (语 音信号的开始点或终止点) 。无信号(或仅有噪声能量)时, En 值很小,有语音 信号时,能量显著增大。Matlab 程序: fig
6、ure(3); a=wavread(C:audio.wav); subplot(6,1,1),plot(a);N=32;for i=2:6h=rectwi n(24(i-2)*N);b=a.*a;En=conv2(h,b); %subplot(6,1,i),plot(En);i=i+1;if(i=2) legend(N=32); elseif(i=3) legend(N=64); elseif(i=4) legend(N=128); elseif(i=5) legend(N=256); elseif(i=6) legend(N=512);endend求短时能量函数 Enfigure(4);a=
7、wavread(C:audio.wav); subplot(6,1,1),plot(a);N=32;for i=2:6h=hammi ng(24(i-2)*N); %b=a.*a;En=conv2(h,b); %subplot(6,1,i),plot(En);i=i+1;if(i=2) legend(N=32); elseif(i=3) legend(N=64); elseif(i=4) legend(N=128); elseif(i=5) legend(N=256); elseif(i=6) legend(N=512);endend形成一个汉明窗,长度为2.A(i-2)*N求短时能量函数 E
8、n3.短时谱由于语音信号是短时平稳的随机信号,某一语音信号帧的短时傅立叶变换的 定义为:于是可以得到:Xn(ejw) e jwn w(k)x(n k)ejwkk假定:Xn(ejw) w(k)x(n k)ejwkk则可以得到:Xn(ejw) e jwnXn(ejw)同样,不同的窗口函数,将得到不同的傅立叶变换式的结果。由上式可见, 短时傅立叶变换有两个变量:n和,所以它既是时序n的离散函数,又是角频 率的连续函数。与离散傅立叶变换逼近傅立叶变换一样,如令 =2n k/N,则得离散的短时傅立叶变换如下:Xn(ej2 k/N) Xn(k)x(m)w (n m)ej2km/N,(0 k N 1)m根据
9、信号的时宽带宽积为一常数之一基本性质,可知 W (ejw )主瓣宽度和 窗口宽度成反比,N越大W (ejw )越窄。尤其是 N值大于语音音素长度时w(ew)已不能反应语音音素的频谱了。因此,应折衷选择窗的宽度 n。另外, 窗的形状也对短时谱有影响,如矩形窗,虽然频率分辨率很高,但由于第一旁瓣 的衰减很小,所以不适合用于频谱成分很宽的语音分析中, 而汉明窗在频率范围 中分辨率较高,而且旁瓣衰减大,具有频谱泄露少的优点,所以在求短时频谱时 一般采用汉明窗。图3.1到图3.6分别是不同窗长的汉明窗下的短时谱仿真图:图3.1 窗长N=4000图3.1 窗长N=4500图3.1 窗长N=7000图 3.
10、1 窗长 N=10000Matlab 程序:短时谱figure clear a=wavread(C:audio.wav);subplot(2,1,1), plot(a);title(original signal);gridN=256;h=ham min g(N);for m=1:N b(m)=a(m)*h(m) endy=20*log(abs(fft(b)subplot(2,1,2)plot(y);title( grid短时谱);4理。器,.基于中心削波的基音检测在基音检测的时候,为了改善基音检测器的性能我们都要进行与处理和后处 在进行与处理的时候,具体的做法就是进行谱的平整处理。谱平整从语
11、音信号中排除共振峰结构,使每个谐波有相同的幅度。主要方法有线性方法和非线性方法两种,线性方法是使用线性预测误差滤波 非线性方法是使用中心削波技术。下图为常用的三种中心削波函数:x + CL,x CL0,-CL x CL0,|x| CL-1, x CL0,|x|=th0 a(k)=a(k)-th0(1);elseif a(k)=th0 a(k)=a(k)+th0(1);else a(k)=0;end end m=max(a); for i=1; % 中心削波函数幅度归一化a(i)=a(i)/m(1);end subplot(2,1,2) plot(a) axis(0,17000,-2,2); t
12、itle(After Center Clipping) xlabel(The Sample Point) ylabel(Amplitude) % 没有经过中心削波的修正自相关b=wavread(C:audio.wav);N=2048; %选择的窗长,加N=320的矩形窗A=;for k=1:2048 % 选择延时长度sum=0;for m=1:N sum=sum+b(m+7500)*b(m+7500+k-1); % 计算自相关 endA(k)=sum;endfor k=1:2048B(k)=A(k)/A(1); % 归一化 A(k) end figure(2) subplot(2,1,1) plot(B) axis(0,2200
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1