基于MATLAB的语音信号的处理_第1页
基于MATLAB的语音信号的处理_第2页
基于MATLAB的语音信号的处理_第3页
基于MATLAB的语音信号的处理_第4页
基于MATLAB的语音信号的处理_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、精品文档第一章语音信号的特点与采集第一节语音信号采集的介绍在 Matlab 环境中 , 主要可以通过以下几种方法驱动声卡,采集语音信号 :1将声卡作为对象处理采集语音信号 Matlab 将声卡作为对象处理 ,其后的一切操作都不与硬件直接相关, 而是通过对该对象的操作来作用于硬件设备(声卡) 。操作时首先要对声卡产生一个模拟输入对象(ai),给 ai 对象添加一个通道设置采样频率后 , 就可以启动设备对象 , 开始采集数据 , 采集完成后停止对象并删除对象。2调用 wavrecord 功能函数采集语音信号。 wavrecord 功能函数只适用于 windows95/98/N 平台,它使用 win

2、dows 声音输入设备录制声音。函数调用方式: wavrecord (N,fs ,ch,nbits ); N:采集的样本数据量; fs :样本采集频率,为 8000Hz、 11025Hz、 22050Hz和 44100Hz 之一,默认值为 11025Hz; ch :样本采集通道, 1 为单声道, 2 为双声道,默认值为 (1 单声道);nbits :每个样本的位数(或称解析度),double 、 single 或 int16 为 16 位,uint8 为 8 位;3 运用 audiorecorder 对象采集语音信号 audiorecorder (fs , nbits ,ch)可以创设一个 a

3、udiorecorder 对象。 fs :样本采集频率,为8000Hz、11025Hz、22050Hz和 44100Hz之一,默认值为 8000Hz; nbits :每个样本的位数, 8 位或 16 位,默认值为 8 位; ch :样本采集通道, 1 为单声道, 2 为双声道,默认值为 1(单声道); audiorecorder 对象创设后,就可以进行相应的录音、暂停、停止、播放以及数据读取等操作。第二节语音信号的特点通过对大量语音信号的观察和分析发现,语音信号主要有下面两个。1欢迎下载精品文档特点:在频域内, 语音信号的频谱分量主要集中在3003400Hz 的范围内。利用这个特点,可以用一个

4、防混迭的带通滤波器将此范围内的语音信号频率分量取出, 然后按 8kHz 的采样率对语音信号进行采样,就可以得到离散的语音信号。在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。在浊音段表现出周期信号的特征,在清音段表现出随机噪声的特征。下面是一段语音信号的时域波形图( 图 1-1) 和频域图 ( 图 1-2) ,由这两个图可以看出语音信号的两个特点。0.60.450.40.40.350.20.300.25-0.20.20.15-0.40.1-0.60.05-0.80.511.522.533.544.5500.511

5、.522.500Time(s)Frequency(Hz)4x 10图 1-1语音信号时域波形图图 1-2 语音信号频域波形图第三节语音信号的采集在将语音信号进行数字化前,必须先进行防混叠预滤波,预滤波的目的有两个:抑制输入信导各领域分量中频率超出fs/2的所有分量(fs为采样频率 ) ,以防止混叠干扰。抑制50Hz 的电源工频干扰。这样,预滤波器必须是一个带通滤波器,设其上、下截止颜率分别是fH 和。2欢迎下载精品文档fL ,则对于绝大多数语音编译码器,fH=3400Hz、 fL 60100Hz、采样率为 fs 8kHz;而对语音识别而言,当用于电话用户时,指标与语音编译码器相同。当使用要求较

6、高或很高的场合时fH 4500Hz 或 8000Hz、fL 60Hz、fs 10kHz 或 20kHz。为了将原始模拟语音信号变为数字信号,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。采样也称抽样,是信号在时间上的离散化,即按照一定时间间隔t 在模拟信号x(t) 上逐点采取其瞬时值。采样时必须要注意满足奈奎斯特定理,即采样频率fs 必须以高于受测信号的最高频率两倍以上的速度进行取样,才能正确地重建波它是通过采样脉冲和模拟信号相乘来实现的。在采样的过程中应注意采样间隔的选择和信号混淆: 对模拟信号采样首先要确定采样间隔。如何合理选择 t 涉及到许多需要考虑的技术因素。

