《太原理工大学数字语音处理实验报告》由会员分享,可在线阅读,更多相关《太原理工大学数字语音处理实验报告(15页珍藏版)》请在金锄头文库上搜索。
1、本科实验报告课程名称: 数字语音处理 实验项目: 语音短时平均能量的实现 实验地点: 跨越机房 专业班级: 学号: 学生姓名: 指导教师: 年 月 实验一 语音短时平均能量的实现一、 实验目的1.熟悉 Matlab 基本程序的运用。2.充分理解取不同窗长时的语音短时平均能量的变化情况。3.熟悉 Matlab 编程语言在语音信号处理中的作用。4.能够实现程序的重新编制。二、 实验原理定义 n 时刻某语音信号的短时平均能量 为:nEnNmmwxwxE)1( 22)()()式中 N 为窗长,可见短时平均能量为为一帧样点值的甲醛平方和。特殊地,当窗函数为矩形窗时,有 nNmx)1(2三、 实验要求1.
2、实验前自己用 Cool Edit 音频编辑软件录制声音“我到北京去” ,并把它保存为.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(s
3、peech.txt,rt);x=fscanf(fid,%f);fclose(fid);4.对采集到得语音样点值进行分帧。分帧子程序为 fra.mfunction f=fra(len,inc,x)fh=fix(size(x,1)-len)/inc)+1)f=zeros(fh,len);i=1;n=1;while ixL)f(x)= 0 (-xLxxL)x+xL (x=th0a(k)=a(k)-th0;elseif a(k)=(-th0);a(k)=a(k)+th0;elsea(k)=0;endendm=max(a);for i=1:L;a(i)=a(i)/m;endsubplot(2,1,2);
4、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=;for k=1:320;sum=0;for m=1:N;sum=sum+b(m)*b(m+k-1);endA(k)=sum;endfor k=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=;for k=1:320;sum=0;for m=1:N;sum=sum+a(m)*a(m+k-1);endA(k)=sum;endfor k=1:320C(k)=A(k)/A(1);endsubplot(2,1,2);plot(C,k);title(中心削波后修正自相关);xlabel(延迟 k);ylabel(幅度值);axis(0,320,-1,1);六、实验结果