燕山大学数字信号处理仪表一班1组三级项目报告.docx
《燕山大学数字信号处理仪表一班1组三级项目报告.docx》由会员分享,可在线阅读,更多相关《燕山大学数字信号处理仪表一班1组三级项目报告.docx(19页珍藏版)》请在冰点文库上搜索。
![燕山大学数字信号处理仪表一班1组三级项目报告.docx](https://file1.bingdoc.com/fileroot1/2023-6/10/58c516ef-7614-4328-b847-a8fe75dfe90d/58c516ef-7614-4328-b847-a8fe75dfe90d1.gif)
燕山大学数字信号处理仪表一班1组三级项目报告
信号处理原理及应用
三级项目报告书
项目名称:
基于matlab的语音信号处理
班级:
仪表一班二组
指导教师:
谢平
日期:
2015/4/14
摘要
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
本文通过我们学习的知识利用MATLAB对语音信号进行重新采样分析,(增加或降低采样频率),比较重新采样前后声音的变化,此外结合课内课外知识进行程序的编写实现特定的语音信号的转变,完成变声器的设计工作。
关键字:
音频信号变采样变声器
目录
摘要……………………………………………….2
一.课题名称…………………………………….4
1.1语音信号重新变采样…………………..4
1.2变声器的设计…………………………..4
二.音频信号处理的研究背景及意义………….4
三.利用MATLAB对语音信号重新采样分析…..4
3.1时域采样定理………………………………..4
3.2语音信号重新采样分析……………………..5
3.3采样定理分析……………………………..7
四.变声器的设计………………………………10
4.1语音参数分析……………………………...10
4.2变声器原理………………………………...11
4.3设计方案及实现…………………………11
五.项目总结……………………………………..17
六.参考文献
一、课题名称
1.1语音信号重新变采样
1.2变声器的设计
二、音频信号处理的研究背景及意义
音频信号处理是一项历史悠久研究广泛的课题,语音是人类获取信息的重要来源和利用信息的重要手段。
通过语音相互传递信息是人类最重要的基本功能之一,语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。
虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。
三、MATLAB对语音信号采样分析
3.1时域采样定理
对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性的延拓形成的。
如果采样频率大于连续信号最高频率的2倍那么采样信号可以唯一的恢复出原连续信号,否则会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。
3.2语音信号重新采样分析
给定一段音频信号,已知信号默认的采样频率是22050HZ
下面用程序里的给出
[y,fs]=wavread('C:
\Users\Administrator\Des.wav');
下图分别是默认采样频率的二分之一,和四分之一采样
下图是以默认采样频率2倍和4倍的采样。
[y,fs]=wavread('C:
\Users\Administrator\Des.wav');
sound(y,fs)pause
(1)
subplot(3,2,1);plot(y);
title('原始信号波形(采样频率)');
xlabel('时间');ylabel('幅度');
subplot(3,2,2)
Y=fft(y);plot(abs(Y));
title('原始信号频谱(采样频率)');
xlabel('时间');ylabel('度');
y2=resample(y,2,1);
sound(y2,fs/2)
pause
(1)
subplot(3,2,3);plot(y2);
title('原始信号波形(采样频率)');
xlabel('时间');ylabel('幅度');
subplot(3,2,4)
Y2=fft(y2);
plot(abs(Y2))
title('原始信号频谱(采样频率)');xlabel('时间');ylabel('幅度');
y3=resample(y,4,1);
sound(y3,fs/4);
pause
(1)
subplot(3,2,5);
plot(y3)
title('原始信号波形(采样频率)');xlabel('时间');ylabel('幅度');
subplot(3,2,6)
Y3=fft(y3);
plot(abs(Y3))
title('原始信号频谱(采样频率)');
xlabel('时间');ylabel('幅度');
3.3采样定理分析
3.3.1欠采样
3.3.2临界采样
3.3.3过采样
结论分析:
我们可以看出只有过采样既采样频率大于连续信号最高频率的2倍,才可以唯一的恢复出原连续信号。
四、变声器的设计
4.1语音参数分析
人们讲话时发出的声音叫语音,音素是语音发音的最小单位。
任何语言都有语音的元音(Vowel)和辅音(Consonant)两种音素
元音:
声带振动,声道完全开放,气流顺利通过
辅音:
呼出的气流,声道受阻,克服受阻发声,
声带振动为浊音,声带不振动为辅音
共振峰、基音频率、声调、声速的关系
基音周期与共振峰频率在宽带语谱图中的体现
4.2变声器原理
变声器就是通过改变输入语音的基频与共振峰频率两个参数,进而改变声音的音调,音速,使输出声音在感官上与原声音不同。
注意:
在变声过程中,基频与共振峰频率必须是独立变化
4.3设计方案及实现
综合书本,网上例程,论文,共有三种语音处理方案
①只改变速率或将频谱压缩,
②基于重采样,时间规整原来数目,以原采样频率播放,即不变声速
③精确测量基频与共振频,分别加以改变,变调且变速
4.3.1方案一
①流程图
②程序实现
[x1,fs]=wavread('抢地主男.wav');%读声音文件
N=length(x);
n=[0:
N-1];
X=fft(x);%读入音频傅里叶变换
Fs=1*fs;
T=1/Fs;
f=n/N*Fs;
%低通滤波器的设计
fp1=1200;fs1=1500;%设定低通滤波器通带截止频率和阻带截止频率
wp1=2*fp1/Fs;
ws1=2*fs1/Fs;
rp=1;
as=100;
[N1,wp1]=ellipord(wp1,ws1,rp,as);%计算低通滤波器阶数和
通带边界频率
[B,A]=ellip(N1,rp,as,wp1);%计算低通滤波器系统
函数系数
y1=filter(B,A,x1);%滤波器软件实现
Y1=abs(fft(y1));%低通滤波器设计与输出
figure
(2);subplot(2,1,1);
t=n*T;
plot(t,y1);
title('滤波后的音频信号');xlabel('X');ylabel('Y');
subplot(2,1,2);plot(f,abs(fft(y1)));
title('滤波后的幅度谱');xlabel('X');ylabel('Y');
%sound(y1,fs);
[x1,fs]=wavread('抢地主男.wav');
%变速处理
sound(x1,fs);
sound(x1,1.2*fs);%1.2倍语速播放
sound(x1,0.8*fs);%0.8倍语速播放
%变音调处理
X=fft(x1);
[X,f,n]=myfunction(x1,fs);
subplot(2,2,1);plot(n,x1);title('原音频信号');
subplot(2,2,2);plot(f,abs(X));title('原音频(男声)幅度谱')
xaa=X';N=1000;
pa=[zeros(1,N),xaa(1:
10351),zeros(1,N)];
pu=pa';
x1=3*real(ifft(pu));
[X1,fx,n]=myfunction(x1,fs);
subplot(2,2,3);plot(n,x1);title('处理后的信号');
subplot(2,2,4);plot(fx,abs(pu));title('处理后音频幅度谱');
pause
(2)
sound(x1,fs);
③语音频谱分析
男子话音的基频较低,女子的话音基频较高。
信号经过滤波器处理后,保留了有效的频率成分,一定程度上去除了干扰信号。
改变信号的基频可以实现语音的变调。
通过改变输出频率,可以实现声音的提速或减速播放。
4.3.2重采样,时间规整法
d=resample(x,p,q)
重采样(改变样本数量)
1基频
2共振峰频
消除关联性:
时间规整,通过重叠叠加算法恢复原来数目,以原来采样频率播放,即不变声速基频移动(有偏移)
程序代码:
[x,ffs]=wavread('叫地主.wav');
sound(x,ffs)
d=resample(x,3,2);
W=400;Wov=W/2;Kmax=W*2;Wsim=Wov;
xdecim=8;
kdecim=2;
X=d';
F=1.5;
Ss=W-Wov;
xpts=size(X,2);
ypts=round(xpts/F);
Y=zeros(1,ypts);
xfwin=(1:
Wov)/(Wov+1);
ovix=(1-Wov):
0;
newix=1:
(W-Wov);
simix=(1:
xdecim:
Wsim)-Wsim;
padX=[zeros(1,Wsim),X,zeros(1,Kmax+W-Wov)];
Y(1:
Wsim)=X(1:
Wsim);
xabs=0;
lastxpos=0;
km=0;
forypos=Wsim:
Ss:
(ypts-W);
xpos=F*ypos;
kmpred=km+(xpos-lastxpos);
lastxpos=xpos;
if(kmpred<=Kmax)
km=kmpred;
else
ysim=Y(ypos+simix);
rxy=zeros(1,Kmax+1);
rxx=zeros(1,Kmax+1);
Kmin=0;
fork=Kmin:
kdecim:
Kmax
xsim=padX(Wsim+xpos+k+simix);
rxx(k+1)=norm(xsim);
rxy(k+1)=(ysim*xsim');
end
Rxy=(rxx~=0).*rxy./(rxx+(rxx==0));
km=min(find(Rxy==max(Rxy))-1);
end
xabs=xpos+km;
Y(ypos+ovix)=((1-xfwin).*Y(ypos+ovix))+(xfwin.*padX(Wsim+xabs+ovix));
Y(ypos+newix)=padX(Wsim+xabs+newix);
pause(3)
sound(Y,ffs)
[X1,fx,n]=myfunction(x,fs);
subplot(2,2,1);plot(n,x);title('输入的信号')
subplot(2,2,2);plot(fx,abs(X1));title('输入的信号(女声)幅度谱')
[Y1,yx,n]=myfunction(Y,ffs);
subplot(2,2,3);plot(n,Y);title('处理后的信号');
subplot(2,2,4);plot(fx,abs(Y1));title('处理后音频幅度谱');
4.3.3方案三精确处理法
①流程图
②效果展示
五、项目总结
通过本次三级项目的研究,我们对我们要研究的课题基本得到了实现,首先对语音信号的变采样,通过录取的语音进行变采样分析,声音发生了不同变化,然后通过语音信号的处理我们实现了变声的设计工作,因为在讨论课期间已经完成了男生变老人与男生变小孩的工作,所以三级项目中我们主要进行的是男生变女生的任务。
六.参考文献
1.中国科技论文在线 基于语音基频的性别识别方法及其改进 张超琼
2.李昌立,吴善培编著.数字语音——语音编码实用教程.人民邮电出版社,2004
3.蔡莲红,黄德智,蔡锐.现代语音技术基础与应用[M].清华大学出版社,2003
4.张桂香,高爱国.语音信号采集和处理方法的研究[J].高师理科学刊2007.3
5.赵立编著语音信号处理机械工业出版社,2003
6.无名氏,鲁东大学毕业设计,基于matlab语音信号处理
7.周小军,长安大学课程设计报告,数字信号综合设计
8.matlab论坛
三级项目心得体会
通过此次讨论课以及三级项目的实现,使我对数字信号处理有了更深的认识,我们的课题主要是对语音信号的处理,通过MATLAB软件我们很好的进行了理论与实践的结合,这使我不仅加深了课本知识的了解而且对matlab有了跟多的锻炼机会
对于我们的课题而言,在进行本次课题的过程中,我们小组成员都有明确的分工,每个人都很积极、努力,各尽其责,对课程的成功实现做出了很大的贡献。
这次课题的进行过程中,我发现自己还有很多不足的地方,例如一些程序的编译,PPT的制作水品等,我希望以后有更多的机会接触这样的课题研究,可以进一步锻炼自己。
最后感谢谢老师,学长以及同学的帮助,任何一个工作的完成都离不开集体的努力,有同学老师的帮助,使得问题能够顺利解决,我以后会更加努力地去做每一项工作。
对于本次的三级项目,自己认为做的不算好,付出了大量时间,但是最终还是没能弄懂程序,相比于图像处理课程的三级项目,程序能自己编写运行,且能达到处理要求,但是这次,程序这一块没能整明白,一部分原因是因为语音信号处理这是一门课程,当你要弄懂程序时,首先就得对语音信号的教材熟悉,它的处理又很复杂,各种模型,这样就占据了我一半时间,其次自己对于matlab还是不太熟练,原以为学的很好,但是遇到参量多,函数多时就看不懂了,所以以后还得多熟练运用matlab,提高自己自学能力。
通过本次的三级项目设计,让我在除了对课本知识加深理解之外,对MATLAB软件以及变声器的工作原理有了更好的更深刻的理解。
在开始设计之前我查阅了大量资料,但是当我们真正设计时却遇到了很多的问题,给我们的设计带来了难度,但同时也是一次大的挑战,最终,在同学的帮助下,克服了种种困难,顺利的完成了本次计算机通信的课程设计。
这次课程设计使我懂得了理论与实际结合的必要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。
设计过程中,同学之间的互帮互助的相当重要的,大家共同参与讨论,这样可以很快解决设计过程的遇到的各种各样的问题
通过这次的三级项目,不仅对数字信号处理这门课程有更深入的掌握,还学到其他方面的知识,摆脱枯燥的理论学习,从中体会到这门课程的乐趣,同时也增强锻炼动手、实践能力,培养了自己独立思考和解决问题的能力,使我懂得了只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己对理论知识的熟练掌握和运用。
在三级项目实践过程中也遇到了很多问题,才发现原来自己有如此多的不足之处,对以前学过的知识理解的不够深刻,也掌握的不过牢固。
通过做这次项目的软件操作,对MATLAB有了深入的了解,但是在做设计的过程中才知道那些远远不够,所以又花了很多时间去找那些函数怎么用,但有许多细节如一些语句等,由于时间关系还是不太明白,需要今后加以学习,不断丰富自己的知识。
另外,在如此短的时间,依靠个人能力是不可能完成如此繁琐的资料查找与收集的。
所以,通过这次三级项目,加强了同学之间的交流,大大增进了我们小组成员的凝聚力,协作的精神更强了。
而且自己也学到了很多实际的有用的东西,相信对以后的工作一定会大有益处。
下面从三个方面说明我们得心得体会
一、知识方面
通过这几天的信号处理课程设计,我们加深了对课本上知识的理解,理论与实践的结合使我们发现了这么枯燥课程的乐趣,通过对音频信号的处理,独立的动手编程,使我们对数字信号处理工具MATLAB有了更加熟练的运用,我对信号这个抽样的东西有了具体形象的感知,由于数字信号直接处理的对象是数字信号,处理的方式是数值运算,相比于模拟信号具有灵活性、精度高、稳定性高、便于大规模集成等优点,所以数字信号处理相对于模拟信号更具优势,但是对于连续的模拟信号数字化,我们不知道是否会丢失什么信息,通过课程设计中对采用定理的应用与验证,我们更加深刻的理解了通过采用定理在一定的条件下,我们可以用离散信号表示连续信号的所有信息,这为我们利用离散信号代替连续信号提供了理论依据……
二、个人能力提升方面
通过课下自己对课设问题的研究,提升了我们独立思考的能力,解决问题的能力,在过程中遇到不少没有见过的问题,通过自己查阅书籍,上网查资料,和小组成员交流得到了解决,提升了我们自己的能力。
三、团队合作方面
在课程设计过程中,我们懂得了团队合作的重要性,众人拾柴火焰高,集体的力量远远胜于个人的力量,所以在今后的生活学习中,我们要加强自己的团队意识,承担自己在团队中的责任,懂得一加一大于二的道理——团队的力量大于个人力量之和。
以上就是我们得心得体会。