您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > 语音信号处理 实验报告
实验一、语音信号采集与分析一、实验目的:1)了解语音信号处理基本知识:语音信号的生成的数学模型。2)在理论学习的基础上,进一步地理解和掌握语音信号的读入、回放、波形显示。语音信号时域和频域分析方法。二、实验原理一定时宽的语音信号,其能量的大小随时间有明显的变化。其中清音段(以清音为主要成份的语音段),其能量比浊音段小得多。短时过零数也可用于语音信号分析中,发浊音时,其语音能量约集中于3kHz以下,而发清音时,多数能量出现在较高频率上,可认为浊音时具有较低的平均过零数,而清音时具有较高的平均过零数,因而,对一短时语音段计算其短时平均能量及短时平均过零数,就可以较好地区分其中的清音段和浊音段,从而可判别句中清、浊音转变时刻,声母韵母的分界以及无声与有声的分界。这在语音识别中有重要意义。FFT在数字通信、语音信号处理、图像处理、匹配滤波以及功率谱估计、仿真、系统分析等各个领域都得到了广泛的应用。本实验通过分析加噪的语音信号频谱,可以作为分离信号和噪声的理论基础。三、实验内容:Matlab编程实验步骤:1.新建M文件,扩展名为“.m”,编写程序;2.选择File/Save命令,将文件保存在F盘中;3.在CommandWindow窗中输入文件名,运行程序;程序一、用MATLAB对原始语音信号进行时域分析,分析短时平均能量及短时平均过零数。程序二、用MATLAB对原始语音信号进行频域分析,画出它的时域波形和频谱给原始的语音信号加上一个高频余弦噪声,频率为5kHz。画出加噪后的语音信号时域和频谱图。程序1.a=wavread('D:\II.wav');%读取语音信号的数据,赋给变量x1,这里的文件的全路径和文件名由个人设计n=length(a);N=320;subplot(3,1,1),plot(a);h=linspace(1,1,N);%形成一个矩形窗,长度为NEn=conv(h,a.*a);%求卷积得其短时能量函数Ensubplot(3,1,2),plot(En);fori=1:n-1ifa(i)=0b(i)=1;elseb(i)=-1;endifa(i+1)=0b(i+1)=1;elseb(i+1)=-1;endw(i)=abs(b(i+1)-b(i));end%求出每相邻两点符号的差值的绝对值k=1;j=0;while(k+N-1)nZm(k)=0;fori=0:N-1;Zm(k)=Zm(k)+w(k+i);endj=j+1;k=k+160;%每次移动半个窗endforw=1:jQ(w)=Zm(160*(w-1)+1)/640;%短时平均过零率endsubplot(3,1,3),plot(Q);实验结果打印粘贴到右侧:050010001500200025003000350040004500-1010500100015002000250030003500400045000100200051015202500.20.4程序2:fs=22050;%语音信号采样频率为22050x1=wavread('D:\II.wav');%读取语音信号的数据,赋给变量x1sound(x1,22050);%播放语音信号f=fs*(0:511)/1024;t=0:1/22050:(size(x1)-1)/22050;%将所加噪声信号的点数调整到与原始信号相同Au=0.03;d=[Au*cos(2*pi*5000*t)]';%噪声为5kHz的余弦信号x2=x1+d;sound(x2,22050);%播放加噪声后的语音信号y2=fft(x2,1024);%对信号做1024点FFT变换figure(1)subplot(2,1,1);plot(x1)%做原始语音信号的时域图形title('原始语音信号');xlabel('timen');ylabel('幅值n');subplot(2,1,2);plot(t,x2)title('加噪后的信号');xlabel('timen');ylabel('幅值n');figure(2)subplot(2,1,1);plot(f,abs(x1(1:512)));title('原始语音信号频谱');xlabel('Hz');ylabel('幅值');subplot(2,1,2);plot(f,abs(y2(1:512)));title('加噪后的信号频谱');xlabel('Hz');ylabel('幅值');实验结果打印粘贴到右侧:050010001500200025003000350040004500-1-0.500.51原始语音信号timen幅值n00.020.040.060.080.10.120.140.160.180.2-2-1012加噪后的信号timen幅值n02000400060008000100001200000.020.040.06原始语音信号频谱Hz幅值020004000600080001000012000020406080加噪后的信号频谱Hz幅值四、实验分析加入噪声后音频文件可辨性下降,波形的平缓,频谱图上看,能量大部分集中在2000HZz到4000Hz之间。五、实验总结通过这次实验,我学会了如何用M语言将WAV音频文件读入MATLAB软件,并对它们加噪处理,也了解了音频的频谱分析,联系课本知识与实验,加深对理论的理解。实验二:语音信号的时域特征与频域特征一、实验目的使学生通过本实验观察语音信号在时域和频域的基本特征(语音波形、基音频率、过零数、共振峰),验证教材中关于语音信号在时域和频域的基本特征的概念与论述;通过采集语音数据与在实验中记录每个元音的基音周期、过零数、共振峰等环节熟悉这些语音的基本特征,为今后深入学习语音信号处理奠定基础。二、实验内容学习音频编辑软件CoolEdit的使用方法及语音文件的建立;采集语音数据;观察语音波形;记录每个元音的基音周期(其倒数为基音频率)、过零数、共振峰;观察语音频域特征;分析不同元音的共振峰模式的特点(频率、相对振幅)。三、实验原理元音与辅音在发音方法有如下基本区别:发元音时气流顺利通过声腔,声带颤动,形成的声波是周期性的;发辅音时气流暂时被阻不能通过或只能勉强挤出去。元音具有基音与共振峰结构,辅音则不具有这两者。基音由声带振动频率产生,决定语音的音高、音调。在语音波形中表现为准周期峰值。共振峰是语音频谱上的强频区,表现为频谱上呈峰状。共振峰由声腔形状的变化决定,不同的声腔形状有不同的固有频率,产生不同的共振峰模式。每个元音有特定的共振峰模式。四、实验方法与实验步骤(一)音频编辑软件CoolEdit的使用方法及语音文件的建立①点击桌面上“cooledit”图标,选不同项可激活cooledit菜单中不同功能。②点击“file”菜单中的“new”,设抽样频率为8KHz,单声道“mono”,“8bit”。②点击“Record”录音,将录音存成“.wav”文件。③点击菜单中“View”中的“SpectralView”可观看语谱图。④点击菜单中“Analyze”中的“FrequenceAnalysis”可分析频谱。⑤点击菜单中“Effects”中的“Amplitude”可改变幅度。其它菜单功能可通过点击试验熟悉。(二)观察语音时域特征在E盘或D盘建立实验者本人的文件夹,然后做以下实验。①发【a】、【i】、【e】、【u】这四个元音,由麦克风采集语音数据,分别存成“a.wav”、“i.wav”、“e.wav”、“u.wav”文件,存在本人的文件夹中。②利用CoolEdit打开并观察以上语音数据的波形。③元音波形中的准周期结构与声带振动频率对应,其周期称为“基音周期”(其倒数为基音频率),利用CoolEdit观察元音的波形,记录每个元音的前部、中部和后部的各一个基音周期。④记录每个元音的任意一个基音周期中的过零数。A10个E5个I10个U6个⑤共振峰是语音频谱的峰状区域,利用CoolEdit观察上述每个元音的频谱,记录每个元音的前三个共振峰的数值。前面图用praat5332_win32,后面图用的是CoolEditProA69215872538HZE34816892637HZI70614672497HZU41116152461HZ表格:钟敏华基音频率过零数共振峰(HZ)A1661069215872538E166534816892637I1671070614672497U143641116152461(三)观察语音频域特征对你发的【a】、【i】、【e】、【u】这四个元音中每一个元音,分别选取稳定段的256个抽样,利用Matlab的FFT计算其频谱,并利用subplot命令以波形和频谱对应的形式画出图形。部分参考程序如下y=wavread('D:Ewav');t=1:length(y)y2=wavread('D.Ewav',[40004512]);y2F=fft(y2);subplot(3,1,1)plot(t,y,'-b',4000,[0.2:0.005:0.4],'-r',4512,[0.2:0.005:0.4],'-r')subplot(3,1,2)plot(y2);gridonsubplot(3,1,3)plot(log(abs(y2F)));gridonA01000200030004000500060007000-0.500.5050100150200250300350400450-0.200.2050100150200250300350400450-10-505E050010001500200025003000-0.500.5050100150200250300-0.200.2050100150200250300-10-505I050010001500200025003000350040004500-101050100150200250300350400450-0.200.2050100150200250300350400450-10-505U05001000150020002500300035004000-0.500.5050100150200250300350400450-0.200.2050100150200250300350400450-10-505五、思考题(1)共振峰与语音波形有什么相关之处?共振峰是语音频谱上的加强频区,表现为频谱上呈峰状。共振峰由声腔形状的变化决定,不同的声腔形状有不同的固有频率,产生不同的共振峰模式,故每个元音有特定的共振峰模式,而且不同的人因声带不同也会产生不同的共振峰。(2)基音周期与音调的高低有什么对应关系?基音由声带振动频率产生,决定语音的音高、音调。因此,音调的高低决定了基音频率,从而决定了基音周期大小。六、实验体会通过此次语音信号的时域特征与频域特征特别是元音字母的分析实验,使我对音频分析工具CoolEdit和有了最初步应用有了一定的认识和使用经验,同时也加深我对语音信号的时域特征与频域特征这方面的理论知识理解。遇到的问题是CoolEdit统计的共振峰频率不对,在老师和同学的帮助下,使用praat5332_win32,问题能够逐一得到解决,顺利完成实验,还有我发现有时候M程序在文件模式下不能得出结果,要在MATLAB势利窗口下才能正确运行。总之,这次实验让我受益良多。
本文标题:语音信号处理 实验报告
链接地址:https://www.777doc.com/doc-3952042 .html