1、太原理工大学语音信号实验报告太原理工大学现代科技学院 语音信号处理 课程 实验报告 装订线实验名称 语音短时平均能量的实现 同组人 专业班级 学号 姓名 成绩 一、实验目的 1、熟悉Matlab基本程序的运用。 2、充分理解取不同窗长时的语音短时平均能量的变化情况。 3、熟悉Matlab编程语言在语音信号处理中的作用。 4、能够实现程序的重新编制。 二、实验要求 1、实验前自己用Cool Edit音频编辑软件录制声音“我到北京去”,并把它保存为.txt文件。 2、编程实现不同矩形窗长N=50、100、400、800的短时平均能量。 3、用Matlab画出不同窗长的短时平均能量的图形。 4、写出
2、实验报告,分析实验结果。 三、实验步骤 1、用Cool Edit读入语音“我到北京去”。设置采样率为8kHz,16位,单声道。 2、将读入的语音wav文件保存为txt文件。 3、把保存的文件speech.txt读入Matlab。 四、程序及运行成果 fid=fopen(zxq.txt,rt); x=fscanf(fid,%f); fclose(fid); s=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,1000,0,
3、4* 108) 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,500,0,8* 108) 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,150,0,3* 109) s=fra(800,400,x) s2=s.2; en
4、ergy=sum(s2,2) subplot(2,2,4) plot(energy) xlabel(帧数) ylabel(短时能量 E) legend(N=800) axis(0,75,0,6* 109) 五、思考题 装订线1、通过改动不同的窗长和窗移,观看短时平均能量的变化。 装订线答:窗长越小短时平均能量越小,细节越多,随着窗长的增大短时平均能量越大,曲线越光滑,个别细节被平滑掉了。 2、在相同的实验环境下,把本文中的矩形窗改成hamming窗,来实现语音短时平均能量。 装订线实验名称 语音修正的短时自相关的实现 同组人 专业班级 学号 姓名 成绩 一、实验目的 1、熟悉语言修正自相关的意
5、义。 2、充分理解取不同窗长时的语言的修正自相关的变化情况。 3、熟悉Matlab编程语言在语言信号处理中的作用。 4、 能够实现程序的重新编制。 二、实验要求 1、实验前自己用Cool Edit音频编辑软件录制声音,并把它保存为.txt文件。 2、编程实现不同矩形窗长N=320,160,70的短时修正自相关。 3、用Matlab画出短时修正自相关的图形。 4、写出实验报告,分析实验结果。 三、实验步骤 1、用Cool Edit读入浊音语音,设置采样率为8kHz,16位,单声道。 2、将读入的语音wav文件保存为txt文件。 3、读入Matlab中,并且对照取不同矩形窗长N的短时修正自相关函数
6、,画出图形。 四、程序及运行结果 fid=fopen(zhuoyin.txt,rt); b=fscanf(fid,%f); b1=b(1:320); N=160; A=; for k=1:160; sum=0; for m=1:N; sum=sum+b1(m)*b1(m+k-1); end A(k)=sum; end for k=1:160 A1(k)=A(k)/A(1); end figure(1) subplot(3,1,1) plot(A1); ylabel(R(k) legend(N=160) axis(0,320,-1,1); b2=b(1:200); N=100; 装订线B=; f
7、or k=1:100; sum=0; for m=1:N; sum=sum+b2(m)*b2(m+k-1); end B(k)=sum; end for k=1:100 B1(k)=B(k)/B(1); end figure(1) subplot(3,1,2) plot(B1); ylabel(R(k) legend(N=100) axis(0,320,-1,1); L=1; b3=b(1:140); N=70; C=; for k=1:70; sum=0; for m=1:N; sum=sum+b3(m)*b3(m+k-1); end C(k)=sum; end for k=1:70 C1(
8、k)=C(k)/C(1); end figure(1) subplot(3,1,3) plot(C1); ylabel(R(k) legend(N=70) axis(0,320,-1,1); 五、思考题 1、在相同的实验环境下,用Matlab程序实现语音的短时自相关的图形,并与修正自相关进行比较,加深对修正自相关的理解。 答:由于在计算短时自相关时,窗选语音段为有限长度N,而求和上限是N-1-k,因此当k增加时可用于计算的数据就越来越少了,从而导致k增加时自相关函数的幅度减小了。采用修正的自相关函数可以避免这个问题。 2、通过实验的图形,试分析它在语音信号处理中的应用。 答:1)可以作为区分清
9、音浊音的特征参数; 2)在信噪比较高的情况下,短时能量还可以作为区分有声和无声的依据; 3)可以作为辅助的特征参数用于语音识别中。 装订线实验名称 用修正的短时自相关检测语言的基音周期 同组人 专业班级 学号 姓名 成绩 一、实验目的 1、熟悉前一个实验程序以及中心削波的意义。 2、用Matlab实现用修正的短时自相关检测语音的基音周期。 3、分析修正的短时自相关在基音周期检测中的应用。 4、能够对程序进行重新编制。 二、实验要求 1、实验前自己用Cool Edit音频编辑软件录制浊音声音,并把它保存为.txt文件。 2、分别取长度N=160和N=N+K的矩形窗函数作用于语音信号上,首先对其进
10、行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延迟为0K=th0 a(k)=a(k)-th0; elseif a(k)=(-th0); a(k)=a(k)+th0; else a(k)=0; end end m=max(a); for i=1:L; a(i)=a(i)/m; end subplot(2,1,2); plot(a,k); axis(0,1711,-1,1); title(中心削波后语音波形); xlabel(样点数); ylabel(幅度值); fclose(fid); 4.编程实现削波前后的修正自相关,并检测出基音周期。 fid=fopen(
11、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); end A(k)=sum; end for k=1:320 B(k)=A(k)/A(1); end figure(2); subplot(2,1,1); 装订线 plot(B,k); title(中心削波前修正自相关); xlabel(延迟 k); ylabel(幅度值); axis(0,320,-1,1); N=320; A=; for k=1:32
12、0; sum=0; for m=1:N; sum=sum+a(m)*a(m+k-1); end A(k)=sum; end for k=1:320 C(k)=A(k)/A(1); end subplot(2,1,2); plot(C,k); title(中心削波后修正自相关); xlabel(延迟 k); ylabel(幅度值); axis(0,320,-1,1); 四、思考题 1在相同的实验环境下,用Matlab程序实现程序短时自相关检测语音的基音周期的图形,并与修正的短时自相关进行比较。 答:修正自相关使得在基音周期位置的峰值更加尖锐,使得由于声道共振特性引起的峰值有 效减少,从而减少倍频或半频错误。 2、分析清音的修正的短时自相关图形。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1