太原理工大学数字语音处理实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本科实验报告课程名称:数字语音处理实验项目:语音短时平均能量的实现实验地点:跨越机房专业班级:学号:学生姓名:指导教师:年月实验一语音短时平均能量的实现一、实验目的1.熟悉Matlab基本程序的运用。2.充分理解取不同窗长时的语音短时平均能量的变化情况。3.熟悉Matlab编程语言在语音信号处理中的作用。4.能够实现程序的重新编制。二、实验原理定义n时刻某语音信号的短时平均能量nE为:nNnmmnmnwmxmnwmxE)1(22)]()([)]()([式中N为窗长,可见短时平均能量为为一帧样点值的甲醛平方和。特殊地,当窗函数为矩形窗时,有nNnmnmxE)1(2)(三、实验要求1.实验前自己用CoolEdit音频编辑软件录制声音“我到北京去”,并把它保存为.txt文件。2.编程实现不同矩形窗长N=50、100、200、800的短时平均能量。3.用Matlab画出不同窗长的短时平均能量的图形。4.写出实验报告,分析实验结果。四、实验难点对采集到的语音阳电只进行分帧。五、实验条件计算机,Matlab软件,2学时六、实验步骤1.用Cooledit读入语音“我到北京去”。设置采样率为8kHz,16位,单声道。2.将读入的语音wav文件保存为txt文件。3.把保存的文件speech.txt读入Matlab。fid=fopen('speech.txt','rt');x=fscanf(fid,'%f');fclose(fid);4.对采集到得语音样点值进行分帧。分帧子程序为fra.mfunctionf=fra(len,inc,x)fh=fix(((size(x,1)-len)/inc)+1)f=zeros(fh,len);i=1;n=1;whilei=fhj=1;whilej=lenf(i,j)=x(n);j=j+1;n=n+1;endn=n-len+inc;i=i+1;end5.对照取不同矩形窗N的短时平均能量,画出图形。取不同窗长N时的短时能量对照程序energy.ms=fra(50,25,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,1)plot(energy)xlabel('帧数')ylabel('短时能量E')legend('N=50')axis([0,1500,0,10*10^5]);s=fra(100,50,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,2)plot(energy)xlabel('帧数')ylabel('短时能量E')legend('N=100')axis([0,750,0,2*10^6]);s=fra(400,200,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,3)plot(energy)xlabel('帧数')ylabel('短时能量E')legend('N=400')axis([0,190,0,7*10^6]);s=fra(800,400,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,4)plot(energy)xlabel('帧数')ylabel('短时能量E')legend('N=800')axis([0,95,0,14*10^6]);七、实验结果本科实验报告课程名称:数字语音处理实验项目:语音修正的短时自相关的实现实验地点:跨越机房专业班级:学号:学生姓名:指导教师:年月实验二语音修正的短时自相关的实现一、实验目的1、熟悉语音修正自相关的意义。2、充分理解取不同窗长时的语音的修正自相关的变化情况。3、熟悉Matlab编程语音在语音信号处理中的作用。4、能够实现程序的重新编制。二、实验原理对于语音来说,采用短时分析方法,语音短时自相关函数为但是,在计算短时自相关时,窗选语音段为有限长度N,而求和上限为N-1-k,因此当k增加时可用于计算的数据就越来越少了,从而导致k增加时自相关函数的幅度减小。为了解决这个问题,提出了语音修正的短时自相关。修正的短时自相关函数,其定义如下:三、实验要求1、实验前自己用CoolEdit音频编辑软件录制声音,并把它保存为.txt文件。2、编程时间不同矩形窗长N=320,160,70的短时修正自相关。3、用Matlab画出短时修正自相关的图形。4、写出实验报告,分析实验结果。四、实验难点熟悉Matlab编程语言实现取不同窗长时的语音修正自相关的变化情况,为下一个实验做好准备。五、实验条件计算机,Matlab软件,2学时六、实验步骤1.用Cooledit读入浊音语音。设置采样率为8kHz,16位,单声道。2.将读入的语音wav文件保存为txt文件。3.读入Matlab中,并且对照取不同矩形窗长N的短时修正自相关函数,并画出图形。fid=fopen('voice.txt','rt')b=fscanf(fid,'%f');b1=b(1:640);N=320;A=[];fork=1:320;sum=0;form=1:N;sum=sum+b1(m)*b1(m+k-1);endA(k)=sum;endfork=1:320;A1(k)=A(k)/A(1);endfigure(1)subplot(3,1,1)plot(A1);ylabel('R(k)')legend('N=320')axis([0,320,-1,1]);b2=b(1:320);N=160;B=[];fork=1:160;sum=0;form=1:N;sum=sum+b2(m)*b2(m+k-1);endB(k)=sum;endfork=1:160;B1(k)=B(k)/B(1);endfigure(1)subplot(3,1,2)plot(B1);ylabel('R(k)')legend('N=160')axis([0,320,-1,1]);L=1;b3=b(1:140);N=70;C=[];fork=1:70;sum=0;form=1:N;sum=sum+b3(m)*b3(m+k-1);endC(k)=sum;endfork=1:70;C1(k)=C(k)/C(1);endfigure(1)subplot(3,1,3)plot(C1);ylabel('R(k)')legend('N=70')axis([0,320,-1,1]);七、实验结果本科实验报告课程名称:数字语音处理实验项目:用修正的短时自相关检测语音基音周期实验地点:跨越机房专业班级:学号:学生姓名:指导教师:年月实验三用修正的短时自相关检测语音的基音周期一、实验目的1.熟悉前一个实验程序以及中心削波的意义。.2.用Matlab实现用修正的短时自相关检测语音的基音周期。3.分析修正的短时自相关在基音周期检测中的应用。4.能够对程序进行重新编制。二、实验原理如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。计算两相邻最大峰值间的距离,就可以估计出基音周期。观察浊音信号的自相关函数图,其中真正反映基音周期的只有少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。因此为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。第一种方法是先对语音信号进行低通滤波,再进行自相关计算,因为语音信号包括十分丰富的谐波分量,基音频率的范围分布宰0~500Hz左右,即使女高音升c调最高也不会超过1Kz,所以采用1Kz的低通滤波器先对语音信号进行滤波,保留基音频率,再用2Kz采样频率进行采样;最后用2~20ms的滞后时间计算短时自相关,帧长取10~20ms,即可估计出基音周期。且中心削波函数如式(3-1)x-xL(xxL)f(x)=0(-xL≤x≤xL)x+xL(xxL)(3-1)一般削波电平XL取本帧语音幅度的60%~70%。将削波后的序列f(x)用短时自相关函数估计基音周期,在基音周期位置的峰值更加尖锐,可以有效减少倍频或半频错误。三、实验要求1.实验前自己用CoolEdit音频编辑软件录制浊音部分,并把它保存为.txt文件。2.分别取长度N=160和N’=N+K的矩形窗函数作用于语音信号上,首先对其进行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延迟为0K160时的相关值,并且用得到的相关值来检测语音信号的基音周期,用MATLAB画出图形。3.写出实验报告,分析实验结果。四、实验条件计算机,Matlab软件,2学时五、实验步骤1.用Cooledit读入浊音语音。设置采样率为8kHz,16位,单声道。2.将读入的语音wav文件保存为txt文件。3.编程实现中心削波前后的语音波形。fid=fopen('voice.txt','rt');[a,count]=fscanf(fid,'%f',[1,inf]);L=length(a);m=max(a);fori=1:La(i)=a(i)/m;endm=max(a);n=min(a);ht=(m+n)/2;fori=1:L;a(i)=a(i)-ht;endfigure(1);subplot(2,1,1);plot(a,'k');axis([0,1711,-1,1]);title('中心削波前语音波形');xlabel('样点数');ylabel('幅度值');coeff=0.7;th0=max(a)*coeff;fork=1:L;ifa(k)=th0a(k)=a(k)-th0;elseifa(k)=(-th0);a(k)=a(k)+th0;elsea(k)=0;endendm=max(a);fori=1:L;a(i)=a(i)/m;endsubplot(2,1,2);plot(a,'k');axis([0,1711,-1,1]);title('中心削波后语音波形');xlabel('样点数');ylabel('幅度值');fclose(fid);4.编程实现削波前后的修正自相关,并检测出基音周期。fid=fopen('voice.txt','rt');[b,count]=fscanf(fid,'%f',[1,inf]);fclose(fid);N=320;A=[];fork=1:320;sum=0;form=1:N;sum=sum+b(m)*b(m+k-1);endA(k)=sum;endfork=1:320B(k)=A(k)/A(1);endfigure(2);subplot(2,1,1);plot(B,'k');title('中心削波前修正自相关');xlabel('延迟k');ylabel('幅度值');axis([0,320,-1,1]);N=320;A=[];fork=1:320;sum=0;form=1:N;sum=sum+a(m)*a(m+k-1);endA(k)=sum;endfork=1:320C(k)=A(k)/A(1);endsubplot(2,1,2);plot(C,'k');title('中心削波后修正自相关');xlabel('延迟k');ylabel('幅度值');axis([0,320,-1,1]);六、实验结果

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功