数字语音处理实验报告.docx

上传人:b****2 文档编号:1764871 上传时间:2023-05-01 格式:DOCX 页数:13 大小:100.06KB
下载 相关 举报
数字语音处理实验报告.docx_第1页
第1页 / 共13页
数字语音处理实验报告.docx_第2页
第2页 / 共13页
数字语音处理实验报告.docx_第3页
第3页 / 共13页
数字语音处理实验报告.docx_第4页
第4页 / 共13页
数字语音处理实验报告.docx_第5页
第5页 / 共13页
数字语音处理实验报告.docx_第6页
第6页 / 共13页
数字语音处理实验报告.docx_第7页
第7页 / 共13页
数字语音处理实验报告.docx_第8页
第8页 / 共13页
数字语音处理实验报告.docx_第9页
第9页 / 共13页
数字语音处理实验报告.docx_第10页
第10页 / 共13页
数字语音处理实验报告.docx_第11页
第11页 / 共13页
数字语音处理实验报告.docx_第12页
第12页 / 共13页
数字语音处理实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字语音处理实验报告.docx

《数字语音处理实验报告.docx》由会员分享,可在线阅读,更多相关《数字语音处理实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

数字语音处理实验报告.docx

数字语音处理实验报告

实验一、用MATLAB实现语音信号的时域分析

学院:

信息与通信工程学院

专业:

通信工程

班级:

通信144

学号:

2014136410

姓名:

刘新雨

指导教师:

崔艳秋

1.实验目的

观察并验证语音信号的时域特性,理解并掌握典型的语音信号时域分析方法和时域特征,为深入学习语音信号处理的各种应用奠定基础。

2.MATLAB程序代码

(1)由麦克风采集语音数据,将采集的数据存成WAV文件(采样率为8000Hz),存在本人的文件夹中。

所用程序代码为:

clear;

closeall;

Fs=11025;

y=wavrecord(5*Fs,Fs,'double');