7、一般而言,采样频率越高,采样点数就越密,所得离散信号就越逼近于原信号。但过高的采样频率并不可取,对固定长度( T)的信号,采集到过大的数据量( N=T/ t ),给计算机增加不必要的计算工作量和存储空间;若数据量( N)限定,则采样时间过短,会导致一些数据信息被排斥在外。采样频率过低,采样点间隔过远,则离散信号不足以反映原有信号波形特征,无法使信号复原,造成信号混淆。根据采样定理,当采样频率大于信号的两倍带宽时,采样过程不会丢失信息,利用理想滤波器可从采样信号中不失真地重构原始信号波形。量化是对幅值进行离散化,即将振动幅值用二进制量化电平来表示。 量化电平按级数变化,实际的振动值是连续的物理量

8、。具体振值用舍入法归到靠近的量化电平上。在实际工作中,我们可以利用 windows 自带的录音机录制语音文件,图 2-3 是基于 PC机的语音信号采集过程,声卡可以完成语音波形的A/D。3欢迎下载精品文档转换,获得 WAVE文件,为后续的处理储备原材料。调节录音机保存界面的“更改”选项,可以存储各种格式的WAVE文件。声音麦克风声卡滤波采样A/D 转换WavWindows 自带的录音机图 1-3基于 PC机的语音信号采集过程采集到语音信号之后,需要对语音信号进行分析,如语音信号的时域分析、频谱分析、语谱图分析以及加噪滤波等处理。4欢迎下载精品文档第二章语音信号的分析第一节语音信号分析技术语音信

9、号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理。而且,语音合成的音质好坏,语音识别率的高低,也都取决于对语音信号分桥的准确性和精确性。因此语音信号分析在语音信号处理应用中具有举足轻重的地位。贯穿于语音分析全过程的是“短时分析技术”。因为,语音信号从整体来看其特性及表征其本质特征的参数均是随时间而变化的,所以它是一个非乎稳态过程,不能用处理乎稳信号的数字信号处理技术对其进行分析处理。但是,由于不同的语音是由人的口腔肌肉运动构成声道某种形状而产生的响应,而这种口腔肌肉运动相对于语音频率来说是非常缓慢的,所以

10、从另一方面看,虽然语音倍号具有时变特性,但是在一个短时间范围内 ( 一般认为在 1030ms的短时间内 ) ,其特性基本保持不变即相对稳定,因面可以将其看作是一个准稳态过程,即语音信号具有短时平稳性。所以任何语音信号的分析和处理必须建立在 “短时”的基础上即进行“短时分析”,将语音信号分为一段一段来分析其特征参数,其中每一段称为一“帧” ,帧长一般取为 1030ms。这样,对于整体的语音信号来讲,分析出的是由每一帧特征参数组成的特征参数时间序列。根据所分析出的参数的性质的不同,可将语音信号分析分为时域分析、频域分析、倒领域分析等;时域分析方法具有简单、计算量小、物理意义明确等优点, 但由于语音

11、信号最重要的感知特性反映在功率谱中,而相位变化只起着很小的作用,所以相对于时域分析来说频域分析更为重要。本文将简要介绍时域分析、频域分析。5欢迎下载精品文档第二节语音信号的时域分析语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。这种分析方法的特点是:表示语音信号比较直观、物理意义明确。实现起来比较简单、运算且少。可以得到语音的一些重要的参数。只使用

12、示波器等通用设备,使用较为简单等。语音信号的时域参数有短时能量、短时过零率、短时白相关函数和短时平均幅度差函数等,这是语音信号的一组最基本的短时参数,在各种语音信号数字处理技术中都要应用。在计算这些参数时使用的一般是方窗或汉明窗。一 短时能量及短时平均幅度分析设语音波形时域信号为 x(l) 、加密分帧处理后得到的第 n 帧语音信号为 Xn(m) ,则 Xn(m)满足下式:xn(m)w(m) x( n m)( m) 0 m N 1(2-1),w(m)1 m 0( N 1) 0, m 其他值(2-2)其中, n 0, 1T,2T,并且 N为帧长, T 为帧移长度。设第 n 帧语音信号 Xn(m)的

