大学本科语音信号处理实验讲义8学时汇总
- 格式:doc
- 大小:291.50 KB
- 文档页数:20
语音信号处理实验讲义时间:2011-12目录实验一语音信号生成模型分析 (3)实验二语音信号时域特征分析 (7)实验三语音信号频域特征分析 (12)实验四语音信号的同态处理和倒谱分析 (16)实验一 语音信号生成模型分析一、实验目的1、了解语音信号的生成机理,了解由声门产生的激励函数、由声道产生的调制函数和由嘴唇产生的辐射函数。
2、编程实现声门激励波函数波形及频谱,与理论值进行比较。
3、编程实现已知语音信号的语谱图,区分浊音信号和清音信号在语谱图上的差别。
二、实验原理语音生成系统包含三部分:由声门产生的激励函数()G z 、由声道产生的调制函数()V z 和由嘴唇产生的辐射函数()R z 。
语音生成系统的传递函数由这三个函数级联而成,即()()()()H z G z V z R z =1、激励模型发浊音时,由于声门不断开启和关闭,产生间隙的脉冲。
经仪器测试它类似于斜三角波的脉冲。
也就是说,这时的激励波是一个以基音周期为周期的斜三角脉冲串。
单个斜三角波的频谱表现出一个低通滤波器的特性。
可以把它表示成z 变换的全极点形式121()(1)cT G z e z --=-⋅这里c 是一个常数,T 是脉冲持续时间。
周期的三角波脉冲还得跟单位脉冲串的z 变换相乘:1121()()()1(1)v cT A U z E z G z z e z ---=⋅=⋅--⋅ 这就是整个激励模型,v A 是一个幅值因子。
2、声道模型当声波通过声道时,受到声腔共振的影响,在某些频率附近形成谐振。
反映在信号频谱图上,在谐振频率处其谱线包络产生峰值,把它称为共振峰。
一个二阶谐振器的传输函数可以写成12()1i i i i A V z B z C z--=-- 实践表明,用前3个共振峰代表一个元音足够了。
对于较复杂的辅音或鼻音共振峰要到5个以上。
多个()i V z 叠加可以得到声道的共振峰模型012111()()11R r r M M i r i Nki i i i k k b z A V z V z B z C z a z -=---======---∑∑∑∑ 3、辐射模型从声道模型输出的是速度波,而语音信号是声压波。
二者倒比称为辐射阻抗,它表征了口唇的辐射效应,可用下式表示:10()(1)R z R z -=-三、实验内容1、设声门脉冲单个三角波的数学表达式为11111221[1cos ] 02()()cos 20 n n N N n N g n N n N N N ππ⎧-≤≤⎪⎪⎪⎡⎤-⎪=≤≤+⎨⎢⎥⎣⎦⎪⎪⎪⎪⎩其他试画出三角波波形图及其频谱。
取12=5=3N N ,。
参考程序:%三角波及其频谱n=linspace(0,25,125);g=zeros(1,length(n));i=0;for i=0:40if n(i+1)<=5g(i+1)=0.5*(1-cos(n(i+1)*pi/5));elseg(i+1)=cos((n(i+1)-5)*pi/8);endendfigure(1)subplot(1,2,1)plot(n,g)xlabel('时间/ms')ylabel('幅度')axis([0,25,-0.4,1.2])r=fft(g,1024);r1=abs(r);yuanlai=20*log10(r1);signal(1:512)=yuanlai(1:512);pinlv=(0:1:511)*8000/1024;subplot(1,2,2)plot(pinlv,signal);xlabel('频率/Hz')ylabel('幅度/dB')axis([0,620,0,30])图1-1 三角波及其频谱2、给出语音段“数字信号处理”(speech.wav),画出它的语谱图。
clear all;[x,sr]=wavread('speech_dsp.wav');s=length(x);w=round(44*sr/1000);n=w;shift=w/2;h=w-shift;%win=hanning(n)';win=hamming(n)';c=1;ncols=1+fix((s-n)/h);d=zeros((1+n/2),ncols);for b=0:h:(s-n)u=win'.*x((b+1):(b+n));t=fft(u);d(:,c)=t(1:(1+n/2));c=c+1;endtt=[0:h:(s-n)]/sr;ff=[0:(n-2)]*sr/n;imagesc(tt,ff/1000,20*log10(abs(d)));colormap(gray);axis xyxlabel('时间/s')ylabel('频率/kHz')图1-2 语谱图四、思考题1、声门激励脉冲信号是高频衰减的还是高频增强的?2、画语谱图时为什么要给语音信号加汉明窗?若加矩形窗会有什么区别?3、在语谱图上观察,浊音信号的和清音信号的频谱有什么区别?实验二 语音信号时域特征分析一、实验目的1、了解自相关函数及自相关函数在语音信号处理中的应用。
2、编写程序分析语音信号的短时自相关特征,计算语音信号的基音周期。
3、编写修正短时自相关函数的程序,并与未修正的函数进行比较。
二、实验原理自相关函数用于衡量信号自身时间波形的相似性。
由前面的讨论可知,清音和浊音的发声机理不同,因而在波形上也存在着较大的差异。
浊音的时间波形呈现出一定的周期性,波形之间相似性较好;清音的时间波形呈现出随机噪声的特性,杂乱无章,样点间的相似性较差,这样,可以用短时自相关函数来测定语音的相似特性。
时域离散确定信号的自相关函数定义为:()()()m R k x m x m k α+=-∞=+∑ 对于语音信号来说,采用短时分析方法,可以定义短时自相关函数为()()()()()n m R k x m w n m x m k w n k m α+=-∞=-+--∑ 因为()()n n R k R k -=,所以()()[()()][()()]n n m R k R k x m x m k w n m w n m k α+=-∞=-=---+∑ 定义()()()k h n w n w n k =+,则上式可以写成()[()()]()n k m R k x m x m k h n m α+=-∞=--∑ 如果长基音周期用窄的窗,将得不到预期的基音周期;但是如果短的基音周期用长的窗,自相关函数将对多个基因周期做平均计算,从而模糊语音的短时特性,这是不希望的。
为了解决这个问题,可以采用修正的短时自相关函数,选择的窗长不一定要等于自相关函数的最大自变量取值。
这种方法可以采用较窄的窗,同时避免了短时自相关函数随k 增加而衰减的不足。
三、实验内容1、根据给出的浊音信号,分别画出浊音信号的时域波形、加矩形窗和加汉明窗后计算短时自相关归一化后的结果。
语音的抽样频率为8kHz ,窗长为320。
参考程序:[x,fs,nbits]=wavread('speech_dsp.wav');s1=x(2500:2819);N=320;A=[];for k=1:320sum=0;for m=1:N-k+1sum=sum+s1(m)*s1(m+k-1);endA(k)=sumendfor k=1:320A1(k)=A(k)/A(1);endf=zeros(1,320);n=1,j=1;while j<=320f(1,j)=s1(n)*[0.54-0.46*cos(2*pi*n/319)]; j=j+1;n=n+1;endB=[];for k=1:320sum=0;for m=1:N-k+1sum=sum+s1(m)*s1(m+k-1);endB(k)=sumendfor k=1:320B1(k)=B(k)/B(1);end%画图s2=s1/max(s1);figure(1)subplot(3,1,1)plot(s2)title('一帧语音信号');xlabel('样点数');ylabel('幅度');axis([0,320,-1,1]);subplot(3,1,2)plot(A1)title('加矩形窗的自相关函数')xlabel('延时k')ylabel('自相关函数R(k)')axis([0,320,-1,1]);subplot(3,1,3)plot(B1)title('加汉明窗的自相关函数')xlabel('延时k')ylabel('自相关函数R(k)')axis([0,320,-1,1]);图2-1 浊音信号加不同窗时的自相关函数2、仍选取上题中的语音信号,改变窗长和截取语音段的长度,计算修正的短时自相关函数。
取值分别为:(1)N=320,M=640;(2)N=160,M=320;(3)N=70,M=140;[x,fs,nbits]=wavread('speech_dsp.wav');s1=x(2500:3139);b=s1;%窗长640,自相关运算取320个点。
b1=b(1:640);N=320;A=[];for k=1:320sum=0;for m=1:Nsum=sum+b1(m)*b1(m+k-1); endA(k)=sum;endfor k=1:320A1(k)=A(k)/A(1);end%画图figure(1)subplot(3,1,1)plot(A1);xlabel('延时k')ylabel('R(k)')legend('N=320')axis([0,320,-0.5,1])%窗长320,自相关运算取160个点。
b2=b(1:320);N=160;A=[];for k=1:160sum=0;for m=1:Nsum=sum+b2(m)*b2(m+k-1); endB(k)=sum;endfor k=1:160B1(k)=B(k)/B(1);end%画图figure(1)subplot(3,1,2)plot(B1);xlabel('延时k')ylabel('R(k)')legend('N=160')axis([0,320,-0.5,1])%窗长140,自相关运算取70个点。
b3=b(1:140);N=70;A=[];for k=1:70sum=0;for m=1:Nsum=sum+b3(m)*b3(m+k-1);endC(k)=sum;endfor k=1:70C1(k)=C(k)/C(1);end%画图figure(1)subplot(3,1,3)plot(C1);xlabel('延时k')ylabel('R(k)')legend('N=70')axis([0,320,-0.5,1])图2-2 修正的自相关函数(参加自相关运算的点数N取不同值)四、思考题1、自相关函数的作用是什么?互相关函数的作用是什么?2、浊音信号分别加矩形窗和汉明窗时自相关函数有什么不同?3、清音信号的自相关函数和浊音信号的有什么区别?实验三 语音信号频域特征分析一、实验目的1、了解语音信号进行短时傅里叶分析的基础。