信号与系统三级项目——基于matlab的语音信号采集与分析.docx_第1页
信号与系统三级项目——基于matlab的语音信号采集与分析.docx_第2页
信号与系统三级项目——基于matlab的语音信号采集与分析.docx_第3页
信号与系统三级项目——基于matlab的语音信号采集与分析.docx_第4页
信号与系统三级项目——基于matlab的语音信号采集与分析.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信号与系统三级项目基于matlab的语音信号采集与分析姓名:班级:电子信息工程2班课程名称: 信号与系统指导教师: 闫盛楠2017年6月 基于Matlab的语音信号采集与分析(燕山大学 信息科学与工程学院)摘要:此次三级项目的内容是:通过运用Matlab语言实现语音信号的采集、分析和处理。在本次项目中,我们首先利用Matlab实现了对语音信号的采集,读取,然后对读入的声音信号进行了频域分析,之后定性与定量地判别了男女声,最终验证了抽样定理,得出了利用手机通信时对声音的采样应不低于8000Hz的结论。前言:通过这次三级项目的实施,我们对Matlab语言的使用、信号的采集与分析及抽样定理都有了深刻的理解,我们将我们的理解与收获以报告的形式记录下来,以便于更好的总结。在本次信号与系统的三级项目中,负责语音信号的采集与资料的收集,负责声音信号的读入、频谱分析、辨别男女声以及书写报告,负责验证抽样定理,负责制作ppt。在整个过程中,我们既有分工,又相互合作,共同解决棘手的问题。最终完成了三级项目要求的内容:对男声女声的频谱有了较为深深刻的印象,可以简单的辨别男女声音,验证了抽样定理的准确性并验证了电话可以对语音信号采用8kHz的采样速率的结论。 Matlab简介Matlab的全称是Matrix Laboratory,中文翻译名称是矩阵实验室,Matlab由美国Mathworks公司出品,用于算法计算、矩阵分析、数值计算、和将数据达到可视化的高级技术计算机语言和交互式环境。主要包括 Matlab和Simulink。Matlab的功能有分析目的数值,计算各种矩阵,将科学数据以各种图形,图表形式展现出来,更在建立非线性动态系统模型和仿真方面拥有自己的优势。在工程设计,科学研究等多方面科学研究领域发挥了强大的作用。Matlab可以实现函数和数据的图形绘制,算法实现,图形用户界面的创建,矩阵运算,连接其他编程语言的程序等。应用领域有信号处理与通信、图像处理、控制设计、工程设计。语音信号处理,顾名思义是将信号处理与语音学相结合的科学,被应用于现代通信领域,人与人、人与机器之间的信息交流。而Matlab作为一种拥有强大功能,交互性好的计算数值和图形可视化计算高级语言,能够将信号处理以及数值分析综合在一起。伴随着Matlab功能越来越强大,其广泛应用于仿真、数字语音信号处理、数字图像处理等领域。直接利用Matlab信号处理工具箱中的库函数,可以很快捷的对数字化的语音信号进行分析。 主要内容2.1 语音信号的产生及组成起初,说话者会在自己的大脑中产生想表达的语言内容,然后将这些内容用其包含的响度、音速序列、基音周期的起伏顺序等表示出来,类似于对这些内容编码。完成信息编码后,说话者用一些专用的神经肌肉发出命令控制自己的声带振动,控制声道的形状以达到发出编码中的声音序列。这些信息以声波的方式在空气中传播,传递到语音收听人的耳中,那么,语音感知的过程开始。2.2 语音信号的采集与读取语音信号的采集方式有多种,在本次项目中要求用麦克风和声卡采集一段语音信号。在实施项目的过程中,我们一共总结了三种采集声音信号的方式。一是利用windows自带的录音机,缺点是采样率是一个固定值,无法进行设置;二是利用Matlab语言进行声音的录制,缺点是要调用代码,调用函数才能获得语音信号,不够方便;三是利用录音笔进行声音信号的采集。考虑实际情况,我们选择通过利用录音笔设置采样率为48000Hz后进行声音信号的采集,其中,男生女生各录制一段内容相同的语音,长度约为10s。在声音信号采集完成后,进行了将声音信号读入matlab的步骤。在网上搜的资料基本上全是老版本的Matlab,于是保存的函数用的都是wavread,然而自从2013版本之后,通过参考帮助文档,发现这个函数就被换成了audioread(file),参数为待读取音频的路径。y,fs=audioread(file);这样,就将声音信号的信息转换为一个矩阵变量并把它赋给了y;将采样率(即之前设置好的48000)赋给了fs。实现了语音信号的采集与读取。2.3 对语音信号进行频谱分析频谱分析就是计算信号的频谱,包括幅度谱和相位谱。最初引入离散傅里叶变换(DFT)的目的就是为了使计算机能够帮助分析连续时间信号的频谱,然而,当N很大的时候,求一个N点的DFT要完成N*N次复数乘法和N(N-1)次复数加法,其计算量相当大,1965年库利和图基巧妙地利用了n因子的周期性和对称性,构造了一个DFT快速算法,即快速傅里叶变换(FFT),而快速傅里叶变换的出现使这种分析方法的实用价值更加突出。通过对FFT的简单了解,对语音信号的分析我们采用如下方案:使用plot函数画出已经导入到程序中的声音信号的时域波形,并对原始波形进行用FFT函数傅里叶变换后,再使用plot就可画出其频谱。频谱分析部分代码如下:y=y(:,1);%对声音信号提取单声道%=频域图像=n=0:length(y)-1; %建立一个信号等长的序列 time=n/fs; %建立时间序列,作为横坐标 subplot(2,1,1); %图1:时域波形图 plot(time,y); %作图title(音频信号波形图) %标题xlabel(时间/s); %标注横坐标ylabel(幅值); %标注纵坐标grid on; %打开网格线%=频域图像=N=length(y); %取信号矩阵的长度 Y1=fft(y,N); %N点傅里叶变换 mag=abs(Y1); %取模f=n*fs/N; %频率序列subplot(2,1,2); %图2:频谱图 %取1/2作图plot(f(1:fix(N/2),mag(1:fix(N/2); title(音频信号fft频谱图);%标题xlabel(频率/Hz); %标注横坐标 ylabel(幅度); %标注纵坐标 grid on; %打开网格线在程序运行结束后我们得到了这样的图像:女声:男声:实现了对语音信号进行频谱分析。2.4 分析男声和女生的差别2.4.1 男声和女声的差别在生活中我们感觉男生的声音雄浑低沉,女生的声音尖细清脆。男、女声在频率方面存在很大的差别:一是男、女声的基音频率有差别,男声的基音频率大致在100200HZ之间,而女声的基音频率则在200350HZ之间;二是男声低频成份比较多,女声高频成份比较多。2.4.2 定性地辨别男女声根据2.4.1的第二点我们可以通过考虑观察男女频谱函数中地频率成分进行判断。在我们的常识中,女生的声音比较尖,音调比较高,频率当然会高一点,男生的频率会低一些。由2.3中男声和女声的频域波形图,我们可以辨别出男声女声频谱中的细微不同:男声的低频部分的幅值较高,高频部分的偏低;而女声恰好相反,高频部分的幅值较高而低频部分的偏低。实现了定性的辨别男女声。通过观察语音信号的频谱图是可以辨别男女声的这种方法的缺点是:需要将两幅图进行比较并且人的主观判断会造成较高的错误率。2.4.3 定量地辨别男女声我们知道,一个波形可以由无数正弦波和余弦波叠加而成,有如下公式:可将以上公式变换为:那么,当n=0时我们可以得到一个特殊的波形,称为基波。声音也是一种波,也由无数正弦波和余弦波叠加而成,那么在声音信号中n=0的波就是该声音信号的基波,由此我们引出了基音的概念:基音,一般的声音都是由发音体发出的一系列频率、振幅各不相同的振动复合而成的。这些振动中有一个频率最低的振动,由它发出的音就是基音,其余为泛音。发音体整体振动产生的音(振动长度越大,频率越小),叫做基音,决定音高;发音体部分振动产生的音,叫做泛音,决定音色。女生的基音偏高而男生的基音偏低,因此,我们考虑利用基音频率进行男声女声的辨别。通过大量查阅网上的资料以及对多人声音的测试,我们决定将250Hz定为男女声音的分界点,基音频率小于250Hz的为男声,基音频率大于250的为女声。通过测试,这种方法准确度较高,但对于声音偏低沉的女声和声音比较高的男声仍然会出现识别错误的现象。实现提取基音频率并辨别男女声的代码如下:%=基音频率提取=,index=max(t);timewin=floor(0.015*fs);xwin=t(index-timewin:index+timewin);y,=xcov(xwin);ylen=length(y);halflen=(ylen+1)/2 +30;yy=y(halflen: ylen);,maxindex = max(yy);fmax=fs/(maxindex+30);disp(file,基音频率为 , num2str(fmax), Hz)%=通过基因频率判断男女声=if fmax250;disp(file, 是男声文件); elsedisp(file, 是女声文件); end;sound(t,fs);通过这种方式的测试出来的结果:女声的音频文件:E:REC003.mp3基音频率为327.4725Hz E:REC003.mp3是女声文件女声的音频文件:E:REC005.mp3基音频率为134.4538Hz E:REC005.mp3是男声文件通过以上两种方法,实现了分析男声和女生的差别。2.5验证抽样定理抽样定理的内容如下:一个频谱受限的信号f(t),如果频谱只占据-mm的范围,则信号f(t)可以用等间隔的抽样值惟一地表示。而抽样间隔必须不大于1/2 (其中m =2),或者说,最低抽样频率为2 。由于人的声音频率为300Hz3400Hz,根据奈奎斯特采样定理可知,采样频率必须要大于等于2倍的3400Hz,即6800Hz,向上取至8kHz,这是一个既可以保证信号抽样准确和恢复基本正确,又不会造成抽样太多,数据量过大的采样频率。要实现音频数据的降采样有多种方法,通过上网查询,我们采用了函数downsample(),它能够较好地模拟直接降采样的过程,降采样后的变化也更容易发现。首先通过降采样函数downsample降采样处理,参数分别为原信号y和降采样率的倍数。利用函数downsample()进行降采样后,矩阵的长度会大大变短,而在我们以后的频谱分析中,为了方便比较,我们需要相同长度的数据,所以就采用了interp()函数对降采样后的数据进行了插值处理,保证了信号的长度,然后采用了之前画出时域和频域图像部分以及男女声判别部分的代码,画出降采样的后数据的时域、频域图像和基音频率。我们在录制声音时选用的fs为48000Hz,对其进行6倍的降采样就是8000Hz。根据抽样定理,如果降采样倍数小于6,声音信号就是可以恢复的,如果降采样的倍数大于6,那么声音信号就会产生失真。我们将原信号、降6倍信号、降20倍信号的频谱图放在一起进行了对比,发现在频域图的主要频谱的部分,降6倍的与原信号的波形几乎没有差别,而降20倍的波形已经有了较为明显的失真。原信号 采样率48000Hz降6倍采样 采样率8000Hz降20倍采样 采样率2400Hz实现了对抽样定理的验证。 总结与心得3.1 总结本次三级项目我们主要进行了语音信号的采集,并对采集的语音信号进行时域和频域波形显示及仿真,然后对采集的语音信号进行降采样处理和男女声的区分。我们使用的是在Matlab中编写程序进行采样和波形显示以及降采样处理,对于男女声区分我们使用了两种方法:频谱观察法与基音频率法。通过多组音频信号的测试我们认为基音频率法的准确率和客观性比较高。在基音频率法中,我们发现男声的基频主要集中在小于250Hz这个范围内,女声基频主要集中在大于250Hz这个范围内。这个基频范围是我们根据一些样本得出的,样本数量较少,使得判别存在一定误差。声音信号的主要频率范围为200Hz3400Hz,根据抽样定理可得,采样频率应不小于8000Hz。3.2 心得本次三级项目中我们组分工明确,组内成员互帮互助,最终全部实现了该次项目的全部内容。在项目实施

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论