13、短时能量用 En 表示,则其计算公式如下:N1n2(m)(2-3)Exnm0En是一个度量语音信号幅度值变化的函数,但它有一个缺陷,即它。6欢迎下载精品文档对高电平非常敏感 ( 因为它计算时用的是信号的平方) 。为此可采用另一个度量语音信号幅度值变化的函数即短时平均幅度函数Mn,它定义为:N 1Mnxn (m)(2-4)m 0Mn也是一度量语音信号能量大小的表征,它与 En 的区别在于计算时小取样值和大取样值不会因取平方而造成较大差异,在某些应用领域会带来一些好处。短时能量和短时平均幅度函数的主要用途有:可以区分浊音段与清音段,因为浊音时 En值比清音时大的多。 可以用来区分声母与韵母的分界,

14、无声与有卢的分界,连字( 指字之间无间隙 ) 的分界等。作为一种超音段信息,用于语音识别中。二 短时过零率分析短时过零率表示一帧语音中语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零即意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值改变符号则称为过零。过零率就是样本改变符号的次数。定义语音信号Xn(m)的短时过零率Zn 为:1N 1(2-5 )Znsgn xn (m) sgn xn( m 1)2 m 0式中, sgn 是符号函数,即:sgn x1,( x 0)(2-6 )1,( x 0)在实际中求过零率参数时,需要十分注意的一个问题是

15、如果输入信号中包含有 50Hz 的工频干扰或者 A/D 变换器的工作点有偏移 ( 这等效于输入信号有直流偏移 ) ,往往会使计算的过零率参数很不准确。 为了解决。7欢迎下载精品文档前一个问题,A/D 变换器前的防混叠带通滤波器的低端截频应高于50Hz,以有效地抑制电源干扰。对于后一个问题除了可以采用低直流漂移器件外,也可以在软件上加以解决,这就是算出每一帧的直流分量并予以滤除。对语音信号进行分析,发现发浊音时,尽管声道有若干个共振峰,但由于声门波引起谱的高频跌落,所以其话音能量约集中在 3kHz 以下。而发清音时,多数能量出现在较高频率上。高频就意味着高的平均过零率,低频意味着低的平均过零率,

16、所以可以认为浊音时具有较低的过零率,而清音时具有较高的过零率。当然,这种高低仅是相对而言,并没方精确的数值关系。利用短时平均过零率还可以从背景噪声中找出语音信号,可用于判断寂静无声段和有声段的起点和终点位置。在孤立词的语音识别中,必须要在一连串连续的语音信号中进行适当分割,用以确定一个一个单词的语音信号,即找出每一个单词的开始和终止位置,这在语音处理中是一个基本问题。此时,在背景噪声较小时用平均能量识别较为有效,而在背景噪声较大时用平均过零率识别较为有效。但是研究表明,在以某些音为开始或结尾时如当弱摩擦音 ( 如f 、h 等音素 ) 、弱燃破音 ( 如 p 、 t 、 k 等音素 ) 为语音的

17、开头或结尾;以鼻音 ( 如 n 、 m 等音素 ) 为语音的结尾时只用其中一个参量来判别语音的起点和终点是有困难的,必须同时使用这两个参数。第三节语音信号的频域分析语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线。8欢迎下载精品文档件预测法等几种。本文介绍的是语音信号的傅里叶分析法。因为语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱”一 利

18、用短时博里叶变换求语音的短时谱对第 n 帧语音信号Xn(m)进行傅里叶变换 ( 离散时域傅里叶变换,DTFT),可得到短时傅里叶变换,其定义如下:N 1Xn(ejw )xn (m)e jwn(2-7)m 0由定义可知,短时傅里叶变换实际就是窗选语音信号的标准傅里叶变换。这里,窗 w(n-m) 是一个“滑动的”窗口,它随n 的变化而沿着序列 X(n) 滑动。由于窗口是有限长度的,满足绝对可和条件,所以这个变换是存在的。当然窗口函数不同,博里叶变换的结果也将不同。我们还可以将式 (3 7) 写成另一种形式。设语音信号序列和窗口序列的标准傅早叶变换均存在。 当 n 取固定值时, w(n-m) 的傅里

