1、5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)1第三章第三章 语音信号的短时时域分析语音信号的短时时域分析 3.1 概述概述13.2 语音信号的预处理语音信号的预处理3.3 短时平均能量短时平均能量 33.4 短时平均幅度函数短时平均幅度函数 43.5 短时平均过零率短时平均过零率 5 3.6 短时自相关分析短时自相关分析 62 3.7 基于能量和过零率的语音端点检测基于能量和过零率的语音端点检测7 3.8 基音周期估值基音周期估值 85/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)23.1 概述概述 语音信号是一种非平稳的时变
2、信号,它携带语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中都需要提取语音中包含和语音增强等语音处理中都需要提取语音中包含的各种信息。的各种信息。语音处理的目的:对语音信号进行分析,提语音处理的目的:对语音信号进行分析,提取特征参数,用于后续处理;加工语音信号。取特征参数,用于后续处理;加工语音信号。总之,语音信号分析的目的就在于方便有效总之,语音信号分析的目的就在于方便有效的提取并表示语音信号所携带的信息。的提取并表示语音信号所携带的信息。5/22/2023数字语音处理及MATLAB仿真 张雪英编
3、著(李红莲修改并主讲)3 根据所分析的参数类型,语音信号分析可以根据所分析的参数类型,语音信号分析可以分成时域分析和变换域(频域、倒谱域)分析。分成时域分析和变换域(频域、倒谱域)分析。其中时域分析方法是最简单、最直观的方法,它其中时域分析方法是最简单、最直观的方法,它直接对语音信号的时域波形进行分析,提取的特直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量和平均幅度、短时征参数主要有语音的短时能量和平均幅度、短时平均过零率、短时自相关函数和短时平均幅度差平均过零率、短时自相关函数和短时平均幅度差函数等。函数等。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(
4、李红莲修改并主讲)43.2 语音信号的预处理语音信号的预处理 在对语音信号进行数字处理之前,首先要将在对语音信号进行数字处理之前,首先要将模拟语音信号模拟语音信号s(t)离散化为离散化为s(n).实际中获得数字实际中获得数字语音的途径一般有两种,正式的和非正式的。语音的途径一般有两种,正式的和非正式的。正式的是指大公司或语音研究机构发布的被正式的是指大公司或语音研究机构发布的被大家认可的语音数据库,非正式的则是研究者个大家认可的语音数据库,非正式的则是研究者个人用录音软件或硬件电路加麦克风随时随地录制人用录音软件或硬件电路加麦克风随时随地录制的一些发音或语句。的一些发音或语句。5/22/202
5、3数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)5 语音信号的频率范围通常是语音信号的频率范围通常是3003400Hz,一,一般情况下取采样率为般情况下取采样率为8kHz即可。本书的数字语音即可。本书的数字语音处理对象为语音数据文件,是已经数字化了的语处理对象为语音数据文件,是已经数字化了的语音。音。有了语音数据文件后,对语音的预处理包括:有了语音数据文件后,对语音的预处理包括:预加重、加窗分帧等。预加重、加窗分帧等。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)63.2.1 语音信号的预加重处理语音信号的预加重处理 预加重目的:为了对语音的高
6、频部分进行加重,预加重目的:为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率。去除口唇辐射的影响,增加语音的高频分辨率。可通过一阶可通过一阶FIR高通数字滤波器来实现:高通数字滤波器来实现:1()1H zz 设设n时刻的语音采样值为时刻的语音采样值为x(n),经过预加重处理后经过预加重处理后的结果为的结果为 ()()(1)y nx nx n5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)7高通滤波器的幅频特性和相频特性如下高通滤波器的幅频特性和相频特性如下 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)8预
7、加重前和预加重后的一段语音信号时域波形预加重前和预加重后的一段语音信号时域波形 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)9 预加重前和预加重后的一段语音信号频谱预加重前和预加重后的一段语音信号频谱 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)103.2.2 语音信号的加窗处理语音信号的加窗处理 由于发音器官的惯性运动,可以认为在一小由于发音器官的惯性运动,可以认为在一小段时间里(一般为段时间里(一般为10ms30ms)语音信号近似不)语音信号近似不变,即语音信号具有短时平稳性。这样,可以把变,即语音信号具有短时平稳性。
8、这样,可以把语音信号分为一些短段(称为分析帧)来进行处语音信号分为一些短段(称为分析帧)来进行处理。理。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)11 语音信号的分帧实现方法:语音信号的分帧实现方法:采用可移动的有限长度窗口进行加权的方法采用可移动的有限长度窗口进行加权的方法来实现的。一般每秒的帧数约为来实现的。一般每秒的帧数约为33100帧。帧。分帧一般采用交叠分段的方法,这是为了使分帧一般采用交叠分段的方法,这是为了使帧与帧之间平滑过渡,保持其连续性。前一帧和帧与帧之间平滑过渡,保持其连续性。前一帧和后一帧的交叠部分称为帧移,帧移与帧长的比值后一帧的交
9、叠部分称为帧移,帧移与帧长的比值一般取为一般取为01/2。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)12图图3.3给出了帧移与帧长示意图。给出了帧移与帧长示意图。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)13加窗常用的两种方法:加窗常用的两种方法:矩形窗,窗函数如下:矩形窗,窗函数如下:其它 010 1)(Nnnw汉明汉明(Hamming)窗,窗函数如下窗,窗函数如下 0.540.46 cos 2/1 0()0 nNnNw n其它,5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)14矩形
10、窗及其频谱如下矩形窗及其频谱如下5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)15汉明窗及其频谱如下汉明窗及其频谱如下思考:思考:两种窗效果有何异同?两种窗效果有何异同?5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)165/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)17加窗方法示意图:加窗方法示意图:5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)18窗长的选择窗长的选择 一般选取一般选取100200。原因如下:。原因如下:当窗较宽时,平滑作用大,能量变化不大,
11、当窗较宽时,平滑作用大,能量变化不大,故反映不出能量的变化。故反映不出能量的变化。当窗较窄时,没有平滑作用,反映了能量的当窗较窄时,没有平滑作用,反映了能量的快变细节,而看不出包络的变化。快变细节,而看不出包络的变化。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)19 语音信号的分帧处理,实际上就是对各帧进行语音信号的分帧处理,实际上就是对各帧进行某种变换或运算。设这种变换或运算用某种变换或运算。设这种变换或运算用T 表示,表示,x(n)为输入语音信号,为输入语音信号,w(n)为窗序列,为窗序列,h(n)是与是与w(n)有关的滤波器,则各帧经处理后的输出可以表
12、示为:有关的滤波器,则各帧经处理后的输出可以表示为:()()nmQT x m h nm5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)20几种常见的短时处理方法是:几种常见的短时处理方法是:22()()()()T x mxmh nw n,nQ1.对应于能量;对应于能量;()sgn()sgn(1)()()T xmxmxmhnwn,2.,nQ对应于平均过零率;对应于平均过零率;()()()T xmxmxm kh nw n w n k,3.nQ对应于对应于自相关函数自相关函数;5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)213.3
13、短短时平均能量时平均能量 1短时平均能量定义短时平均能量定义定义定义n时刻某语音信号的短时平均能量时刻某语音信号的短时平均能量En为:为:)()()()()1(22nNnmmnmnwmxmnwmxE当窗函数为矩形窗时,有当窗函数为矩形窗时,有 )()1(2nNnmnmxE5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)22若令若令 则则短时平均能量短时平均能量可以写成:可以写成:)()(2nwnh )()()()(22nhnxmnhmxEmn x(n)x 2(n)E n h(n)(.)2 图 3.7 语音信号的短时平均能量实现方框图 5/22/2023数字语音处
14、理及MATLAB仿真 张雪英编著(李红莲修改并主讲)232.En特点:特点:En反映语音信号的幅度或能量随时间缓反映语音信号的幅度或能量随时间缓慢变化的规律慢变化的规律。3.窗的长短对于能否由短时能量反映语音信号的幅窗的长短对于能否由短时能量反映语音信号的幅度变化,起着决定性影响。度变化,起着决定性影响。如果窗选得很长,如果窗选得很长,En不能反映语音信号幅度变化不能反映语音信号幅度变化。窗选得太窄,窗选得太窄,En将不够平滑。将不够平滑。通常,当取样频率为通常,当取样频率为10kHz时,选择窗宽度时,选择窗宽度N=100200是比较合适的。是比较合适的。5/22/2023数字语音处理及MAT
15、LAB仿真 张雪英编著(李红莲修改并主讲)24不同矩形窗长不同矩形窗长N时的短时能量函数时的短时能量函数 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)25 短时平均能量的主要用途如下:短时平均能量的主要用途如下:1)可以作为区分清音和浊音的特征参数。)可以作为区分清音和浊音的特征参数。2)在信噪比较高的情况下,短时能量还可以作为)在信噪比较高的情况下,短时能量还可以作为区分有声和无声的依据。区分有声和无声的依据。3)可以作为辅助的特征参数用于语音识别中。)可以作为辅助的特征参数用于语音识别中。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红
16、莲修改并主讲)26MATLAB的具体实现如下的具体实现如下:1、用、用Cooledit读入语音读入语音“我到北京去我到北京去”。2、将读入的语音文件、将读入的语音文件wav保存为保存为txt文件,设置采样文件,设置采样率为率为8kHz,16位,单声道。位,单声道。3、把保存的文件、把保存的文件zqq.txt读入读入Matlab。fid=fopen(zqq.txt,rt);x=fscanf(fid,%f);fclose(fid);4、对采集到的语音样点值进行分帧。、对采集到的语音样点值进行分帧。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)273.4 短时平均短
17、时平均幅度函数幅度函数 为了克服短时能量函数计算为了克服短时能量函数计算x2(m)的缺点,的缺点,定义了短时平均幅度函数定义了短时平均幅度函数:mnmnwmxM )(|)(|5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)28 x(n)Mn w(n)图 3.9 短时平均幅度|x(n)|.|Mn与与En的比较:的比较:1.Mn能较好地反映清音范围内的幅度变化;能较好地反映清音范围内的幅度变化;2.Mn所能反映幅度变化的动态范围比所能反映幅度变化的动态范围比En好;好;3.Mn反映清音和浊音之间的电平差次于反映清音和浊音之间的电平差次于En。5/22/2023数字语
18、音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)29短时平均幅度函数随矩形窗窗长短时平均幅度函数随矩形窗窗长N变化的情况变化的情况5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)303.5 短时平均过零率短时平均过零率 1.定义定义 在离散时间语音信号情况下,如果相邻的采在离散时间语音信号情况下,如果相邻的采样具有不同的代数符号就称为发生了过零。单位样具有不同的代数符号就称为发生了过零。单位时间内过零的次数就称为过零率。时间内过零的次数就称为过零率。短时平均过零短时平均过零率的定义为率的定义为 sgnsgn1sgnsgn1*nmZx mx mw nmx
19、nx nw n 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)31 10120 nN w n N 其它1()0 sgn()1()0 x n x n -x n及 在上式中,用在上式中,用1/2N 作为幅值,是考虑了对该窗口范作为幅值,是考虑了对该窗口范围内的过零数取平均的意思围内的过零数取平均的意思。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)32 考虑到考虑到w(n-m)的非零值范围为的非零值范围为n-m0,即,即mn,以及以及 n-mN-1,故故mn-N+1,因此,因此短时平均过零率短时平均过零率可可以改写为:以改写为:n
20、NnmnmxmxNZ)1(|1-sgnsgn|21 sgnsgn1sgnsgn1*nmZx mx mw nmx nx nw n (定义式)(定义式)5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)332.实现短时平均过零率实现短时平均过零率 Nn x(n)Sgnx(n)1 一阶差分 sgnxn-sgnxn-1 低通滤波 h(n)=w(n)-1+1 图图 3.11 语音信号的短时平均跨零数语音信号的短时平均跨零数 Sgn.取绝对取绝对值值 .5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)34女声女声“我到北京去我到北京去”的短时平
21、均过零次数的变化曲线的短时平均过零次数的变化曲线:5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)353.应用应用 清音过零率高,浊音过零率低。清音过零率高,浊音过零率低。局限性:浊音和清音重叠区域只根据短时平均局限性:浊音和清音重叠区域只根据短时平均过零率不可能明确地判别清、浊音。过零率不可能明确地判别清、浊音。清音清音 浊音浊音 0 10 20 30 40 50 60 70 80 每每 10ms 内的过零数内的过零数 过零率概率分布过零率概率分布 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)36端点检测端点检测 端点检测目
22、的:从包含语音的一段信号中确端点检测目的:从包含语音的一段信号中确定出语音的起点及结束点。定出语音的起点及结束点。有效的端点检测不仅能使处理时间减到最少,有效的端点检测不仅能使处理时间减到最少,而且能抑制无声段的噪声干扰,提高语音处理的而且能抑制无声段的噪声干扰,提高语音处理的质量。质量。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)373.6 短时自相关分析短时自相关分析 3.6.1 短时自相关函数短时自相关函数 时域离散确定信号的自相关函数定义为:时域离散确定信号的自相关函数定义为:时域离散随机信号的自相关函数定义为:时域离散随机信号的自相关函数定义为:周
23、期为周期为P的周期信号满足:的周期信号满足:)(mkmxmxkR NNmNkmxmxNkR 121lim PkRkR5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)38 自相关函数具有下述性质:自相关函数具有下述性质:(1)对称性对称性 R(k)=R(-k)(2)在在k=0处为最大值,即对于所有处为最大值,即对于所有k来说,来说,|R(k)|R(0)(3)对于确定信号,对于确定信号,R(0)对应于能量对应于能量 对于随机信号,对于随机信号,R(0)对应于平均功率对应于平均功率 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)39
24、采用短时分析方法,定义语音信号短时自相关函数为采用短时分析方法,定义语音信号短时自相关函数为 mnmknwkmxmnwmxkR因为因为 nnRkRk所以所以 nnmR kRkx m x m k w n m w n m k 3.6.2 语音信号的短时自相关函数语音信号的短时自相关函数 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)40定义定义 (3-18)那么短时自相关函数可以写成:那么短时自相关函数可以写成:knwnwnhk mnhkmxmxkRmkn)()(knxnx)(nhk)(kRn上式表明,序列上式表明,序列经过一个冲激响应为经过一个冲激响应为的数字滤
25、波器滤波即得到短时自相关函数的数字滤波器滤波即得到短时自相关函数 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)41 Rn(k)z-k x(n)x(nk)hk(n)mnhkmxmxkRmkn5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)42mnm)()(mwmw ()()()()nmm R kx n m w mx n m k w k m x n mw m x n m k w k m 也可采用直接运算的方法,令也可采用直接运算的方法,令则可得:则可得:kNmn mkwkmnxmwmnxkR10 上式可以写成上式可以写成 5/22
26、/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)43浊音的短时自相关函数浊音的短时自相关函数 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)44清音的短时自相关函数清音的短时自相关函数 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)45浊音和清音的短时自相关函数有如下几个特点:浊音和清音的短时自相关函数有如下几个特点:1)短时自相关函数可以很明显的反映出浊音信号)短时自相关函数可以很明显的反映出浊音信号的周期性。的周期性。2)清音的短时自相关函数没有周期性,也不具有)清音的短时自相关函数没有周期性,也不
27、具有明显突出的峰值,其性质类似于噪声。明显突出的峰值,其性质类似于噪声。3)不同的窗对短时自相关函数结果有一定的影响。)不同的窗对短时自相关函数结果有一定的影响。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)46图图3.16 不同矩形窗长时的短时自相关函数不同矩形窗长时的短时自相关函数5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)473.6.3 修正的短时自相关函数修正的短时自相关函数修正的短时自相关函数,其定义如下修正的短时自相关函数,其定义如下 kmnwkmxmnwmxkRn2-m1mnm若令,代入上式中,可得)(-)()
28、(-21-kmwkmnxmwmnxkRmn 1122w mwmwmwm定义 kmwkmnxmwmnxkRn2-m1)()(5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)48 121 0-10 1 0-1 0 nN w mnNK wm其它其它,式中,式中,K为为k的最大值,即的最大值,即0kK。)(2kmwKNkm+1-+Kk 1-Nm要使要使为非零值,必须使为非零值,必须使 考虑到考虑到,可得,可得 修正的短时自相关函数可以写成:修正的短时自相关函数可以写成:1-0 )()()(NmnkmnxmnxkR5/22/2023数字语音处理及MATLAB仿真 张雪英编
29、著(李红莲修改并主讲)491-0 )()()(NmnkmnxmnxkR因为求和上限是因为求和上限是N-1,与,与k无关,故当无关,故当k增加时,增加时,值不下降值不下降.)(kRn5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)503.6.4 短时平均幅度差函数短时平均幅度差函数 一个周期为一个周期为P的周期信号,在的周期信号,在k=0,P,2P,时,时,对于浊音语音,在基音周期的整数倍上,对于浊音语音,在基音周期的整数倍上,d(n)总是总是很小,但不是零,因此,我们可以定义短时平均很小,但不是零,因此,我们可以定义短时平均幅度差函数幅度差函数AMDF为为 -0
30、 02.d nx nx n kkPP,|)()()()(|)(21kmwkmnxmwmnxkrmn5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)51使用矩形窗时,短时平均幅度差函数可写成:使用矩形窗时,短时平均幅度差函数可写成:10 1-,0,1,|,)()(|)(NnnNkknxnxkr1/2()2()(0)()nnnrkkRRk()nr k()nR k与与之间的关系为:之间的关系为:5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)523.7 基于能量和过零率的语音端点检测基于能量和过零率的语音端点检测 语音端点检测就是指从包
31、含语音的一段信号语音端点检测就是指从包含语音的一段信号中确定出语音的起始点和结束点。中确定出语音的起始点和结束点。正确的端点检测对于语音识别和语音编码系正确的端点检测对于语音识别和语音编码系统都有重要的意义。统都有重要的意义。本节介绍基于能量和过零率的语音端点检测本节介绍基于能量和过零率的语音端点检测方法方法两级判决法及程序实现。两级判决法及程序实现。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)53 两级判决法示意图两级判决法示意图 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)54 采用双门限比较法的两级判决法,具体如下采
32、用双门限比较法的两级判决法,具体如下 第一级判决:第一级判决:1.先根据语音短时能量的轮廓选取一个较高的先根据语音短时能量的轮廓选取一个较高的门限门限T1,进行一次粗判:语音起止点位于该门限与,进行一次粗判:语音起止点位于该门限与短时能量包络交点所对应的时间间隔之外短时能量包络交点所对应的时间间隔之外(即即AB段段之外之外)。2.根据背景噪声的平均能量确定一个较低的门根据背景噪声的平均能量确定一个较低的门限限T2,并从,并从A点往左、从点往左、从B点往右搜索,分别找到短点往右搜索,分别找到短时能量包络与门限时能量包络与门限T2相交的两个点相交的两个点C和和D,于是,于是CD段就是用双门限方法根
33、据短时能量所判定的语音段。段就是用双门限方法根据短时能量所判定的语音段。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)55 第二级判决:第二级判决:以短时平均过零率为标准,从以短时平均过零率为标准,从C点往左和从点往左和从D点往右搜索,找到短时平均过零率低于某个门限点往右搜索,找到短时平均过零率低于某个门限T3的两点的两点E和和F,这便是语音段的起止点。门限,这便是语音段的起止点。门限T3是由背景噪声的平均过零率所确定的。是由背景噪声的平均过零率所确定的。注意:门限注意:门限T2,T3都是由背景噪声特性确定都是由背景噪声特性确定的,因此,在进行起止点判决前,的
34、,因此,在进行起止点判决前,T1,T2,T3,三个门限值的确定还应当通过多次实验。三个门限值的确定还应当通过多次实验。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)56 基于基于MATLAB程序实现能量与过零率的端点检程序实现能量与过零率的端点检测算法步骤如下:测算法步骤如下:(1)语音信号)语音信号x(n)进行分帧处理。进行分帧处理。(2)得到语音的短时帧能量。)得到语音的短时帧能量。(3)计算每一帧语音的过零率,得到短时帧过零率。)计算每一帧语音的过零率,得到短时帧过零率。(4)考察语音的平均能量设置一个较高的门限)考察语音的平均能量设置一个较高的门限T1
35、,用以确定语音开始,然后根据背景噪声的平均能量用以确定语音开始,然后根据背景噪声的平均能量确定一个稍低的门限确定一个稍低的门限T2,用以确定第一级语音结束,用以确定第一级语音结束点。第二级判决同样根据背景噪声平均过零率点。第二级判决同样根据背景噪声平均过零率ZN,设置一个门限设置一个门限T3,判断语音前端清音和后端尾音。,判断语音前端清音和后端尾音。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)573.8 基音周期估值基音周期估值 基音周期估值在语音信号处理应用中具有十基音周期估值在语音信号处理应用中具有十分重要的作用。本节介绍语音信号基音周期估值分重要的作用
36、。本节介绍语音信号基音周期估值最基本的两种方法:最基本的两种方法:基于短时自相关法的基音周期估值基于短时自相关法的基音周期估值 基于短时平均幅度差函数法的基音周期估值基于短时平均幅度差函数法的基音周期估值 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)583.8.1 基于短时自相关法的基音周期估值基于短时自相关法的基音周期估值 语音的浊音信号具有准周期性,其自相关函语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。计算两相邻数在基音周期的整数倍处取最大值。计算两相邻最大峰值间的距离,就可以估计出基音周期。最大峰值间的距离,就可以估计出基音周
37、期。为了突出反映基音周期的信息,同时压缩其为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,自相关计算之前需要他无关信息,减小运算量,自相关计算之前需要对语音信号进行适当预处理。对语音信号进行适当预处理。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)59 预处理的两种方法预处理的两种方法 第一种方法:先对语音信号进行低通滤波,第一种方法:先对语音信号进行低通滤波,再进行自相关计算。再进行自相关计算。第二种方法:先对语音信号进行中心削波第二种方法:先对语音信号进行中心削波处理,再进行自相关计算。常用的有两种削波函处理,再进行自相关计算。常用的有两种削
38、波函数,下面分别介绍。数,下面分别介绍。1.中心削波中心削波 中心削波函数为中心削波函数为 ()()0()()LLLLLLxxxxf xxxxxxxx 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)60削波后的序列用短时自相关函数估计基音周期,在基削波后的序列用短时自相关函数估计基音周期,在基音周期处峰值更加尖锐,可减少倍频或半频错误。音周期处峰值更加尖锐,可减少倍频或半频错误。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)61削波前后语音信号对比图及修正自相关对比图削波前后语音信号对比图及修正自相关对比图 5/22/2023
39、数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)62 2三电平削波三电平削波 为了克服短时自相关函数计算量大的问题,为了克服短时自相关函数计算量大的问题,在中心削波法的基础上,还可以采用三电平削波在中心削波法的基础上,还可以采用三电平削波法,削波函数如下式法,削波函数如下式1()01LLLLxxf xxxxxx f(x)x xL-xL O-1 1 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)63 经削波后的取样值仅有三种可能情况,即经削波后的取样值仅有三种可能情况,即+1,0,-1。显然,这种信号的短时自相关函数的计算。显然,这种信号的短时自相
40、关函数的计算实际上是不需要乘法运算的,这就大大节省了计实际上是不需要乘法运算的,这就大大节省了计算时间。算时间。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)645/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)655/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)663.8.2 基于短时平均幅度差函数基于短时平均幅度差函数AMDF法的基音周期估值法的基音周期估值 对于浊音语音,在基音周期的整数倍上的幅对于浊音语音,在基音周期的整数倍上的幅度差值不是零,但总是很小,因此,可以通过计度差值不是零,但总是
41、很小,因此,可以通过计算短时平均幅度差函数中两相邻谷值间的距离来算短时平均幅度差函数中两相邻谷值间的距离来进行基音周期估值。这里使用修正的短时平均幅进行基音周期估值。这里使用修正的短时平均幅度差函数并加矩形窗,得到:度差函数并加矩形窗,得到:10 1-,0,1,|,)()(|)(NnnNkknxnxkr5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)67 AMDF函数与短时自相关函数的不同是:函数与短时自相关函数的不同是:自相关函数进行基音周期估计时寻找的是最大自相关函数进行基音周期估计时寻找的是最大峰值点的位置,而峰值点的位置,而AMDF寻找的是它的最小谷值点
42、寻找的是它的最小谷值点的位置。由于清音没有周期性,所以它的自相关函的位置。由于清音没有周期性,所以它的自相关函数和平均幅度差函数均不具有准周期性的峰值或谷数和平均幅度差函数均不具有准周期性的峰值或谷值。值。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)685/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)693.8.3 基音周期估值的后处理基音周期估值的后处理 在提取基音时,无论采用哪种方法提取的基音在提取基音时,无论采用哪种方法提取的基音频率轨迹与真实的基音频率轨迹都不可能完全吻合。频率轨迹与真实的基音频率轨迹都不可能完全吻合。
43、实际情况是大部分段落吻合,而在一些局部段落和区实际情况是大部分段落吻合,而在一些局部段落和区域中有一个或几个基音频率估计值偏离,甚至远离正域中有一个或几个基音频率估计值偏离,甚至远离正常轨迹,通常是偏离到正常值的常轨迹,通常是偏离到正常值的2 2倍或倍或1/21/2处,即实处,即实际基音频率的倍频或分频处,称这种偏离点为基音轨际基音频率的倍频或分频处,称这种偏离点为基音轨迹的迹的“野点野点”。为了去除为了去除“野点野点”,常用的平滑技术主要有:,常用的平滑技术主要有:中值滤波平滑处理、线性平滑、动态规划平滑处理。中值滤波平滑处理、线性平滑、动态规划平滑处理。5/22/2023数字语音处理及MA
44、TLAB仿真 张雪英编著(李红莲修改并主讲)70 1.中值平滑处理中值平滑处理 基本原理:设基本原理:设x(n)为输入信号,为输入信号,y(n)为中值滤波器为中值滤波器的输出,采用一滑动窗,则的输出,采用一滑动窗,则n0处的输出值处的输出值y(n0)就是就是将窗的中心移到将窗的中心移到n0处时窗内输入样点的中值。即在处时窗内输入样点的中值。即在n0点的左右各取点的左右各取L个样点。连同被平滑点共同构成个样点。连同被平滑点共同构成一组信号采样值一组信号采样值(共共(2L+1)个样值个样值),然后将这,然后将这(2L+1)个样值按大小次序排成一队,取此队列中的个样值按大小次序排成一队,取此队列中的
45、中间者作为平滑器的输出。中间者作为平滑器的输出。L值一般取为值一般取为1或或2,即,即中值平滑的中值平滑的“窗口窗口”一般包括一般包括3至至5个样值,称为个样值,称为3点或点或5点中值平滑。点中值平滑。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)712.线性平滑处理线性平滑处理线性平滑是用滑动窗进行线性滤波处理线性平滑是用滑动窗进行线性滤波处理 ()()()LmLy nx nm w m,.2,1,0,1,),(LLLmmw为为2L+1点平滑窗,满足点平滑窗,满足 LLmmw1)(5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)
46、72 3.组合平滑处理组合平滑处理 为了改善平滑的效果可以将两个中值平滑串为了改善平滑的效果可以将两个中值平滑串接,图接,图3.26(a)所示是将一个所示是将一个5点中值平滑和一个点中值平滑和一个3点点中值平滑串接。另一种方法是将中值平滑和线性中值平滑串接。另一种方法是将中值平滑和线性平滑组合,如图平滑组合,如图3.26(b)所示。为了使平滑的基音所示。为了使平滑的基音轨迹更为贴近,还可以采用二次平滑的算法。轨迹更为贴近,还可以采用二次平滑的算法。5点中值平滑点中值平滑3点中值平滑点中值平滑中值平滑中值平滑线性平滑线性平滑图图3.26(a)图图3.26(b)5/22/2023数字语音处理及MA
47、TLAB仿真 张雪英编著(李红莲修改并主讲)73_+中值中值平滑平滑线性线性平滑平滑中值平滑线性平滑+5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)74+中值中值平滑平滑线性线性平滑平滑中值中值平滑平滑线性线性平滑平滑延时延时_+各种组合平滑算法各种组合平滑算法 5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)753.8.4 基音周期估值后处理的基音周期估值后处理的MATLAB实现实现 本实验所用的语音样本是用本实验所用的语音样本是用Cool Edit在普通在普通室内环境下录制的女声室内环境下录制的女声“我到北京去我到北京去”,
48、采样频,采样频率为率为8kHz,单声道,将语音信号分为若干帧,每,单声道,将语音信号分为若干帧,每帧长帧长220个样点,相邻帧交叠个样点,相邻帧交叠110个样点,采用基个样点,采用基于能量的基音周期检测算法求出基音周期,并将于能量的基音周期检测算法求出基音周期,并将原始基音周期保存为原始基音周期保存为“zhouqi.txt”文件,用程序文件,用程序对原始基音周期进行平滑处理。对原始基音周期进行平滑处理。5/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)765/22/2023数字语音处理及MATLAB仿真 张雪英编著(李红莲修改并主讲)77 由程序运行结果可以看出,
49、组合平滑算法对由程序运行结果可以看出,组合平滑算法对原始基音周期的原始基音周期的“野点野点”有很好的平滑作用,二有很好的平滑作用,二次平滑算法在对语音次平滑算法在对语音“我到北京去我到北京去”的平滑作用的平滑作用上,与组合平滑算法相差无几,都很好地实现了上,与组合平滑算法相差无几,都很好地实现了对原始语音进行平滑。理论上加延时的二次平滑对原始语音进行平滑。理论上加延时的二次平滑算法的平滑效果应优于二次平滑算法,但在该实算法的平滑效果应优于二次平滑算法,但在该实验中效果不佳,可能原因是原始基音周期已经趋验中效果不佳,可能原因是原始基音周期已经趋于平滑,加延时反而造成基音周期的不准确。于平滑,加延时反而造成基音周期的不准确。