基于matlab语音信号的采集与分析.docx

上传人:b****5 文档编号:7577903 上传时间:2023-05-11 格式:DOCX 页数:23 大小:2.62MB
下载 相关 举报
基于matlab语音信号的采集与分析.docx_第1页
第1页 / 共23页
基于matlab语音信号的采集与分析.docx_第2页
第2页 / 共23页
基于matlab语音信号的采集与分析.docx_第3页
第3页 / 共23页
基于matlab语音信号的采集与分析.docx_第4页
第4页 / 共23页
基于matlab语音信号的采集与分析.docx_第5页
第5页 / 共23页
基于matlab语音信号的采集与分析.docx_第6页
第6页 / 共23页
基于matlab语音信号的采集与分析.docx_第7页
第7页 / 共23页
基于matlab语音信号的采集与分析.docx_第8页
第8页 / 共23页
基于matlab语音信号的采集与分析.docx_第9页
第9页 / 共23页
基于matlab语音信号的采集与分析.docx_第10页
第10页 / 共23页
基于matlab语音信号的采集与分析.docx_第11页
第11页 / 共23页
基于matlab语音信号的采集与分析.docx_第12页
第12页 / 共23页
基于matlab语音信号的采集与分析.docx_第13页
第13页 / 共23页
基于matlab语音信号的采集与分析.docx_第14页
第14页 / 共23页
基于matlab语音信号的采集与分析.docx_第15页
第15页 / 共23页
基于matlab语音信号的采集与分析.docx_第16页
第16页 / 共23页
基于matlab语音信号的采集与分析.docx_第17页
第17页 / 共23页
基于matlab语音信号的采集与分析.docx_第18页
第18页 / 共23页
基于matlab语音信号的采集与分析.docx_第19页
第19页 / 共23页
基于matlab语音信号的采集与分析.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于matlab语音信号的采集与分析.docx

《基于matlab语音信号的采集与分析.docx》由会员分享,可在线阅读,更多相关《基于matlab语音信号的采集与分析.docx(23页珍藏版)》请在冰点文库上搜索。

基于matlab语音信号的采集与分析.docx

基于matlab语音信号的采集与分析

 

毕业论文(设计)

题目:

基于matlab语音信号的采集与分析

姓名:

学院:

理学与信息科学学院

专业:

电子信息科学与技术

班级:

学号:

指导教师:

 

目录

摘要i

Abstract.ii

1绪论1

1.1选题的背景和意义1

1.2语音信号处理的进展2

2系统设计的可行性研究4

2.1语音信号处理的概念4

2.2语音信号的特点4

2.3语音信号处理的要求及可行性5

2.4Matlab仿真软件简介5

3系统设计7

3.1系统设计的理论依据7

3.2系统的详细设计9

3.2.1图形用户界面制作9

3.2.2系统功能的实现10

4系统调试及运行16

总结25

致谢27

参考文献:

28

基于matlab语音信号的采集与分析

电子信息科学与技术专业马晓敏

指导教师曹红波

摘要:

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。

语音信号处理的目的是得到某些参数以便高效传输或存储,或者是用于某种应用,如人工合成出语音、辨识出讲话者、识别出讲话内容、进行语音增强等[1]。

本文简要介绍了语音信号采集与分析的发展史以及语音信号的特征、采集与分析方法,并通过PC机录制一段声音,采集语音信号后,在MATLAB软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。

利用MATLAB来读入(采集)语音信号,将它赋值给某一向量。

再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。

然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

关键词:

语音信号;采集与分析;信号处理;Matlab

AudiosignalacquisitionandanalysisbasedonMatlab

StudentmajorinElectronicinformationscienceandtechnologyName:

Maxiaomin

TutorCaohongbo

Abstract:

