毕业论文基于Matlab的语音信号处理.docx

上传人:b****6 文档编号:15298150 上传时间:2023-07-03 格式:DOCX 页数:25 大小:394.59KB
下载 相关 举报
毕业论文基于Matlab的语音信号处理.docx_第1页
第1页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第2页
第2页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第3页
第3页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第4页
第4页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第5页
第5页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第6页
第6页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第7页
第7页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第8页
第8页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第9页
第9页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第10页
第10页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第11页
第11页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第12页
第12页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第13页
第13页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第14页
第14页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第15页
第15页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第16页
第16页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第17页
第17页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第18页
第18页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第19页
第19页 / 共25页
毕业论文基于Matlab的语音信号处理.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业论文基于Matlab的语音信号处理.docx

《毕业论文基于Matlab的语音信号处理.docx》由会员分享,可在线阅读,更多相关《毕业论文基于Matlab的语音信号处理.docx(25页珍藏版)》请在冰点文库上搜索。

毕业论文基于Matlab的语音信号处理.docx

毕业论文基于Matlab的语音信号处理

 

毕业论文

 

语音信号分析与处理系统设计

 

学生国振学号4

指导教师王敏

系(中心)信息工程系

专业电子信息工程年级2006级

论文答辩日期2010年5月20日

 

中国海洋大学青岛学院

语音信号分析与处理系统设计

 

完成日期:

指导教师签字:

答辩小组成员签字:

 

语音信号分析与处理系统设计

摘要

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

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

Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以与各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以与信号的可视化,使人机交互更加便捷。

信号处理是Matlab重要应用的领域之一。

本设计针对现在大部分语音处理软件容繁多、操作不便等问题,采用MATLAB7.0综合运用GUI界面设计、各种函数调用等来实现语音信号的变频、变幅、傅里叶变换与滤波,程序界面简练,操作简便,具有一定的实际应用意义。

最后,本文对语音信号处理的进一步发展方向提出了自己的看法。

关键字:

Matlab;语音信号;傅里叶变换;信号处理;

 

TheDesignofAnalysisandProcessingVoiceSignal

Abstract

Speechsignalprocessingistostudytheuseofdigitalsignalprocessingtechnologyandknowledgeofthevoicesignalvoiceprocessingoftheemergingdisciplineisthefastestgrowingareasofinformationscienceoneofthecoretechnology.Transmissionofinformationthroughthevoiceofhumanity'smostimportant,mosteffective,mostpopularandmostconvenientformofexchangeofinformation..

Matlablanguageisadataanalysisandprocessingfunctionsareverypowerfulcomputerapplicationsoftware,soundfileswhichcanbetransformedintodiscretedatafiles,thenuseitspowerfulabilitytoprocessthedatamatrixoperations,suchasdigitalfiltering,Fouriertransform,whendomainandfrequencydomainanalysis,soundplaybackandavarietyofmaprendering,andsoon.Itssignalprocessingandanalysistoolkitforvoicesignalanalysisprovidesaveryrichfeaturefunction,useofthesefunctionscanbequickandconvenientfeaturescompletevoicesignalprocessingandanalysisandvisualizationofsignals,makescomputerinteractionmoreconvenient.MatlabSignalProcessingisoneoftheimportantareasofapplication.

Thedesignofvoice-processingsoftwareformostofthecontentarenumerous,easytomaneuverandsoon,usingMATLAB7.0comprehensiveuseGUIinterfacedesign,variousfunctioncallstovoicesignalssuchasfrequency,amplitude,Fouriertransformandfiltering,theprograminterfaceconcise,simple,hassomesignificanceinpractice.

Finally,thespeechsignalprocessingfurtherdevelopmentputforwardtheirownviews.

Keywords:

Matlab,VoiceSignal,Fouriertransform,SignalProcessing

 

 

 

1绪论

语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。

随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。

1.1课题背景与意义

语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。

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

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

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

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉与面很广的交叉学科。

1.2国外研究现状

20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。

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

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

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

1.3本课题的研究容和方法

1.3.1研究容

本论文主要介绍的是的语音信号的简单处理。

本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.0环境下综合运用信号提取,幅频变换以与傅里叶变换、滤波等技术来进行语音信号处理。

我所做的工作就是在matlab7.0软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单的语音信号处理的目的。

1.3.2运行环境

运行环境主要介绍了硬件环境和软件环境。

硬件环境:

①处理器:

InterPentium166MX或更高

②存:

512MB或更高

③硬盘空间:

40GB或更高

④显卡:

SVGA显示适配器

软件环境:

操作系统:

Window98/ME/2000/XP

1.3.3开发环境

开发环境主要介绍了本系统采用的操作系统、开发语言。

(1)操作系统:

WindowsXP

(2)开发环境:

Matlab7.0

 

2语音信号处理的总体方案

2.1系统基本概述

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

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

