太原理工大学语音信号实验报告.docx
《太原理工大学语音信号实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工大学语音信号实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
![太原理工大学语音信号实验报告.docx](https://file1.bdocx.com/fileroot1/2022-11/22/a7609e84-6f06-4602-b785-397cd95b3594/a7609e84-6f06-4602-b785-397cd95b35941.gif)
太原理工大学语音信号实验报告
太原理工大学现代科技学院
语音信号处理课程实验报告
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称语音短时平均能量的实现同组人
专业班级学号姓名成绩
一、实验目的
1、熟悉Matlab基本程序的运用。
2、充分理解取不同窗长时的语音短时平均能量的变化情况。
3、熟悉Matlab编程语言在语音信号处理中的作用。
4、能够实现程序的重新编制。
二、实验要求
1、实验前自己用CoolEdit音频编辑软件录制声音“我到北京去”,并把它保存为.txt文件。
2、编程实现不同矩形窗长N=50、100、400、800的短时平均能量。
3、用Matlab画出不同窗长的短时平均能量的图形。
4、写出实验报告,分析实验结果。
三、实验步骤
1、用CoolEdit读入语音“我到北京去”。
设置采样率为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,4*10^8])
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*10^8])
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*10^9])
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,75,0,6*10^9])
五、思考题
……………………………………装………………………………………订…………………………………………线………………………………………
1、通过改动不同的窗长和窗移,观看短时平均能量的变化。
……………………………………装………………………………………订…………………………………………线………………………………………
答:
窗长越小短时平均能量越小,细节越多,随着窗长的增大短时平均能量越大,曲线越光滑,个别细节被平滑掉了。
2、在相同的实验环境下,把本文中的矩形窗改成hamming窗,来实现语音短时平均能量。
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称语音修正的短时自相关的实现同组人
专业班级学号姓名成绩
一、实验目的
1、熟悉语言修正自相关的意义。
2、充分理解取不同窗长时的语言的修正自相关的变化情况。
3、熟悉Matlab编程语言在语言信号处理中的作用。
4、能够实现程序的重新编制。
二、实验要求
1、实验前自己用CoolEdit音频编辑软件录制声音,并把它保存为.txt文件。
2、编程实现不同矩形窗长N=320,160,70的短时修正自相关。
3、用Matlab画出短时修正自相关的图形。
4、写出实验报告,分析实验结果。
三、实验步骤
1、用CoolEdit读入浊音语音,设置采样率为8kHz,16位,单声道。
2、将读入的语音wav文件保存为txt文件。
3、读入Matlab中,并且对照取不同矩形窗长N的短时修正自相关函数,画出图形。
四、程序及运行结果
fid=fopen('zhuoyin.txt','rt');
b=fscanf(fid,'%f');
b1=b(1:
320);
N=160;
A=[];
fork=1:
160;
sum=0;
form=1:
N;
sum=sum+b1(m)*b1(m+k-1);
end
A(k)=sum;
end
fork=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=[];
fork=1:
100;
sum=0;
form=1:
N;
sum=sum+b2(m)*b2(m+k-1);
end
B(k)=sum;
end
fork=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=[];
fork=1:
70;
sum=0;
form=1:
N;
sum=sum+b3(m)*b3(m+k-1);
end
C(k)=sum;
end
fork=1:
70
C1(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)可以作为区分清音浊音的特征参数;
2)在信噪比较高的情况下,短时能量还可以作为区分有声和无声的依据;
3)可以作为辅助的特征参数用于语音识别中。
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称用修正的短时自相关检测语言的基音周期同组人
专业班级学号姓名成绩
一、实验目的
1、熟悉前一个实验程序以及中心削波的意义。
2、用Matlab实现用修正的短时自相关检测语音的基音周期。
3、分析修正的短时自相关在基音周期检测中的应用。
4、能够对程序进行重新编制。
二、实验要求
1、实验前自己用CoolEdit音频编辑软件录制浊音声音,并把它保存为.txt文件。
2、分别取长度N=160和N'=N+K的矩形窗函数作用于语音信号上,首先对其进行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延迟为03、写出实验报告,分析实验结果。
三、实验步骤
1、用CoolEdit读入浊音语音。
设置采样率为8kHz,16位,单声道。
2、将读入的语音wav文件保存为txt文件。
3、编程实现中心削波前后的语音波形。
四、程序及运行结果
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:
L
a(i)=a(i)/m;
end
m=max(a);
n=min(a);
ht=(m+n)/2;
fori=1:
L;
a(i)=a(i)-ht;
end
figure
(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)>=th0
a(k)=a(k)-th0;
elseifa(k)<=(-th0);
a(k)=a(k)+th0;
else
a(k)=0;
end
end
m=max(a);
fori=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('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);
end
A(k)=sum;
end
fork=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=[];
fork=1:
320;
sum=0;
form=1:
N;
sum=sum+a(m)*a(m+k-1);
end
A(k)=sum;
end
fork=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、分析清音的修正的短时自相关图形。