语音处理大作业

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

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

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

资源描述

信号与系统-MATLAB综合实验之语音处理1谷源涛应启珩郑君里二〇一一年七月一日1摘录于草稿,可能和纸质出版物不完全相同。本版本已经更正了勘误表指出的错误。目录第一章语音合成1第一节背景知识....................................11.1.1发声机理.................................11.1.2语音信号的时域特征...........................21.1.3语音模型.................................31.1.4分析和合成语音..............................5第二节练习题.....................................61.2.1语音预测模型...............................61.2.2语音合成模型...............................91.2.3变速不变调................................101.2.4变调不变速................................101.2.5逆向工程.................................10I第一章语音合成本章中将基于数字滤波器和z变换等基础知识,应用第一篇讲授的MATLAB编程技术,在语音分析合成领域做一些练习。通过本章的练习,可以增进对z变换和滤波器的理解,熟练运用MATLAB基本指令。本章包括两部分,第一部分介绍语音生成和分析的基本知识,第二部分给出详细的练习内容和编程步骤。相信读者对此会产生强烈兴趣。第一节背景知识1.1.1发声机理从物理原理来看,语音信号是由肺挤压出的空气激励发声器官振动产生的。发声器官包括喉、声道和嘴。喉位于气管的上端,实际上是由气管末端的一圈软骨构成的一个框架。喉中有两片肌肉,它们和周围的韧带称为声带。声带张开时空气可以自由地流过喉和气管,如正常呼吸时;声带闭合,将喉封住,所以吃东西时食物不会落入气管。两片声带之间的空隙称为声门。说话时声带相互靠拢但不完全封闭,这样声门变成一条窄缝,当气流通过时其间压力减小,从而声带完全合拢使气流不能通过;在气流被阻断时压力恢复正常,因而声带间形成空隙,气流再次通过。这一过程周而复始,就形成了一串周期性的脉冲气流送入声道。如图1.1所示。这个脉冲串的周期称为“基音周期”,其倒数是“基音频率”。男性说话的基音频率在60-200Hz范围内,女性和小孩在200-450Hz之间。以上这种方式发出的音就是浊音。෎䷇਼ᳳ图1.1:典型的声门脉冲串波形气流从喉向上经过口腔或者鼻腔后向外辐射,经过的传输通道称为声道。气流流过声道犹如通过一个具有某种谐振特性的腔体。如图1.2所示。输出气流的频率特性既取决于1第一节背景知识第一章语音合成声门脉冲串的特性,又取决于声道特性。声道包括口腔和鼻腔两部分,对成年男性而言,口腔段约17cm,鼻腔段约13cm,气流在软腭的控制下分别流向这两个通道。所以声道的截面积是变化的,而声道的频率特性主要取决于声道截面的最小值(收紧点)出现的位置,除了软腭控制一些外,收紧点主要由舌头的位置来决定。图1.2:声管构造示意图图1.3:级联无损声管模型语音的另一种产生方式是声门完全闭合,此时声道不是受声门周期脉冲气流的激励,而是利用口腔内存有的空气释放出来而发声。该气流在口腔中形成湍流,因而表现为随机噪声。这种方式发出的音就是清音。(男生如果把手放在脖子前面喉结上部的倒三角位置,发浊音“啊”的音时可以感觉到声管的震动,发清音“是”的音时就感觉不到。)1.1.2语音信号的时域特征一段女声发音“MATLAB”的波形如图1.4所示,可以看出语音能量的起伏从而大致分辨出话语中的每个音节在此波形中的位置。我们把时间轴拉宽后在图1.5中观察两个细节部分,可以看出语音的浊音段能量较大(右上图),有明显的周期特征,而清音段能量很小(右下图),类似于噪声随机变化。0.10.20.30.40.5−3−2−10123t(seconds)图1.4:女声发音“MATLAB”0.1550.160.1650.170.1750.18−2020.270.280.290.30.31−202t(seconds)图1.5:女声发音“MATLAB”细节2第一节背景知识第一章语音合成1.1.3语音模型语音生成模型通过对声管的研究,发现它可以用若干段截面积不等的均匀管道级联起来描述,如图1.3,一般称作级联无损声管模型。采用流体力学的方法可以证明每一截均匀管道能够用一个单极点模型来近似,这样N段管道组成的声管就可以用一个N阶全极点滤波器表述,即V(z)=G∏Nk=1(1pkz1)=G1∑Nk=1akzk(1.1)对于典型的男声,N=10,所有的极点pi要分别构成共轭对以保证faig系数都是实数。再综合考虑清音信号,就可以得到语音信号产生的离散语音模型,如图1.6所示。਼ᳳ㛝ކথ⫳఼෎䷇乥⥛ໄ䮼㛝ކ῵ൟG(z)⌞䷇⏙䷇ᓔ݇䱣ᴎాໄথ⫳఼ໄ䘧῵ൟV(z)䕤ᇘ῵ൟR(z)䇁䷇ֵো⌞䷇๲Ⲟ⏙䷇๲Ⲟ图1.6:产生语音信号的离散时域模型准确的清浊音判决远远超出了本书的范畴,因而我们将对上述模型进行充分简化。首先去掉随机信号激励部分,我们认为激励信号是一个脉冲序列,不考虑有无周期。其次去掉声门脉冲模型和口唇的辐射模型,从而得到图1.7所示最简单的语音模型,现在我们用z变换的知识就可以应对了。㛝ކᑣ߫থ⫳఼ໄ䘧῵ൟVz䇁䷇ֵো图1.7:简化的语音生成模型假设激励信号用e(n)表示,语音信号用s(n)表示,根据全极点模型表达式,有s(n)=N∑k=1aks(nk)+Ge(n)(1.2)从而我们可以用声管模型对激励信号进行滤波得到语音信号。3第一节背景知识第一章语音合成语音预测模型我们可以采集到语音信号s(n),也已经知道了它的生成模型如图1.7所示,但不知道激励e(n)和模型V(z)中的faig系数。根据原著第七章7.7节,我们知道这是一个解卷积问题,而且它是更复杂的盲解卷,因为激励和滤波器系数两者都不知道。如果进一步做些合理的假设,这个问题还是可以解决的,比如约束e(n)是一个周期脉冲序列和一个高斯白噪声序列之和,我们就可以用一些信号处理方法,如自相关法和自协方差法求出系数faig来,并且有Durbin递推算法和Schur递推算法等快速方法。假设我们已经知道了系数faig,那么将图1.7的输入和输出对换,就构成了语音的预测模型,即语音信号s(n)送入预测滤波器,得到预测残差e(n),e(n)=s(n)N∑k=1aks(nk)这种预测模型在通信中用来增加每个信道上传输语音信号的通道数。假设信号的发端和收端都知道预测系数faig,那么发端只需要把残差e(n)传到收端即可,因为收端可以用e(n)作为上述差分方程的激励得到重建语音。在发端,语音s(n)是滤波器的输入,而误差e(n)是输出。事实上,faig系数当然也需要从发端传到收端,但因为语音具有短时平稳性,即在短时间内(比如10毫秒),faig系数可以认为不发生变化,所以也不必太频繁的传输,因而采用预测技术后,总是可以大幅度地降低语音的带宽。这种通过线性预测方法压缩语音数据量的技术叫做线性预测编码(LinearPredictionCoding,LPC)技术。语音重建模型如果已知激励信号x(n)(先不考虑是如何得到的)和滤波器系数faig,我们就可以利用语音生成模型重建语音了,ˆs(n)=x(n)+N∑k=1akˆs(nk)但我们把上述模型称作语音重建模型,为了同生成模型区分开,ˆs(n)称为重建语音。如果x(n)正好等于e(n),那么重建语音就和原始语音s(n)完全相同。语音的非平稳性(虽然短时平稳)导致预测系数faig是时变的,一般每10-20毫秒就会发生一些变化以产生不同的音节。在这种情况下,滤波过程也要分段进行,即每次用不同的滤波器系数,但相邻两次滤波必须要保持滤波器的状态不发生变化。谐振和共振峰频率语音生成模型的每一对共轭极点都对应一个衰减的正弦信号的特征响应。例如一对共轭极点jpijejΩ在时域冲激响应中的贡献是Ajpijncos(Ωn+φ)。其中极点幅度决定衰减速度,幅角决定振荡频率。对语音合成,用数字的正弦信号表示抽样后的连续正弦信号。在这种情况下,模拟频率和数字频率的关系是Ω=ωT,其中T表示抽样间隔,ω表示模拟频率(弧度),对应的4第一节背景知识第一章语音合成f=ω/2π称作共振峰频率,它定义了声管的谐振频率。典型的男声(N=10)可以用5个共振峰频率来描述。当模型参数变化时,共振峰频率也随着变化,从而产生不同的声调。1.1.4分析和合成语音我们的分析和合成系统如图1.8所示。䳔㽕Դخⱘ໘⧚㒓ᗻ乘⌟㋏㒳ॳྟ䇁䷇ໄ䘧῵ൟV(z)!ia䞡ᓎⱘ䍷ੇ䇁䷇Ⓒ⊶఼㋏᭄#en#xn䳔㽕Դخⱘ໘⧚图1.8:分析和合成语音的系统框图首先要分析一段(一般是10毫秒)语音得到它的最佳faig系数。给定这些系数后,我们就可以用适当的输入来合成语音。对于浊音信号,一种可取的激励模型就是以特定频率重复的单位样值序列,这个频率就是基音频率。对清音,最好选择随机噪声或白噪声作为输入。但在不做清浊音判决的情况下,全部采用周期激励的合成质量也是可以接受的(我们就是这么做的)。分析过程是:先将语音采样信号以10毫秒进行分段,然后对得到的每段数据进行统计分析并计算相邻样点的相关性,最终求得最佳预测系数。合成过程就是利用这些预测系数,以及周期的单位样值序列作为输入,依次得到每段合成语音。变速不变调变速不变调技术广泛应用于消费类电子产品,如英语复读机等。所谓变速不变调,是指声音播放时,速度的改变不会导致音调的变化。一般来说,用随身听听音乐,快进播放和慢速播放,其音调是不一致的,如快进播放,频率会变高,男声听起来会感觉是女声。(原因是什么?想一想Ω=ωT,如果Ω不变T却减小了,则ω会怎样?)为了实现变速不变调,首先需要将表示“调”的内容从语音中分离出来,由前述语音预测模型,表示“调”的有两个部分,一是共振峰频率,即预测模型的参数;二是基音周期,即激励信号的参数。下面的工作就是在不改变这两种参数的前提下改变数据长度的问题了。即将对应于10毫秒的80个样点的激励变成对应于20毫秒的160个样点(注意保持单位样值的周期不变),在这20毫秒内保持预测模型系数不变,不就可以合成出20毫秒的合成语音了么?新语音的声调和原有语音是完全相同的,只不过时间变长了而已。变调不变速前面说过,最简单的男声变女声只要让随身听快进播放就可以了。但快进播放改变的不仅是声调,语速也会发生很大变化,快得让人听不清楚。为了解决这个问题,就需要用5第二节练习题第一章语音合成变调不变速的技术。同上分析过程一样,还是需要在共振峰频率和基音周期上做改变。女声和男声的最大区别是频率高,一方面表现在基音频率高,另一方面共振峰对应的谐振频率也更高一些,所以我们可以考虑将激励信号的频率增加(注意不改变信号长度),同时将共振峰频率也相应增大一些(即极点的幅角绝对值增大,或者说上半平面的极点逆时针旋转,下半平面的顺时针旋转,但注意两者都要旋转同样角度而且不要转过负实轴)。这样得到的合成语音会更“女声”一些。后两项技术是典型的语音信号数字处理技术。它们的基础是z变换和线性预测模型,用传统的模拟信号处理方法不可能实现,这正体现了数字信号处理的优点。最后还需指出,这两项技术并不矛盾,事实上,它们可以完美地结合在一起,你能做出一种速度和音调都发生变化的合成语音算法来么?第二节练习题1.2.1语音预测模型(1)给定e(n)=s(n)a1s(n1)a2s(n2)假设e(n)是输入信号,s(n)是输出信号,上述滤波器的传递函数是什么?如果a1=1.3789,a2=0.9506,上述合成模型的共振峰频率是多少?用zplane,freqz,impz分别绘出零极点图,频率响应和单位样值响应。用filter绘出单位

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

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

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

×
保存成功