VoicesignalprocessingisasubjectthatweusedigitssignalprocessingtodealwithAudiosignal.Thepurposeofthesignalprocessingistogetsomecertainparameterswhichistotransportorstoredefficiently,orisusedinsomeapplications,suchassynthesisthevoiceartificially,recognizethespeaker,identifythespeechcontent,processspeechenhancementandsoon.Thispaperintroducesthevoicesignalacquisitionandanalysisofthehistoryofthedevelopment,aswellasthecharacteristicsofspeechsignal,collectionandanalysismethods,RecordingavoicethroughthePCandafterthespeechsignalacquisition,WeprocessthespectrumanalysisinMATLABsoftwareplatformandaddnoiseinterferencetothespeechsignal,andthenprocesssignalspectrumanalysistothespeechsignaladdingnoise,designappropriatefiltersfilteroutnoisetorestoretheoriginalsignal.UsingMATLABtoread(acquisition)speechsignal,Itisassignedtoavector,Thenseethevectorasacommonsignal,andtransformtheirFFTtocarryoutspectrumanalysis,andthenitisfilteredbasedontheactualsituation.Wecanalsoplaybackonthespeechsignalthoughsoundcommandtofeelupthechangeofthevoice.

Keywords:

audiosignal;acquisitionandanalysis;signalprocessing;MATLAB

1绪论

1.1选题的背景和意义

语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。

语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

通过语言相互传递信息是人类最重要的基本功能之一。

让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息[2]。

通过语音传递倍息是人类最重要、最有效、最常用和最方便的交换信息的形式。

语言是人类持有的功能.声音是人类常用的工具,是相互传递信息的最主要的手段。

因此,语音信号是人们构成思想疏通和感情交流的最主要的途径。

并且,由于语言和语音与人的智力活动密切相关,与社会文化和进步紧密相连,所以它具有最大的信息容量和最高的智能水平[3]。

现在,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。

让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。

随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输人这样便于使用的、自然的、人性化的输人方式。

作为高科鼓应用领域的研究热点,语音信号采集与分析从理论的研究到产品的开发已经走过了几十个春秋并且取得了长足的进步。

它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理.工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。

可见,语音信号采集与分析的研究将是一项极具市场价值和挑战性的工作。

我们今天进行这一领域的研究与开拓就是要让语音信号处理技术走

进人们的日常生活当中,并不断朝更高目标而努力[4]。

语音信号采集与分析之所以能够那样长期地、深深地吸引广大科学工作者去不断地对其进行研究和探讨,除了它的实用性之外,另一个重要原因是,它始终与当时信息科学中最活跃的前沿学科保持密切的联系.并且一起发展。

语音信号采集与分析是以语音语言学和数字信号处理为基础而形成的一门涉及面很广的综合性学科,与心理、生理学、计算机科学、通信与信息科学以及模式识别和人工智能等学科都有着非常密切的关系。

对语音信号采集与分析的研究一直是数字信号处理技术发展的重要推动力量。

因为许多处理的新方法的提出,首先是在语音信号处理中获得成功,然后再推广到其他领域。

1.2语音信号处理的进展

语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。

60年代之前的发展主要有:

1876年Bell发明电话,1939年H.Dudley研制成功第一个声码器,1942年Bell实验室发明了语谱仪,1948年美国Haskin实验室研制成功“语图回放机”,1952年Bell实验室研制成能识别十个英语数字的识别器。

60年代以后,随着计算机技术的发展,语音信号处理技术获得了长足的进步,计算机模拟实验取代了硬件研制的传统做法。

各种突破性的思想不断涌现。

20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础,主要的有Martin等人为邮局研制了邮政编码阅读机。

随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:

进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。

近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中[5]。

2系统设计的可行性研究

2.1语音信号处理的概念

语音信号处理简称语音处理,是以语音学和数字信号处理为基础而形成的一门综合性学科,处理的目的是要得到一些语音参数以便高效的传输或存储,或者通过处理的某种运算以达到某种用途的要求,例如人工合成出语音,辨识出说话者,识别讲话的内容等。

