倒谱在语音信号处理方面的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

倒谱在语音信号处理方面的应用摘要:本文首先对基音做了大概的介绍,简要说明了语音的形成机制,并针对语音信号处理做了详细的分析,包括信号采样量化、加窗处理以及语音数字信号的时域和频域特征分析。本文针对如何用倒谱法实现基音检测的原理进行了详细的理论推导和分析,在最后,通过使用cooledit软件对语音信号做简单的预处理,并用matlab软件编写程序实现了基于倒谱法的基音检测。关键词:基音检测倒谱分析matlab0前言基音是指发浊音时声带振动所引起的周期性,而声带振动频率的倒数就是基音周期。基音周期具有时变性和准周期性,它的大小与个人声带的长短、厚薄、韧性和发音习惯有关,还与发音者的性别、年龄、发音时的力度及情感有关,是语音信号处理中的重要参数之一,它描述了语音激励源的一个重要特征。基音周期的估计称为基音检测(PitchDetection),基音检测的最终目标是找出和声带振动频率完全一致的基音周期变化轨迹曲线,如不可能则找出尽量相吻合的轨迹曲线。迄今为止,已经发展了几种常用的基音检测技术,如自相关函数检测法、平均幅度差函数法、倒谱法、小波法等,本文专门从倒谱法出发,研究倒谱法在基音检测方面的应用。倒谱法(cepstrum)是一种频域上的检测算法,这种方法检测基因周期精确度很高,主要通过傅里叶变换和对数变换来实现。本文从四个方面来讨论基音检测的问题:1、简要介绍语音的发音机理、语音信号的数字处理等。2、分别从时域和频域两方面分析了语音信号的特征3、从理论上研究分析倒谱法4、在MATLAB软件基础上利用倒谱法对一段语音信号进行基音检测。1语音信号处理基础1.1语音信号的产生人体发音器官由三部分组成:肺和气管、喉、声道。在说话时,空气由肺部排入喉部,经过声带进入声道,最后由嘴辐射出声波,形成语音。喉部有重要的发音器官声带(vocalcords),两片声带之间的空间叫做声门。声带每次开启和闭合一次的时间就是基因周期(pitchperiod),它的倒数就是基音频率。基音频率最低可达到80Hz左右,最高可达500Hz左右,其范围随着发音人的性别、年龄及其具体情况而定。1.2语音信号的数字化语音信号是在时间和幅度上都连续的一维模拟信号,想要在计算机或处理器上对它进行处理,就要先进行采样和量化,将它变成时间和幅度都离散的数字信号。采样就是把模拟信号在时间域上进行等间隔取样,取样周期的倒数就是采样频率。根据奈奎斯特采样定理,当采样频率大于信号频率的两倍时,采样后的信号能够重构原始信号。人发音频率主要集中在300Hz~3.4KHz之间,在实际的语音信号处理中,采样频率一般为8KHz~10KHz。采样后得到的幅值需要经过量化,才能被计算机处理。量化就是将整个信号的幅度分为若干个有限的区间,并且把落入同一个区间的样本点都用同一个值表示。1.3语音信号的短时加窗处理对语音信号进行分析的一个前提是语音信号短时平稳(10ms~30ms),为了得到短时的语音信号,需要对语音信号进行加窗操作。常用的窗口有矩形窗和汉明窗。窗口的形状和长度的不同选择都会影响到语音信号的分析结果。如下图为矩形窗和汉明窗的时域、频域特性对比:图1矩形窗和汉明窗的时域、频域特性对比矩形窗:(){其他}汉明窗(hamming):(){()其他}虽然这两种窗都有低通特性,但是不同的窗函数形状将影响分帧后短时特征的特性。由上图可知,矩形窗的旁瓣太高,会产生严重的泄漏现象,因此只在某些特殊场合中采用。汉明窗旁瓣较低,可以有效地克服泄漏现象,具有更平滑的低通特性,因此应用最为广泛。前面的窗函数长度是相对于语音信号的基音周期而言的。通常认为一个语音帧内,应含有1~7个基音周期,然而不同人的基音周期变化范围很大,基音周期持续时间会从高音调的女性或儿童的约20个采样点(采样频率为10kHz)变化到很低音调的男性的250个采样点,这意味着在进行分析时可能需要多个不同的N值,所以N的选择比较困难。通常在采样频率为10kHz的情况下,N的选择在100~200量级是合适的(也就是说10ms~20ms持续时间)。2语音信号的特征分析2.1语音信号的时域表示对信号分析最直接的方法是以时间为自变量进行分析。在进行语音信号数字处理时,最先接触、最直观的是它的时域波形。下图是一个女性说“习题”的时域波形,语音数据是我从网络上下载得到的,背景环境相对安静。采样频率为44100Hz,采样后进行16位量化。图中横轴为时间,纵轴表示信号的幅度。从图中可以看出,虽然无法辨别语音波形的细节,但可以看出语音能量的起伏,以及语音信号随时间变化的过程。图2女生发音“习题”对应时域波形下图是将“习”对应部分在时间轴放大后的形状。可以看出,它主要由两部分组成,左边振幅较小的信号对应于辅音发音,而右边具有一定的周期性,并且具有较大的振幅,它的周期就是基音周期。图3女生发音“习”字在时域拉长放大细节图2.2语音信号的频域分析时域波形虽然简单直观,但是对于语音这样复杂的信号而言,一些特征要在频域中才能体现出来,并且无论是从发音器官的共振角度,还是从听觉器官的频率响应角度,频谱都是表征语音特征的基本参数。在语音的发音过程中,声道通常都处于运动状态,这个运动状态的时变过程同振动过程相比要缓慢得多,因此一般假设语音信号是一种短时平稳信号,在一个很短的时间内(10ms-30ms)是相对平稳的,但在长时间的周期中语音信号的特性会发生变化,这种变化的不同决定了产生语音的不同。根据语音信号的这种短时平稳的特点,在每一时刻都可以用该附近的短语音信号分析得到一个频谱。语音的感知过程与人类的听觉系统具有频谱分析功能是紧密相关的。因此,频谱分析是认识语音信号和处理语音信号的重要方法。在频域上研究语音信号,可以使某些在时遇上无法体现的特性变得十分明显。常用的频域分析方法是傅里叶变换法,它可以将信号分解为不同频率分量的组合,从而把信号的时域特征和频域特征联系起来。但是,傅里叶变换使用的是一种全局变换,无法表明信号的时频局域性质。为了能够分析和处理非平稳信号,人们对傅里叶变换进行改进提出了倒谱法,倒谱法是将对数功率谱进行反傅里叶变换后得到的,它可以进一步将声道特性和激励特性有效的分开,因此可以更好的揭示语音信号的本质特征。3语音信号的倒谱分析在第一章介绍的语音生成机理中,曾提到语音信号的生成模型可以看作是声门的激励信号和声道的冲激响应的卷积。在语音信号处理的实际应用中,很多场合需要根据语音信号反过来求解声门信号或声道冲激响应。这就需要在知道卷积结果的基础上,利用“解卷”求得参与卷积的各个信号,同态处理是常用的解卷方法。由于语音信号进行同态分析后得到的是语音信号的倒谱参数,因此同态分析也叫倒谱分析。Z变换可以将卷积信号转变为乘积信号,而取对数运算可以将乘法转化为加法,卷积同态处理正是采用这样的一种思路,具体过程如下:1输入信号()()()2Z变换()(())(()())(())(())()()3取对数运算̂()(())(()())(())(())̂()̂()4逆Z变换̂()(̂())(̂()̂())̂()̂()5̂()为加性信号,经过线性系统的处理得到:̂()̂()̂()6对̂()作Z变换:̂()(̂())(̂()̂())̂()̂()7指数运算()(̂())(̂()̂())(̂())(̂())()()8逆Z变换()(())(()())()()步骤1~4称作特征系统,记为();6~8步骤称为逆特征系统,记为()。我们称其中的时域序列̂()为信号序列()的“复倒频谱”,简称“复倒谱”,也叫对数复倒谱。即:̂()(((())))((()))̂()所在的时域被称作复倒谱域。又注意到,有̂()(())(|()|)(|()|)(())如果仅对()实部作逆Z变换:()((|()|))称()为“倒频谱”,简称“倒谱”,也称“倒频”。值得注意的是,倒谱不能通过逆特征系统还原成自身,因为在计算中相位信息丢失了。在绝大多数的应用场合,特征系统和逆特征系统中的正反Z变换都可以用正反离散傅里叶变换来代替,此时倒谱的定义变为()((|(())|))图4清音和浊音信号的倒谱图对比在频域内,语音信号的短时谱等于激励源频谱与滤波器频谱的乘积,浊音信号的短时谱中包含的快变化的周期性细致结构,必定对应着周期性脉冲激励的基频和各次谐波。语音的倒谱是将语音的短时谱取对数后再进行IDFT得到的,所以浊音信号的周期性激励反映在倒谱上是同样周期的冲激。因此,可从倒谱波形中估计出基音周期。一般把倒谱波形中第二个冲激,认为是对应激励源的基频,即基音周期。4基于matlab软件实现语音信号基音周期分析弄清了倒谱的基本原理之后,我们接下来用倒谱法对一段语音进行周期性的检测。首先,对于一段背景环境较为安静的语音信号,截取其中浊音50ms时间的信号,对它进行DFT、取对数、IDFT的运算,分析得到的倒谱波形,得到该段语音信号的基音频率。我们针对44.1KHz采样频率,16点量化周期的一段女声做上述处理。先截取女生发音“自习”二字中,“自”字浊音部分对应的波形,保存为“50ms441k.wav”文件,接下来在matlab下对该文件进行倒谱分析。Matlab软件提供了倒谱计算函数rceps(倒谱)和cceps(复倒谱),为了验证对倒谱概念的理解,我自己编写了倒谱计算函数。源程序如下:%=============================================%%=============自己编写程序实现倒谱计算==========%%=============================================%[y,fs,nbits]=wavread('50ms441k.wav');%语音文件44.1KHz采样,持续时间50ms,双通道y1=y(:,1);%为了计算的方便,我们只使用其中的单通道部分%接下来进行倒谱运算,先做fft,再取对数,再做ifftA=fft(y1);A1=abs(A);C1=log(1+A1);C=abs(ifft2(C1));figure,plot(C);%=============================================%因为44.1kHz采样,持续时间50ms,所以最终,根据matlab显示,数组y1的大小为2217点。如下图所示,为语音信号对应的倒谱波形图:图5信号倒谱波形观察倒谱图的效果,发现曲线不是很平滑。或许将环境中的高斯噪声去掉之后,效果会更好。所以,接下来,我用cooledit去除环境噪声(效果噪声消除消噪器),前后效果如右图所示。把背景噪声去掉之后,我们截取两个波形中相同时间段对应的50ms波形,做同样的倒谱分析,对比效果图如下图所示:图6去除噪声前后波形对比图7去除噪声前后倒谱波形效果对比由图可以看出,去除噪声之后,倒谱图波形已经比较平滑,不再受到噪声的干扰,能够真实的反应基音周期。从图中,我们可以读出,基因周期为65Hz。5总结本文以语音信号的基音检测为研究对像,在语音形成、数字处理、时频域分析的基础上,对倒谱基音检测的方法的原理进行了分析。通过MATLAB软件实验仿真,在cooledit软件去噪的帮助下,能够较为准确的识别出基音周期。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功