推荐太原理工大学数字语音处理实验报告 精品Word文件下载.docx
- 文档编号:8126961
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:17
- 大小:170.06KB
推荐太原理工大学数字语音处理实验报告 精品Word文件下载.docx
《推荐太原理工大学数字语音处理实验报告 精品Word文件下载.docx》由会员分享,可在线阅读,更多相关《推荐太原理工大学数字语音处理实验报告 精品Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。
二、实验原理
定义n时刻某语音信号的短时平均能量
为:
式中N为窗长,可见短时平均能量为为一帧样点值的甲醛平方和。
特殊地,当窗函数为矩形窗时,有
三、实验要求
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.m
functionf=fra(len,inc,x)
fh=fix(((size(x,1)-len)/inc)+1)
f=zeros(fh,len);
i=1;
n=1;
whilei<
=fh
j=1;
whilej<
=len
f(i,j)=x(n);
j=j+1;
n=n+1;
end
n=n-len+inc;
i=i+1;
end
5.对照取不同矩形窗N的短时平均能量,画出图形。
取不同窗长N时的短时能量对照程序energy.m
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,1500,0,10*10^5]);
s=fra(100,50,x);
subplot(2,2,2)
N=100'
axis([0,750,0,2*10^6]);
s=fra(400,200,x);
subplot(2,2,3)
N=400'
axis([0,190,0,7*10^6]);
s=fra(800,400,x);
subplot(2,2,4)
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编程语言实现取不同窗长时的语音修正自相关的变化情况,为下一个实验做好准备。
1.用Cooledit读入浊音语音。
3.读入Matlab中,并且对照取不同矩形窗长N的短时修正自相关函数,并画出图形。
voice.txt'
b=fscanf(fid,'
b1=b(1:
640);
N=320;
A=[];
fork=1:
320;
sum=0;
form=1:
N;
sum=sum+b1(m)*b1(m+k-1);
A(k)=sum;
fork=1:
A1(k)=A(k)/A
(1);
figure
(1)
subplot(3,1,1)
plot(A1);
R(k)'
N=320'
axis([0,320,-1,1]);
b2=b(1:
320);
N=160;
B=[];
160;
sum=sum+b2(m)*b2(m+k-1);
B(k)=sum;
B1(k)=B(k)/B
(1);
subplot(3,1,2)
plot(B1);
N=160'
L=1;
b3=b(1:
140);
N=70;
C=[];
70;
sum=sum+b3(m)*b3(m+k-1);
C(k)=sum;
C1(k)=C(k)/C
(1);
subplot(3,1,3)
plot(C1);
N=70'
数字语音处理
用修正的短时自相关检测语音基音周期
跨越机房
实验三用修正的短时自相关检测语音的基音周期
1.熟悉前一个实验程序以及中心削波的意义。
.
2.用Matlab实现用修正的短时自相关检测语音的基音周期。
3.分析修正的短时自相关在基音周期检测中的应用。
4.能够对程序进行重新编制。
如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。
语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。
计算两相邻最大峰值间的距离,就可以估计出基音周期。
观察浊音信号的自相关函数图,其中真正反映基音周期的只有少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。
因此为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。
第一种方法是先对语音信号进行低通滤波,再进行自相关计算,因为语音信号包括十分丰富的谐波分量,基音频率的范围分布宰0~500Hz左右,即使女高音升c调最高也不会超过1Kz,所以采用1Kz的低通滤波器先对语音信号进行滤波,保留基音频率,再用2Kz采样频率进行采样;
最后用2~20ms的滞后时间计算短时自相关,帧长取10~20ms,即可估计出基音周期。
且中心削波函数如式(3-1)
x-xL(x>
xL)
f(x)=0(-xL≤x≤xL)
x+xL(x<
xL)(3-1)
一般削波电平X
取本帧语音幅度的60%~70%。
将削波后的序列f(x)用短时自相关函数估计基音周期,在基音周期位置的峰值更加尖锐,可以有效减少倍频或半频错误。
1.实验前自己用CoolEdit音频编辑软件录制浊音部分,并把它保存为.txt文件。
2.分别取长度N=160和N’=N+K的矩形窗函数作用于语音信号上,首先对其进行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延迟为0<
K<
160时的相关值,并且用得到的相关值来检测语音信号的基音周期,用MATLAB画出图形。
3.写出实验报告,分析实验结果。
四、实验条件
五、实验步骤
3.编程实现中心削波前后的语音波形。
[a,count]=fscanf(fid,'
[1,inf]);
L=length(a);
m=max(a);
fori=1:
L
a(i)=a(i)/m;
n=min(a);
ht=(m+n)/2;
L;
a(i)=a(i)-ht;
figure
(1);
subplot(2,1,1);
plot(a,'
k'
axis([0,1711,-1,1]);
title('
中心削波前语音波形'
样点数'
幅度值'
coeff=0.7;
th0=max(a)*coeff;
ifa(k)>
=th0
a(k)=a(k)-th0;
elseifa(k)<
=(-th0);
a(k)=a(k)+th0;
else
a(k)=0;
subplot(2,1,2);
中心削波后语音波形'
4.编程实现削波前后的修正自相关,并检测出基音周期。
[b,count]=fscanf(fid,'
sum=sum+b(m)*b(m+k-1);
320
B(k)=A(k)/A
(1);
figure
(2);
plot(B,'
中心削波前修正自相关'
延迟k'
sum=sum+a(m)*a(m+k-1);
C(k)=A(k)/A
(1);
plot(C,'
中心削波后修正自相关'
六、实验结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 推荐太原理工大学数字语音处理实验报告 精品 推荐 太原 理工大学 数字 语音 处理 实验 报告