基于MATLAB的语音信号采集与处理.docx
- 文档编号:11550496
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:14
- 大小:185.79KB
基于MATLAB的语音信号采集与处理.docx
《基于MATLAB的语音信号采集与处理.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的语音信号采集与处理.docx(14页珍藏版)》请在冰豆网上搜索。
基于MATLAB的语音信号采集与处理
工程设计论文
题目:
基于MATLAB的语音信号采集与处理
姓名:
班级:
学号:
指导老师:
一.选题背景
1、实践意义:
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在于方便有效地提取并表示语音信号所携带的信息。
所以理解并掌握语音信号的时域和频域特性是非常重要的。
通过语音相互传递信息是人类最重要的基本功能之一.语言是人类特有的功能.声音是人类常用工具,是相互传递信息的最重要的手段.虽然,人可以通过多种手段获得外界信息,但最重要,最精细的信息源只有语言,图像和文字三种.与用声音传递信息相比,显然用视觉和文字相互传递信息,其效果要差得多.这是因为语音中除包含实际发音内容的话言信息外,还包括发音者是谁及喜怒哀乐等各种信息.所以,语音是人类最重要,最有效,最常用和最方便的交换信息的形式.另一方面,语言和语音与人的智力活动密切相关,与文化和社会的进步紧密相连,它具有最大的信息容量和最高的智能水平。
语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,处理的目的是用于得到某些参数以便高效传输或存储;或者是用于某种应用,如人工合成出语音,辨识出讲话者,识别出讲话内容,进行语音增强等.
语音信号处理是一门新兴的学科,同时又是综合性的多学科领域,是一门涉及面很广的交叉学科.虽然从事达一领域研究的人员主要来自信息处理及计算机等学科.但是它与语音学,语言学,声学,认知科学,生理学,心理学及数理统计等许多学科也有非常密切的联系. 语音信号处理是许多信息领域应用的核心技术之一,是目前发展最为迅速的信息科学研究领域中的一个.语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,巳处于迅速发展之中;其研究成果具有重要的学术及应用价值.
数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。
它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。
具有灵活、精确、抗干扰强、度快等优点。
数字滤波器,是数字信号处理中及其重要的一部分。
随着信息时代和数字技术的发展,受到人们越来越多的重视。
数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。
数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。
FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H(z)在处收敛,极点全部在z=0处(因果系统),因而只能用较高的阶数达到高的选择性。
FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。
FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。
FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐[1]。
IIR滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯滤波器等。
2、语音信号在国内外研究现状
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
60年代之前的发展主要有:
1876年Bell发明电话,1939年H.Dudley研制成功第一个声码器,1942年Bell实验室发明了语谱仪,1948年美国Haskin实验室研制成功“语图回放机”,1952年Bell实验室研制成能识别十个英语数字的识别器。
60年代以后,随着计算机技术的发展,语音信号处理技术获得了长足的进步,计算机模拟实验取代了硬件研制的传统做法。
各种突破性的思想不断涌现。
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础,主要的有Martin等人为邮局研制了邮政编码阅读机。
随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:
进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;
20世纪80年代,由于矢量量化,隐马尔可夫模型和人工神经网络(ANN)的研究取得了迅速发展,并相继被应用与语音信号处理,经过不断的改进与完善,使得语音信号处理技术产生了突破型的进展。
进入20世纪90年代以来,语音信号的采集与分析在实用化这一方面取得了很多的实质性的进展。
语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。
3、软件支持:
MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
它是一种科学计算软件,专门以矩阵的形式处理数据。
MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。
MATLAB软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。
其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。
该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。
目前,Mathworks公司已推出30多个应用工具箱。
MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。
MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。
由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。
例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。
MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。
数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
二、实践原理
1、采样定理:
在进行模拟与数字信号的转换过程中,当采样大于最高频率的2倍时,则采样之后的数字信号完整的保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。
2、采样频率:
采样频率是指计算机每秒钟采样多少个声音样本,是描述声音文件的音质、音频、衡量声卡、声音文件的质量标准。
采样频率越高,即采样的时间间隔越短,则在单位时间内计算机得到的声音样本数据越多,对声音波形的表示也越准确。
3、采样位数与采样频率:
采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。
采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
采样位数和采样率对于音频接口来说是最为重要的两个指标。
无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。
采样位数越多则捕捉到的信号越精确。
4、仿真原理
利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
语音信号的“短时谱”对于非平稳信号,它是非周期的,频谱随时间连续变化,因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。
如果利用加窗的方法从语音流中取出其中一个短断,再进行傅里叶变换,就可以得到该语音的短时谱。
MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。
由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。
例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。
MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。
数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础[3]。
滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。
随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。
它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。
利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计巴特沃斯滤波器,并对被噪声污染的语音信号进行滤波,对滤波前后信号进行时域分析。
5、相关的信号知识:
傅里叶变换在信号处理中具有十分重要的作用,它通常能使信号的某些特性变得很明显,而在原始信号中这些特性可能含糊不清或至少不明显.在语音信号处理中,傅里叶表示在传统上一直起主要作用.其原因一方面在于稳态语音的生成模型由线性系统组成,此系统被一随时间作周期变化或随机变化的源所激励.因而系统输出频谱反映了激励与声道频率响应特性.另一方面,语音信号的频谱具有非常明显的语音声学意义,可以获得某些重要的语音特征(如共振峰频率和带宽等)
根据语音信号的产生模型,可以将其用一个线性非时变系统的输出表示,即看作是声门激励信号和声道冲激响应的卷积.在语音信号数字处理所涉及的各个领域中,根据语音信号求解声门激励和声道响应具有非常重要的意义.例如,为了求得语音信号的共振蜂就要知道声道传递函数(共振峰就是声道传递函数的各对复共轭极点的频率).又如,为了判断语音信号是清音还是浊音以及求得浊音情况下的基音频率,就应知道声门激励序列.在实现各种语音编码,合成,识别以及说话人识别时无不需要由语音信号来求得声门激励序列和声道冲激响应.
三、具体流程
利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
语音信号的滤波示意图:
四、具体分工与实践步骤
此课题主要分为两部分:
加噪与消噪,我做的是消噪部分,实践步骤如下:
1、语音信号的采集与分析
(1)利用 PC机上的声卡和 WINDOWS操作系统可以进行数字信号的采集。
将话筒插入计算机的语音输入插口上,启动录音机。
按下录音按钮,对话筒念一段课文,说完后停止录音。
(2)以文件名 “录音” 保存入C盘中。
可以看到 ,文件存储器的后缀默认为.wav。
要保存文件时,利用了计算机上的A/D转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过D/A转换器,把保存的数字数据恢复为原来的模拟的声音信号。
之后将该语音文件放入MATLAB文件夹中。
3)在 Matlab软件平台下可以利用函数audioread对语音信号进行采样,得到了声音数据变量name,[name,fs0]=audioread('luyin.m4a',[100,namex]);同时把name的采样频率fs0和数据放进了MATALB的工作空间,同时用fft(name)函数绘制原始语音信号的频率响应图。
图figure 1为原始语音信号的时域图形和频域图形。
2、利用余弦函数构造一个高频噪声
在Matlab中人为设计一固定频率1500Hz的噪声干扰信号。
噪声信号通常为随机序列,在本设计中用余弦序列代替。
干扰信号构建命令函数为
noise=0.05*sin(2*pi*f0*t);
Noise=zeros(N,2);
Noise(:
1)=noise';
Noise(:
2)=noise';
Y=name+Noise;
若带噪信号y(m)是纯净语音信号s(m)和平稳加性高斯白噪声n(m)构成的,即:
y(m) =x(m) +n(m);则在频域中表示为Y(ω)=X(ω)+N(ω);其中Y(ω),X(ω),N(ω)分别是y(m),x(m),n(m)的傅里叶变换。
X(ω)=Y(ω)-N(ω);只要从带噪信号中减去噪声信号即可估计出语音信号,再进行傅里叶反变换就可得到增强的语音。
3、设计滤波器对加噪语音滤波
计算滤波器的性能指标,设计滤波器,用自己设计的滤波器对采集的信号进行滤波,得出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化,并回放语音信号,感觉滤波前后的声音有变化。
五、程序设计及仿真图
源程序:
clear all
clc
namex=4e5;
[name,fs0]=audioread('luyin.m4a',[100,namex]);
N=length(name);
figure
(1)
subplot(1,2,1);
x=[0:
N-1]/fs0;
plot(x,abs(name));
title('原始音频信号时域')
subplot(1,2,2);
x=[0:
(N-1)]*fs0/N;
plot(x,abs(fft(name)));
title('原始音频信号频域')
sound(name,fs0)
t=0:
(1/fs0):
(N-1)/fs0;
f0=1.5e4;
noise=0.05*sin(2*pi*f0*t);
Noise=zeros(N,2);
Noise(:
1)=noise';
Noise(:
2)=noise';
Y=name+Noise;
Yf=fft(Y);
figure
(2)
subplot(1,2,1);
x=[0:
N-1]/fs0;
plot(x,abs(Y));
title('混杂音频信号时域')
subplot(1,2,2);
x=[0:
(N-1)]*fs0/N;
plot(x,abs(Yf));
title('混杂音频信号频域')
sound(Y,fs0);
%设计滤波器?
取N=30;截止频率为1.4248。
n=0:
29;
hd=sin(1.4248*(n-29/2))./(pi*(n-29/2));
figure(3)
subplot(1,2,1)
plot(abs(hd));
title('滤波器时域')
x=fs0/10000*[0:
(10000-1)];
hdf=fft(hd,10000);
subplot(1,2,2)
plot(x,db(abs(hdf)))
title('滤波器频域')
YA=filter(hd,1,Y);
sound(YA,fs0)
N=length(YA);
figure(4)
%plot(x,abs(fft(YA)));
subplot(1,2,1);
x=[0:
N-1]/fs0;
plot(x,abs(YA));
title('滤波后音频信号时域')
subplot(1,2,2);
x=[0:
(N-1)]*fs0/N;
plot(x,abs(fft(YA)));
title('滤波后音频信号频域')
程序运行结果:
六、心得体会
通过这一个星期的工程设计,我学到了很多的东西,不仅巩固了我以前所学过的知识, 还让我学到很多在书本上所没有学到过的知识。
同时进一步加深了对语音信号的了解和熟练了对Matlab的使用, 让我对数字信号处理这门课程有了更加浓厚的兴趣。
因为以前都是基于课本上所学的理论知识,然而通过这次课程设计之后才能真正理解其意义。
在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。
虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
在没有做课程设计以前,觉得工程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。
在这次工程设计的过程中,我遇到不少的问题,比如刚开始要画频谱图时,不知道其频率轴应该怎么表示,经过进一步对课本的学习之后,才明白它是怎样的变换关系。
只有把所学的理论知识与实践相结合起来,才能更好的理解理论。
总的来说,通过这次的工程设计我对语音信号有了全面的认识,对Matlab的知识又有了深刻的理解, 让我感受到只有在充分理解课本 知识的前提下,才能更好的应用这个工具。
而熟练的掌握这门工具也是我们必不可少的技能。
在工程设计过程中,我们不断发现错误,不断改正,不断领悟,本身就是在践行“过而能改,善莫大焉”的知行观。
这次工程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
工程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感触很深。
使我对抽象的理论有了具体的认识。
我认为,在这学期的设计中,不仅培养了独立思考的能力,在各种其它能力上也都有了提高。
更重要的是,在课上,我们学会了与人合作。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在课程结束之后变的更加成熟,会面对需要面对的事情。
回顾起此工程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。
果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
参考文献
[1]周利清,苏菲.数字信号处理基础.北京:
北京邮电大学出版社,2005
[2]姚东.MATLAB及在电子信息课程中的应用[M].第二版.北京:
北京电子工业出版社,2000
[3]高西全,丁玉美.数字信号处理.第3版.北京:
西安电子科技大学出版社,2008
[4]肖伟、刘忠.MATLAB程序设计与应用[M].北京:
清华大学出版社2005
[5]张智星.MATLAB程序设计与应用.北京:
清华大学出版社,2002
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 语音 信号 采集 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)