19、叶变换为:w ( nm )e jwnejwnW ( ejw )(2-8)m根据卷积定理,有:Xn(e jw ) X (e jw ) e jwn W (e jw )(2-9)因为上式右边两个卷积项均为关于角频率w 的以 2为周期的连续函数,所以也可将其写成以下的卷积积分形式:Xn(e jw )1-W(e j )ejnX (ej ( w) ) d(2-10 )2即,假设 x(m) 的 DTFT是(jw ) ,且w(m)的是jw,那么njw)XeDTFTW (e )X (e是 X ( ejw ) 和 W (e jw ) 的的周期卷积。9欢迎下载精品文档根据信号的时宽带宽积为一常数这一基本性质,可知W

20、(ejw ) 主瓣宽度与窗口宽度成反比, N 越大, W (e jw ) 的主瓣越窄。由式 (2-10) 可知,为了使 Xn(e jw ) 忠实再现 X (e jw ) 的特性 W (e jw ) 相对于 X (e jw ) 来说必须是个冲激函数。所以为了使Xn(e jw )X (e jw ) ,需 N;但是 N 值太大时,倍号的分帧又失去了意义。尤其是N 大于语音的音素长度时,Xn(e jw ) 已不能反映该语音音素的频谱了。因此应折衷选择窗的宽度N。另外,窗的形状也对短时博氏频谱有影响,如矩形窗,虽然频率分辨率很高 ( 即主辩狭窄尖锐 ) ,但由于第一旁瓣的衰减很小,有较大的上下冲,采用矩

21、形窗时求得的Xn(ejw ) 与 X (e jw ) 的偏差较大,这就是Gibbs 效应,所以不适合用于频谱成分很宽的语音分析中。而汉明窗在频率范围中的分辨率较高,而且旁辩的衰减大,具有频谱泄漏少的优点所以在求短时频谱时一船采用具有较小上下冲的汉明窗。与离散傅里叶变换和连续博里叶变换的关系一样,如令角频率w=2 kN(DFT) 它实际上是n (ejw )在频域,则得离散的短时博里叶变换X的取样,如下所示:2kN 12 kmj(m)ej(0 k N 1)(2-11)nNnnNX (e) X (k)xm 0在 语音 信号 数字 处 理中,都 是采用 xn(m) 的离 散博 里叶 变换(DFT) X

22、n(k) 来替代 Xn(ejw ) 并且可以用高效的快速傅里叶变换(FFT) 算法完成由 xn(m) 至 Xn(k) 的转换。当然,这时窗长N 必须是 2 的倍数 2L (L是整数 ) 。根据傅里叶变换的性质, 实数序列的傅里叶变换的频谱具有对。10欢迎下载精品文档称性,因此,全部频谱信息包含在长度为N/2+1 个 Xn(k) 里。另外,为了使 Xn (k ) 具有较高的频率分辨率,所取的DFT以及相应的 FFT 点数 N1 应该足够多,但有时xn( m) 的长度 N 要受到采样率和短时性的限制,例如,在通常采样率为8kHz 且帧长为 20ms时, N=160。而 N1 一般取 256、 51

23、2或,为了将 xn (m) 的点数从 N 扩大力N1,可以采用补 0 的办法,在1024扩大的部分添若干个 0 取样值,然后再对添0 后的序列进行 FFT。例如、在 10kHz 的范围内采样求频谱,并要求频率分辨率在30 Hz 以下。由10k Hz / N1 30,得 N1 333,所以 N1 2L 要取比 333大的值,这时可取 N1 = 29 512 点,不足的部分采用补0 的办法解决,此时频率分辨率 ( 即频率间隔 ) 为 10 Hz 512 19.53Hz,采样后的该帧信号频率处在02x1953Hz之间,因此,原连续信号频率就处在02L 119.53Hz 之间 ( 即f max5kHz

24、 ) ,所以我们要在 0 5kHz 频率范围内求其频谱。 FFT 的计算可以在通用计算机上由相应的算法软件来完成,这种方式一般只能实现非实时运算。为了完成实时运算可以采用先进的数字信号处理芯片、阵列处理芯片或专用FFT芯片。为了完成 1024 点的万 FFT,这些专用芯片所需的运算时间是几十毫秒至儿毫秒,甚至可以降至1ms以下。在语音信号数字处理中, 功率谱具有重要意义, 在一些语音应用系统中往往都是利用语音信号的功率谱。根据功率谱定义,可以写出短时功率谱与短时傅里叶变换之间的关系:Sn(e jw ) Xn(ejw ) X n (e jw ) Xn(ejw )2(2-12)。11欢迎下载精品文

25、档或者:Sn(k) Xn (k ) X n (k ) Xn(k)2(2-13)式中表示复共轭运算。 并且功率谱 Sn (ejw ) 是短时自相关函数Rn( k) 的傅里叶变换。2N1Sn ( e jw )Xn (e jwR n( k ) e jwk(2-14)kN 1。12欢迎下载精品文档第三章语音信号的综合仿真分析在 MATLAB下采集 Windows 自带的“ Windows XP 关机 .wav”语音信号,并画出采样后语音信号的时域波形和频谱图:fs=22050;%语音信号采样频率为22050fname,pname=uigetfile('C:WINDOWSMediaWindows

26、XP关机 .wav');file=pname,fname;x1,fs,bits=wavread(file);%读入声音文件( *.wav )Y=fft(x1,4096);%对信号做 4096 点 FFT变换figure(1);subplot(211);plot(x1);title('原始信号波形 ');subplot(212);plot(abs(Y);title('原始信号频谱 ');原始信号波形0.40.20-0.2-0.4024681012144x 10原始信号频谱600500400300200100000.511.522.533.544x 10图

27、3-1 原始语音信号。13欢迎下载精品文档设计数字滤波器和画出频率响应:根据语音信号的特点给出有关滤波器的性能指标,低通滤波器性能指标:fp=1000Hz,fc=1200 Hz , As=100dB,Ap=1dB,Fs=8000;用双线性变换法设计的butterworth低通滤波器的程序如下fp=1000;fc=1200;As=100;Ap=1;Fs=8000;wc=2*fc/Fs; wp=2*fp/Fs;N,ws=buttord(wc,wp,Ap,As,'s');b,a=butter(N,ws,'s');num1,den1=bilinear(b,a,0.5);

28、figure(1);freqz(num1,den1);滤波器的频率响应 :100)0Bd(edu -100ti n gaM-200-30000.10.20.30.40.50.60.70.80.91Normalized Frequency(rad/sample)2000015000)seerg10000ed(es 5000ahP0-500000.10.20.30.40.50.60.70.80.91Normalized Frequency(rad/sample)图 3-2 滤波器的频率响应。14欢迎下载精品文档进行低通滤波,比较滤波前后语音信号的波形及频谱:fs=22050;%语音信号采样频率为2

29、2050fname,pname=uigetfile('C:WINDOWSMediaWindowsXP关机 .wav');file=pname,fname;x1,fs,bits=wavread(file); %读入声音文件( *.wav )sound(x1,fs,bits);Y=fft(x1,4096); % 对信号做 4096 点 FFT变换 fp=1000;fc=1200;As=100;Ap=1;Fs=8000;% 低通滤波器滤波wc=2*fc/Fs; wp=2*fp/Fs;N,ws=buttord(wc,wp,Ap,As,'s');%求低通滤波器的阶数和截止

30、频率b,a=butter(N,ws,'s');%求 S 域的频率响应的参数num1,den1=bilinear(b,a,0.5); %利用双线性变换实现频率响应S 域到 Z 域的变换figure(1);freqz(num1,den1,512,Fs);x=filter(num1,den1,x1);X=fft(x,4096);sound(x); %回放低通滤波器后的声音figure(2);subplot(2,2,1);plot(x1);title('滤波前信号波形 ');subplot(2,2,2);plot(abs(Y);title('滤波前信号频谱 ');subplot(2,2,3);plot(x);title('滤波后信号波形 ');subplot(

温馨提示

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

评论

0/150

提交评论