GUI的广泛应用是当今计算机发展的重大成就之一,他极方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。

2.2系统基本要求

本文是用Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析,在MATLAB应用软件下设计一个简单易用的图形用户界面(GUI),来解决一般应用条件下的各种语音信号的处理。

2.3系统框架与实现

1)语音信号的采集

使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。

2)语音信号的处理

语音信号的处理主要包括信号的提取、信号的调整、信号的变换和滤波等。

Ⅰ.语音信号的时域分析

语音信号是一种非平稳的时变信号,它携带着各种信息。

在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。

语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。

语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。

1提取:

通过图形用户界面上的菜单功能按键采集电脑设备上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。

2调整:

在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。

Ⅱ.语音信号的频域分析

信号的傅立叶表示在信号的分析与处理中起着重要的作用。

因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。

另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。

由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。

输出频谱是声道系统频率响应与激励源频谱的乘积。

声道系统的频率响应与激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期与平稳随机信号的表示,但不能直接用于语音信号。

由于语音信号可以认为在短时间,近似不变,因而可以采用短时分析法。

①变换:

在用户图形界面下对采集的语音信号进行Fourier等变换,并画出变换前后的频谱图和变换后的倒谱图。

2滤波:

滤除语音信号中的噪音部分,可采用低通滤波、高通滤波、带通滤波和帯阻滤波,并比较各种滤波后的效果。

3)语音信号的效果显示

通过用户图形界面的输出功能,将处理后的信号的语音进行播放,试听处理后的效果。

2.4系统初步流程图

图2.1列出了整个语音信号处理系统的工作流程:

 

图2.1语音信号处理系统的工作流程

其号调整包括信号的幅度和频率的任意倍数变化。

如下图2.2

 

图2.2信号调整

信号的滤波采用了四种滤波方式,来观察各种滤波性能的优缺点:

 

图2.3语音信号滤波的方式

在以上三图中,可以看到整个语音信号处理系统的流程大概分为三步,首先要读入待处理的语音信号,然后进行语音信号的处理,包括信息的提取、幅度和频率的变换以与语音信号的傅里叶变换、滤波等;滤波又包括低通滤波、高通滤波、带通滤波和带阻滤波等方式。

最后对处理过的语音信号进行处理后的效果显示。

以上是本系统的工作流程,本文将从语音信号的采集开始做详细介绍。

 

3语音信号处理基本知识

3.1语音的录入与打开

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

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

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

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

3.2采样位数和采样频率

采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。

采样频率是指录音设备在一秒钟对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。

采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。

无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度围。

每增加一个采样位数相当于力度围增加了6dB。

采样位数越多则捕捉到的信号越精确。

对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。

显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。

3.3时域信号的FFT分析

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

在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进行处理。

3.4数字滤波器设计原理

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

数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。

数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。

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

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

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

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

整体来看,IIR滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大。

3.5倒谱的概念

●定义:

倒谱定义为信号短时振幅谱的对数傅里叶反变换。

●特点:

具有可近似地分离并能提取出频谱包络信息和细微结构信息的特点

●用途:

①提取声道特征信息:

提取频谱包络特征,以此作为描述音韵的特征参数而应用于语音识别。

②提取音源信息:

提取基音特征,以此作为描述音韵特征的辅助参数而应用于语音识别。

●求法:

A:

短时信号;B:

短时频谱;C:

对数频谱;D:

倒谱系数;E:

对数频谱包络;

F:

基本周期

4语音信号处理实例分析

4.1图形用户界面设计

在MATLAB主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示图形用户界面的设计模板。

MATLAB为GUI设计一共准备了4种模板,分别是BlankGUI(默认)、GUIwithUicontrols(带控件对象的GUI模板)、GUIwithAxesandMenu(带坐标轴与菜单的GUI模板)与ModalQuestionDialog(带模式问话对话框的GUI模板)。

设计语音信号处理系统的用户图形操作界面(GUI)SoundProcess,其中菜单主要包括File、Process和Output三大主要部分,其中File菜单包括输入(Input)、保存(Save)和退出(Quit)等功能;Process菜单主要包括提取(Extract)、调整(Extract)、变换(Transform)和滤波(Filter)菜单,其中调整(Extract)包括幅度调整(Range)和频率调整(Frequency),滤波(Filter)菜单包含低通滤波(LowpassFilter)、高通滤波(HighpassFilter)、带通滤波(BandpassFilter)和帯阻滤波(BandstopFilter)等功能菜单。

4.2信号的采集

该系统是以一段简短的的语音信号做为分析样本,通过计算机系统将一段“主人,信息收到了”的语音信号保存到到计算机中,并且保存格式为“*.wav”。

4.3语音信号的处理设计

4.3.1语音信号的提取

在Matlab中使用Wavread函数,可得出信号的采样频率为22500,并且声音是单声道的。