wavwrite(y,'D:

\\lxy');

soundview(y,Fs);

(2)读取WAV文件,显示语音信号的波形。

所用程序代码为:

clear;

closeall;

x=wavread('D:

\\lxy.wav');

figure;

plot(x);

axis([0,size(x,1),-0.35,0.3]);

title('语音信号时域波形');xlabel('样点数');ylabel('幅度');

(3)读取WAV文件,计算并显示语音的短时能量(窗函数为矩形窗,帧长为50,200,400,600)。

所用程序代码为:

clear;

closeall;

x=wavread('d:

\\k.wav');

x=double(x);

f1=enframe(x,50,50);

energy1=sum(abs(f1),2);

subplot(2,2,1);plot(energy1);

title('语音信号的短时能量');

legend('帧长LEN=50');

f2=enframe(x,200,200);

energy2=sum(abs(f2),2);

subplot(2,2,2);plot(energy2);

title('语音信号的短时能量');

legend('帧长LEN=200');

f3=enframe(x,400,400);

energy3=sum(abs(f3),2);

subplot(2,2,3);plot(energy3);

title('语音信号的短时能量');

legend('帧长LEN=400');

f4=enframe(x,600,600);

energy4=sum(abs(f4),2);

subplot(2,2,4);plot(energy4);

title('语音信号的短时能量');

legend('帧长LEN=600');

(4)读取WAV文件,计算并显示语音的短时过零率(窗函数为矩形窗,帧长为256,帧移为128),所用程序代码为:

clear;

closeall;

x=wavread('D:

\\lxy.wav');

x=double(x);

LEN=300;

INC=150;

f=enframe(x,LEN,INC);

%计算短时过零率

z=zeros(size(f,1),1);

difs=0.01;

fori=1:

size(f,1)

s=f(i,:

);

forj=1:

(length(s)-1)

ifs(j)*s(j+1)<0&abs(s(j)-s(j+1))>difs;

z(i)=z(i)+1;

end

end

end

subplot(2,1,1);plot(x);

axis([0,size(x,1),-0.35,0.3]);

title('语音信号时域波形');xlabel('样点数');ylabel('幅度');

subplot(2,1,2);plot(z);

title('语音信号的短时过零率');xlabel('帧数');ylabel('短时过零率');

(5)读取WAV文件,计算浊音与清音的短时自相关函数所用的程序代码为:

clear;

closeall;

x=wavread('D:

\\lxy.wav');

x=double(x);

LEN=256;

INC=128;

f=enframe(x,LEN,INC);

ff=f(15,:

);

N=LEN;

R=zeros(1,N);

fork=1:

N

R(k)=sum(ff(k:

N).*ff(1:

N-k+1));

end

fork=1:

N

R1(k)=R(k)/R

(1);

end

subplot(2,1,1);plot(ff);

axis([0,N,-0.5,0.75])

title('加矩形窗的语音帧');xlabel('样点数');ylabel('幅度');

subplot(2,1,2);plot(R1);

axis([0,N,-1,1])

title('加矩形窗的短时自相关函数');xlabel('k');ylabel('R(k)');

clear;

closeall;

x=wavread('d:

\\k.wav');

x=double(x);

LEN=256;

INC=128;

f=enframe(x,LEN,INC);

ff=f(124,:

);

ff=ff'.*hamming(length(ff));

N=LEN;

R=zeros(1,N);

fork=1:

N

R(k)=sum(ff(k:

N).*ff(1:

N-k+1));

end

fork=1:

N

R1(k)=R(k)/R

(1);

end

subplot(2,1,1);plot(ff);

axis([0,N,-0.5,0.75])

title('加汉明窗的语音帧');xlabel('样点数');ylabel('幅度');

subplot(2,1,2);plot(R1);

axis([0,N,-1,1])

title('加汉明窗的短时自相关函数');xlabel('k');ylabel('R(k)');

clear;

closeall;

x=wavread('D:

\\lxy.wav');

x=double(x);

LEN=10;

INC=10;

f=enframe(x,LEN,INC);

ff=f(500,:

);

N=LEN;

R=zeros(1,N);

fork=1:

N

R(k)=sum(ff(k:

N).*ff(1:

N-k+1));

end

fork=1:

N

R1(k)=R(k)/R

(1);

end

subplot(2,1,1);plot(ff);

axis([0,N,-0.05,0.05])

title('加矩形窗的语音帧');xlabel('样点数');ylabel('幅度');

subplot(2,1,2);plot(R1);

axis([0,N,-0.5,0.5])

title('加矩形窗的短时自相关函数');xlabel('k');ylabel('R(k)');

 

clear;

closeall;

x=wavread('D:

\lxy.wav');

x=double(x);

LEN=256;

INC=128;

f=enframe(x,LEN,INC);

ff=f(25,:

);

N=LEN;

R=zeros(1,N);

fork=1:

N

R(k)=sum(ff(k:

N).*ff(1:

N-k+1));

end

fork=1:

N

R1(k)=R(k)/R

(1);

end

subplot(2,1,1);plot(ff);

axis([0,N,-0.05,0.05])

title('加矩形窗的语音帧');xlabel('样点数');ylabel('幅度');

subplot(2,1,2);plot(R1);

axis([0,N,-0.5,0.5])

title('加矩形窗的短时自相关函数');xlabel('k');ylabel('R(k)');

3.实验结果及其分析

(1)本实验利用11025Hz的采样频率对输入的语音信号进行采样,采样点数为55125个,持续时间为5秒,存储格式为double。

之后将数字语音数据写入D盘的

a.wav文件,并通过放音设备进行回放。

回放的GUI界面如图1所示,通过该界面可以观察采集的语音信号。

图1用soundview函数显示的语音信号

(2)本实验将D盘的lxy.wav文件读取出来,并显示文件中的语音信号波形,显示的波形如图2所示。

该波形是汉语拼音“Xu”的时域波形。

从图2可以看出,[X]是清音,它的波形幅值较小,且没有周期性;[u]是浊音,它的波形幅值较大且有明显的周期性起伏结构。

图2语音“Xu”的时域波形

(3)本实验将D盘的lxy.wav文件读取出来,当帧长取不同值时计算语音信号的短时能量,如图3所示。

从图3可以看出,浊音短时能量大,短时平均幅度大,短时过零率低,浊音具有较强的能量值,音段内隐藏信息的能力高。

轻音短时能量小,短时平均幅度小,能量值较低,音段内隐藏信息的能力较低。

图3不同帧长对应的短时能量

(4)本实验首先读取lxy.wav中的语音数据,之后计算每一帧的短时过零率,最后将原始语音信号和短时过零率显示出来,如图4所示。

从图4可以看出,清音的过零率较高,浊音的过零率较低。

图4短时过零率

(5)本实验首先读取lxy.wav中的语音数据,之后对数据进行分帧加窗处理,帧长为256,帧移为128。

选取其中的一帧浊音(第15帧)并计算这帧的短时自相关函数。

当窗函数分别为矩形窗和汉明窗时,截取的语音信号和短时自相关函数如图5和图6

所示。

从图5和图6可以看出,矩形窗能够比汉明窗更明显的显示出第一个峰值。

当窗函数为矩形窗,不同帧长(帧移=帧长)的一帧浊音对应的短时自相关函数如图7和图8所示。

从图7和图8可以看出,帧长越长,越容易区分其最大值。

当窗函数为矩形窗,帧长为256,帧移为128,选取一帧清音,获得的短时自相关函数如图9所示。

从图5和图9可以看出,浊音具有明显的周期性,清音无明显周期。

图5加矩形窗的短时自相关函数

图6加汉明窗的短时自相关函数

图7帧长为10时的短时自相关函数

图8帧长为100时的短时自相关函数

图9清音的短时自相关函数

4.思考题

短时能量的主要用途有哪些?

答:

可以区分清音段与浊音段,可以用来区分,有声与无声的分界,生母和韵母的分界等,也可以用于语音识别中。

(注:

可编辑下载,若有不当之处,请指正,谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2