您好,欢迎访问三七文档
华南理工大学《语音信号处理》作业报告姓名:学号:班级:10级电信5班日期:2013年5月24日1.实验要求编程实现:作业1、提取一段语音信号的短时能量、过零率、短时平均幅度差。作业2、提取一段语音的傅里叶变换幅度谱、线性倒谱、梅尔频率倒谱(MFCC)。作业3、提取一段语音的LPC参数。作业4、估计一段语音的基音频率。作业5、估计一段语音的前3个共振峰频率。作业1:1、实验原理(1)、短时能量语音和噪声的区别可以体现在它们的能量上,语音段的能量比噪声段能量大,语音段的能量是噪声段能量叠加语音声波能量的和。在信噪比很高时,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景区分开。这是仅基于短时能量的端点检测方法。信号{x(n)}的短时能量定义为:语音信号的短时平均幅度定义为:其中w(n)为窗函数。(2)、短时平均过零率短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号称为过零。过零率就是样本改变符号次数。信号{x(n)}的短时平均过零率定义为:式中,sgn为符号函数,即:过零率有两类重要的应用:第一,用于粗略地描述信号的频谱特性;第二,用于判别清音和浊音、有话和无话。从上面提到的定义出发计算过零率容易受低频干扰,特别是50Hz交流干扰的影响。解决这个问题的办法,一个是做高通滤波器或带通滤波,减小随机噪声的影响;另一个有效方法是对上述定义做一点修改,设一个门限T,将过零率的含义修改为跨过正负门限。于是,有定义:2、实验结果及讨论本次实验选取语音文件phrase.WAV,运行程序,结果如下图:3、实验代码[x,fs,nbits]=wavread('E:\yuuyin\phrase.WAV');x=x/max(abs(x));%幅度归一化到[-1,1]%参数设置FrameLen=256;%帧长inc=90;%未重叠部分amp1=10;%短时能量阈值amp2=2;zcr1=10;%过零率阈值zcr2=5;%计算过零率tmp1=enframe(x(1:end-1),FrameLen,inc);tmp2=enframe(x(2:end),FrameLen,inc);signs=(tmp1.*tmp2)0;diffs=(tmp1-tmp2)0.02;zcr=sum(signs.*diffs,2);%计算短时能量amp=sum((abs(enframe(filter([1-0.9375],1,x),FrameLen,inc))).^2,2);subplot(3,1,1)plot(x)axis([1length(x)-11])xlabel('帧数');ylabel('Speech');subplot(3,1,2)plot(amp);axis([1length(amp)0max(amp)])xlabel('帧数');ylabel('Energy');subplot(3,1,3)plot(zcr);axis([1length(zcr)0max(zcr)])xlabel('帧数');ylabel('ZCR');作业2、3:1、提取一段语音的傅里叶变换幅度谱[x]=wavread('E:\yuuyin\monologuespeech_male.wav');y=fft(x);%傅里叶变换函数plot(abs(y));%振幅频率title('傅里叶变换幅度谱');2、提取一段语音的线性倒谱和LPC参数基本原理:由于频率响应)(jweH反映声道的频率响应和被分析信号的谱包络,因此用|)(|logjweH做反傅里叶变换求出的LPC倒谱系数。通过线性预测分析得到的合成滤波器的系统函数为)1/(1)(1piiizazH,其冲激响应为h(n)。h(n)的倒谱为)(^nh,1^^)()(nnznhzH就是说)(^zH的逆变换)(^nh是存在的。设0)0(^h,将式1^^)()(nnznhzH两边同时对1z求导,得1^1111)(]11log[nnpiiznhzzaz得到11111^1)(npiiipiiinzaziaznhn,于是有1111^11)()1(nniinpiiziaznhnza令其左右两边z的各次幂前系数分别相等,得到)(^nh和ia间的递推关系piiniinpnnhaninhpnknhanianhah1^^11^^1^),1()1()(1),()1()()1(,按其可直接从预测系数{ia}求得倒谱)(^nh。这个倒谱是根据线性预测模型得到的,又称为LPC倒谱。LPC倒谱由于利用线性预测中声道系统函数H(z)的最小相位特性,因此避免了一般同态处理中求复对数的麻烦。实验结果分析:选取语音文件monologuespeech_female,先读出原始语音文件的波形:原始语音帧倒谱和预测语音帧倒谱如下:LPC系数:ai=Columns1through81.0000-0.5313-0.1624-0.2005-0.07260.14810.0192-0.1592Columns9through16-0.12480.18570.06360.0848-0.1475-0.05620.0129-0.0196通过计算LPC系数可以很好的利用先行预测中声道系统函数的最小相位特性来提取特征函数实验代码:I=wavread('E:\yuuyin\monologuespeech_female.wav');%读入原始语音%subplot(3,1,1),plot(I);title('原始语音波形')%对指定帧位置进行加窗处理Q=I';N=256;%窗长Hamm=hamming(N);%加窗frame=60;%需要处理的帧位置M=Q(((frame-1)*(N/2)+1):((frame-1)*(N/2)+N));Frame=M.*Hamm';%加窗后的语音帧[B,F,T]=specgram(I,N,N/2,N);[m,n]=size(B);fori=1:mFTframe1(i)=B(i,frame);endP=input('请输入预测器阶数=');ai=lpc(Frame,P);%计算lpc系数LP=filter([0-ai(2:end)],1,Frame);%建立语音帧的正则方程FFTlp=fft(LP);E=Frame-LP;%预测误差pausefLength(1:2*N)=[M,zeros(1,N)];Xm=fft(fLength,2*N);X=Xm.*conj(Xm);Y=fft(X,2*N);Rk=Y(1:N);PART=sum(ai(2:P+1).*Rk(1:P));G=sqrt(sum(Frame.^2)-PART);A=(FTframe1-FFTlp(1:length(F')))./FTframe1;pause%求出预测误差的倒谱pitch=fftshift(rceps(E));M_pitch=fftshift(rceps(Frame));subplot(2,1,1),plot(M_pitch);grid;xlabel('语音帧');ylabel('/dB');title('原始语音帧倒谱');subplot(2,1,2),plot(pitch);grid;xlabel('语音帧');ylabel('/dB');title('预测误差倒谱');pause3、提取一段语音信号的梅尔频率倒谱(MFCC)基本原理:MFCC:语音识别和说话人识别中,常用的语音特征是基于Mel频率的倒谱系数(即MFCC)。MFCC参数是将人耳的听觉感知特性和语音的产生机制相结合。Mel频率可以用如下公式表示:)700/1log(2595ffMel在实际应用中,MFCC倒谱系数计算过程如下;①将信号进行分帧,预加重和加汉明窗处理,然后进行短时傅里叶变换并得到其频谱。②求出频谱平方,即能量谱,并用M个Mel带通滤波器进行滤波;由于每一个频带中分量的作用在人耳中是叠加的。因此将每个滤波器频带内的能量进行叠加,这时第k个滤波器输出功率谱)('kx。③将每个滤波器的输出取对数,得到相应频带的对数功率谱;并进行反离散余弦变换,得到L个MFCC系数,一般L取12~16个左右。MFCC系数为MkMnkkxCn1']/)5.0(cos[)(log,n=1,2,...,L④将这种直接得到的MFCC特征作为静态特征,再将这种静态特征做一阶和二阶差分,得到相应的动态特征。实验结果分析:采用语音文件monologuespeech_female.wav,运行程序,得到的MFCC特征提取图像为:通过计算MFCC参数,获得了声纹识别的特征参数。由于MFCC参数是对人耳听觉特征的描述,因此,可以认为,不同声纹的MFCC参数距离,能够代表人耳对两个语音听觉上的差异,可以为声纹的识别提供可靠的依据。作业4:估计一段语音的基音周期1、实(1)、基音周期基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。基音提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容易。③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。④基音周期变化范围大,从老年男性的50Hz到儿童和女性的450Hz,接近三个倍频程,给基音检测带来了一定的困难。由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。尽管基音检测有许多困难,但因为它的重要性,基音的检测提取一直是一个研究的课题,为此提出了各种各样的基音检测算法,如自相关函数(ACF)法、峰值提取算法(PPA)、平均幅度差函数(AMDF)法、并行处理技术、倒谱法、SIFT、谱图法、小波法等等。(2)、自相关函数对于离散的语音信号x(n),它的自相关函数定义为:R(k)=Σx(n)x(n-k),如果信号x(n))具有周期性,那么它的自相关函数也具有周期性,而且周期与信号x(n)的周期性相同。自相关函数提供了一种获取周期信号周期的方法。在周期信号周期的整数倍上,它的自相关函数可以达到最大值,因此可以不考虑起始时间,而从自相关函数的第一个最大值的位置估计出信号的基音周期,这使自相关函数成为信号基音周期估计的一种工具。(3)、短时自相关函数语音信号是非平稳的信号,所以对信号的处理都使用短时自相关函数。短时自相关函数是在信号的第N个样本点附近用短时窗截取一段信号,做自相关计算所得的结果Rm(k)=Σx(n)x(n-k)式中,n表示窗函数是从第n点开始加入。2、实验结果分析读取wav文件functionpitchx=wavread('E:\yuuyin\isolatedword.WAV');%读取声音文件figure(1);ste
本文标题:语音信号处理作业
链接地址:https://www.777doc.com/doc-5068483 .html