它包括语音编码、语音合成、语音识别和说话人识别四大分支[6]。

语音是人类发音器官发出的、具有一定意义的、能起社会交际作用的声音,能够代表一定的意义,这是语言的声音同自然界其他一切声音的本质区别。

人体外的声音自不必说(如钟声、风声、动物叫声、机器声),就是人的发音器官发出的声音,也并非都是语言,如打喷嚏、打嗝儿、打哈欠、咳嗽等等,虽然也传递出了某种信息─病了,饱了,困了或是醒了,但声音的发出不是为了交际,而是人体本能的生理反映;又如吹口哨、口技演员的表演、哭、笑等等,这些声音的发出是有目的的,是一定的心理活动的表现,不是单纯的生理现象,但声音同意义之间没有固定的结合关系,不能成为代表意义的声音符号,只能表示情绪,展示技巧。

以上这些声音都不是语言[7]。

语言的声音同它所代表的意义是相互依存的统一体,一方面,发音器官发出的声音必须同意义紧密结合、成为一定意义的代表,才能成为语音;另一方面,意义必须借助声音才能成为可被人感知、被人接受的东西,没有声音,意义便无法表达出来。

2.2语音信号的特点

通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点:

(1)在频域内,语音信号的频谱分量主要集中在300~3400Hz的范围内。

利用这个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出,然后按8kHz的采样率对语音信号进行采样,就可以得到离散的语音信号。

(2)在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。

在浊音段表现出周期信号的特征,在清音段表现出随机噪声的特征[8]。

2.3语音信号处理的要求及可行性

本文简要介绍了语音信号采集与分析的发展史以及语音信号的特征、采集与分析方法,并通过PC机录制一段声音,采集语音信号后,在MATLAB软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。

利用MATLAB来读入(采集)语音信号,将它赋值给某一向量。

再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。

然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

运用Matlab进行仿真分析,最后加入噪声进行滤波处理,比较滤波前后的变化。

对语音信号进行研究,是一项极具市场价值和挑战性的工作,但在目前阶段,我们只能基于matlab进行分析仿真,经调试和分析,系统是可行的。

2.4Matlab仿真软件简介

MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用[9]。

图形用户界面或图形用户接口(GraphicalUserInterface,GUI)是指采用图形方式显示的计算机操作环境用户接口。

与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。

GUIDE是Matlab提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。

MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。

3系统设计

3.1系统设计的理论依据

⑴采样定理

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:

fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。

1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式:

理想低通信道的最高大码元传输速率=2W*log2N(其中W是理想低通信道的带宽,N是电平强度)

⑵采样频率