利用Sound函数可以清晰的听到“主人,信息收到了”的语音。

采集数据并画出波形图。

其中声音的采样频率Fs=22050Hz,y为采样数据,NBITS表示量化阶数。

部分程序如下:

fn=input('EnterWAVfilename:

','s');%获取一个*.wav的文件

[x,fs,nb]=wavread(fn);

ms2=floor(fs*0.002);

ms10=floor(fs*0.01);

ms20=floor(fs*0.02);

ms30=floor(fs*0.03);

t=(0:

length(x)-1)/fs;%计算样本时刻

subplot(2,1,1);%确定显示位置

plot(t,x);%画波形图

legend('Waveform');

xlabel('Time(s)');

ylabel('Amplitude');

运行后弹出语音信号处理系统的操作界面如图4.1:

图4.1语音信号处理系统的操作界面

然后点击File菜单中的子菜单Input,回到Matlab软件的输入界面如图4.2:

图4.2输入界面

输入要处理的语音信号的名称,便可得到语音语音的波形图如图4.3:

 

图4.3语音语音的波形图

如图中提取的语音的波形图所示,整段音频数据中得声音高低起伏与录入的声音信号基本一致,并且可以观察到其中包含部分高频噪声。

4.3.2语音信号的调整

在语音信号的研究中,经常会对语音信号进行进行多倍频率以与多倍幅度变换调整,日常应用中,这种变换调整也经常要用到。

所以在设计中也添加了这种功能,并能够观察调整后的信号的波形图得变化,而且能通过语音处理界面的输出功能试听处理后的语音信号。

4.3.2.1语音信号的频率调整

在设计中,可以将语音信号的采样频率提高或降低,来实现语音信号的调整,得到理想的语音信号。

例如将采样频率提高一倍,即可得到语音信号频率为原频率2倍新的语音信号。

运行ProcessAdjustFrequency,得到如图4.4的信号波形图,并试听调整后的效果。

图4.4频率调整后波形图

与原语音信号相比,经过调整后的信号周期变为原来的1/2,此时的语速明显变快,即实现了信号的2倍频功能。

4.3.2.2语音信号的振幅调整

在设计中,可以将语音信号的幅度进行提高或降低操作,来实现语音信号的调整,得到声音音量大小不同的语音信号,例如将原语音信号的幅度提高一倍,得到如下图4.5的信号波形图,可以通过GUI操作界面的输出功能试听调整后的效果。

图4.5幅度调整后波形图

此时听到的调整后声音声调变高,但不是很明显,可以将幅度的变化值设置的比较大,那样的话就可以得到效果相当明显的语音信号了。

4.3.3语音信号的傅里叶变换

倒谱分析是指信号短时振幅谱的对数进行傅里叶反变换。

它具有可近似地分离并提取出频谱包络信息和细微结构信息的特点。

对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图,并进行倒谱分析,得到倒谱图。

傅里叶变换的部分程序如下:

x=y(44101:

55050,1);%提取原语音信号的一部分

t=(0:

length(x)-1)/fs;%计算样本时刻

subplot(3,1,1);%确定显示位置

plot(t,x);%画波形图

legend('波形图');

xlabel('Time(s)');

ylabel('Amplitude');

Y=fft(x,hamming(length(x)));%做加窗傅里叶变换

fm=5000*length(Y)/fs;%限定频率围

f=(0:

fm)*fs/length(Y);%确定频率刻度

subplot(3,1,2);

plot(f,20*log10(abs(Y(1:

length(f)))+eps));

legend('频谱图');%画频谱图

ylabel('幅度(db)');

xlabel('频率(Hz)');

c=fft(log(abs(x)+eps));%倒频谱计算

ms1=fs/1000;

ms20=fs/50

q=(ms1:

ms20)/fs;%确定倒频刻度

subplot(3,1,3);

plot(q,abs(c(ms1:

ms20)));%画倒谱图

legend('倒谱图');

xlabel('倒频(s)');

ylabel('倒频谱幅度(Hz)');

运行ProcessTransform,对语音信号的一部分进行傅里叶变换,并进行倒谱分析,得到如图4.6

图4.6声音样本波形图、频谱图和倒谱图

从上面的倒谱图可以看出.当读“主人,信息收到了”时,所对应的频率大概在200Hz左右。

这与人的语音信号频率集中在200Hz到4.5kHz之间是相一致的。

而在未发声的时间段,相对的小高频部分(200500Hz)应该属于背景噪声。

4.3.4语音信号的滤波

从图4.4中发现,语音信号中包含背景噪声,这些噪声的频率一般较高。

所以可以利用MATLAB软件中的滤波器进行滤波处理,得到较为理想的语音信号。

4.3.4.1语音信号的低通滤波

系统中设计了一个截止频率为2

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

当前位置:首页 > 人文社科 > 法律资料

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

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