采样频率(也称为采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。

采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。

采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。

采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。

这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。

⑶语音的录入与打开

在MATLAB中,[y,fs,bits]=wavread('Blip',[N1N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。

[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)[10]。

sound(x,fs,bits);用于对声音的回放。

向量x则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。

⑷时域信号的FFT分析

FFT即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的[11]。

在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。

函数FFT用于序列快速傅立叶变换,其调用格式为y=fft(x),其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT且和x相同长度;若x为一矩阵,则y是对矩阵的每一列向量进行FFT。

如果x长度是2的幂次方,函数fft执行高速基-2FFT算法,否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。

函数FFT的另一种调用格式为y=fft(x,N),式中,x,y意义同前,N为正整数。

函数执行N点的FFT,若x为向量且长度小于N,则函数将x补零至长度N;若向量x的长度大于N,则函数截短x使之长度为N;若x为矩阵,按相同方法对x进行处理。

⑸语音信号的频域分析

语音信号的频域分析就是分析语音信号的频域持征。

从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线件预测法等几种。

本文介绍的是语音信号的傅里叶分析法。

因为语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱”。

⑹数字滤波器设计原理

数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。

在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。

数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。

⑺数字滤波器的设计步骤

不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:

①按照实际任务的要求,确定滤波器的性能指标。

②用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。

根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。

③利用有限精度算法实现系统函数,包括结构选择、字长选择等。

⑻IIR滤波器与FIR滤波器的性能比较

FIR:

FiniteImpulseresponse,有限冲击响应

IIR:

InfiniteImpulseresponse,无限冲击响应

从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。

但是这个高效率是以相位的非线性为代价的。

选择性越好,则相位非线性越严重。

相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性[12]。

3.2系统的详细设计

3.2.1图形用户界面制作

MATLAB中图形用户界面的制作有两种方法:

M文件和GUIDE,本设计采用GUIDE的方法制作GUI。

⑴新建一个空白GUI模板:

进入MATLAB程序界面以后执行File→New→GUI过程,即可进入。

⑵选择空白模板选项条,单击OK,一个空白GUI模板生成

⑶拖拉白色框的右下角调整界面大小,现在就可以开始设计GUI功能界面了。

从左边控件框选择所需要的控件放置在GUI面板中,然后对各个控件进行编辑,包括位置、大小、颜色、名称以及编写回调函数等。

本设计主要用到坐标系和按钮,现分别介绍。

①按钮设计:

按钮键又称命令按钮或按钮,是小的长方形屏幕对象,常常在对象本身标有文本。

将鼠标指针移至对象,单击鼠标按钮执行由回调字符串所定义的动作。

单击空间框左侧的PushButton按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置。

现在开始编写回调函数,确定按钮功能。

在按钮上单击鼠标右键,选择view-callbacks→callback即可在M文件中找到该按钮的回调函数位置。

然后编写功能函数,本设计中该按钮的功能是绘制原始波形,那么只需要读取语音信号并画出波形。

②坐标系设计:

坐标轴对象是许多图形对象的父对象,每一个可视化显示用户数据的图形窗口都包含一个或多个坐标轴对象。

坐标轴对象确定了图形窗口的坐标系统,所有绘图函数都会使用当前坐标轴对象或创建一个新的坐标轴对象,用于确定其绘图数据点在图形中的位置。

单击空间框左侧的Axes按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置。

本次课程设计的最终图形用户界面如图3-1所示。

图3-1图形用户界面总体图

3.2.2系统功能的实现

⑴信号的打开

在“打开信号”按钮上单击鼠标右键,选择view-callbacks→callback,在M文件中找到该按钮的回调函数位置,然后编写功能函数。

功能函数如下。

globalI;globalX;%定义全局变量

globalmagX;globalangX;

H={'*.wav'};%定义打开信号的格式

[filename,pathname]=uigetfile(H,'请选择打开文件');

file=strcat(pathname,filename);%文件的路径和文件名

I=wavread(file);%打开文件

X=fft(I,4096);

magX=abs(X);angX=angle(X);%取变换后的幅值和角度

plot(I);title('原始信号波形');%显示信号波形

⑵声音的播放

在“声音播放”按钮上单击鼠标右键,选择view-callbacks→callback,在M文件中找到该按钮的回调函数位置,然后编写功能函数。

功能函数如下。

globalI;

sound(I);%播放声音信号

执行此程序,系统会播放xinhao.wav的声音。

⑶信号幅度、频谱和相位波形的显示

在“幅度”按钮上单击鼠标右键,选择view-callbacks→callback,在M文件中找到该按钮的回调函数位置,然后编写功能函数。

功能函数如下。

globalI;globalX;

globalmagX;globalangX;%定义全局变量

X=fft(I,4096);

magX=abs(X);angX=angle(X);%取变换后的幅值和角度

plot(magX);title('原始信号幅值');%显示信号幅度波形

信号频谱波形和相位波形的显示程序和信号幅度波形的显示程序类似,只需修改最后一行,分别改为plot(X);title('原始信号频谱')和plot(angX);title('原始信号相位')即可。

⑷信号的定点分析

在“定点分析”按钮上单击鼠标右键,选择view-callbacks→callback,在M文件中找到该按钮的回

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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