《基于MATLAB的语音倒谱分析22829.pdf》由会员分享,可在线阅读,更多相关《基于MATLAB的语音倒谱分析22829.pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 海 南 大 学 毕 业 论 文(设计)题 目:基于 MATLAB 的语音倒谱分析 学 号:姓 名 年 级 学 院:专 业:指导教师:完成日期:2012 年 6 月 基于 MATLAB 的语音倒谱分析 I 摘 要 语言是人类最重要的交流工具,它自然方便、准确高效。随着社会的不断发展,各种各样的机器参与了人类的生产活动和社会活动,因此改善人与机器之间的关系,使人对机器的操纵更加便利就显得越来越重要。随着电子计算机和人工智能机器的广泛应用,人们发现,人和机器之间最好的通信方式是语言通信,而语音是语言的声学表现形式。要使机器听的懂人话,就要对语音信号进行处理。随着信息技术的不断发展,尤其是网络技术的
2、日益普及和完善,语音信号处理技术正发挥着越来越重要的作用。为了寻找具有良好性能的特征及提取重要参数以提高识别系统性能,各种科学的算法应运而生,倒谱法作为信号处理的重要的方法之一,能够得到比较好的识别性能。本文以 MATLAB 为平台,通过编程实现对语音信号的倒谱分析。首先,本文简要说明了倒谱与语音的相关理论原理,包括倒谱原理和语音的组成元素,为之后的进一步研究奠定理论基础。然后,对语音倒谱各个方面的应用进行了MATLAB 编程,得到了语音基音检测和共振峰检测的实验仿真结果。关键词:语音信号;倒谱;MATLAB;基音检测;共振峰检测;基于 MATLAB 的语音倒谱分析 II Abstract L
3、anguage is one of the most important communication tools,it is convenient and efficient.With the continuous development of the society,a variety of machines are used in the humans production and social activities,thus improving the relationship between man and machine makes the machine more convenie
4、nt what becomes more and more important.With the wide application of electronic computers and artificial intelligence machine,it was discovered that language communication is the best means of communication between man and machine,while the voice is the acoustic manifestations of the language.To mak
5、e the machine understands people,it is necessary to process the speech signal.With the continuous development of IT,especially the growing popularity of network technology and improvement of the voice signal processing technology is playing an increasingly important role,in order to find a good perf
6、ormance characteristics and extract important parameters to improve the performance of the recognition system,a variety of scientific algorithms have emerged,the cepstrum,as the signal processing one of the important methods,can get better recognition performance.MATLAB as a platform,can achieve cep
7、strum analysis of the speech signal by programming.First,the article briefly described the itheoretical principles of cepstrum and voice,including the the cepstrum principles and elements of voice,which laied the theoretical foundation for the further research.Then the speech cepstrum application in
8、 all aspects was programmed in MATLAB,thus we got voice pitch detection,peak detection experiment simulation results by simulation.Keywords:speech signal;cepstrum;MATLAB;pitch detection;resonance peak detection;基于 MATLAB 的语音倒谱分析 III 目 录 1 绪论.1 1.1 目的及意义.1 1.2 语音信号研究现状.1 1.3 主要研究内容.3 2 倒谱的基本原理.5 2.1
9、复倒谱和倒谱的定义.5 2.2 复倒谱的计算方法.6 2.3 复倒谱与倒谱的关系.9 3 语音信号的组成分析.11 3.1 语音的两个分量.11 3.2 语音类型.13 4 语音倒谱的应用及 MATLAB 仿真.15 4.1 倒谱的 MATLAB 实现.15 4.2 倒谱在同态信号处理系统的应用.16 4.3 倒谱在基音检测方面的应用.17 4.4 倒谱在共振峰检测方面的应用.21 5 总结.25 致 谢.26 参考文献.27 附录 A.28 附录 B.28 附录 C.30 基于 MATLAB 的语音倒谱分析 1 1绪论 1.1 目的及意义 由于语言是人们在日常生活中的主要交流手段,因此语音信
10、号处理在现代信息社会中占用重要地位。随着语音信号处理技术在实际生活中的应用的不断发展,语音信号处理技术已经越来越贴近人们的生活。目前,语音信号处理技术处于蓬勃发展的时期,不断有新的产品被研制开发,市场需求逐渐增加,具有良好的应用前景。语音信号处理虽然包括语音通信,语音合成,语音识别等内容,但是其前提和基础是对语音信号进行分析。在语音信号处理中可以常用倒谱域来提取语音的基频和共振峰,用于语音识别。倒谱系数是一种表征语音特征非常有效的参数矢量,它能将语音信号的声门激励信息及声道响应信息分离开来,也就是说倒谱具有解卷的特性,因此倒谱是说话人识别和语音识别中最常用的特征参数之一。由于倒谱在语音信号处理
11、中的重要地位,倒谱的应用也越来越广泛。例如可应用于通信、建筑声学、地震分析、地质勘探和语音处理等领域。尤其在语音处理方面,应用复倒谱算法可制成同态预测声码器系统,用于高度保密的通信。1.2 语音信号研究现状 声学是物理学的一个分支学科,而语言声学又是声学的一个分支学科。它主要的研究方向是人的发声器官机理,发声器官的类比线路和数学模型,听觉器官的特性(如听阈、掩蔽、临界带宽、听力损失等),听觉器官的数学模型,语音信号的物理特性(如频谱特性、声调特性、相关特性、概率分布等),语音的清晰度和可懂度等。当今通信和广播的发展非常迅速,而语言通信和语言广播仍然是最重要的部分,语言声学则是这些技术科学的基础
12、。语言声学的发展和电子学、计算机科学有着非常密切的关系。在它发展的过程中,有过几次飞跃。第一次飞跃是 1907 年电子管的发明和 1920 年无线电广播的出现。因为有了电子管放大器,很微弱的声音也可以放大,而且可以定量测量。从而使电声学和语言基于 MATLAB 的语音倒谱分析 2 声学的一些研究成果,扩展到通信和广播部门。第二次飞跃应该是在 20 世纪 70年代初,由于电子计算机和数字信号处理的发展,人们发现:声音信号特别是语音信号,可以通过模数转换器(A/D)采样和量化,它们转换为数字信号后,能够送进计算机.这样就可以用数字计算方法,对语音信号进行处理和加工.。例如频谱分析可以用傅里叶变换或
13、快速傅里叶变换(FFT)实现,数字滤波器可以用差分方程实现.在这个基础上,逐渐形成了一门新学科语音信号处理。它的发展很快,在通信、自动控制等领域,解决了很多用传统方法难以解决的问题。在信息科学中占有很重要的地位,其中语音识别的研究也开始了飞速的发展。语音识别的研究工作可以追溯到20 世纪 50 年代 AT&T 贝尔实验室的 Audry系统,它是第一个可以识别十个英文数字的语音识别系统。但真正取得实质性进展,并将其作为一个重要的课题开展研究则是在 60 年代末 70 年代初。这首先是因为计算机技术的发展为语音识别的实现提供了硬件和软件的可能,更重要的是语音信号线性预测编码(LPC)技术和动态时间
14、规整(DTW)技术的提出,有效的解决了语音信号的特征提取和不等长匹配问题。这一时期的语音识别主要基于模板匹配原理,研究的领域局限在特定人,小词汇表的孤立词识别,实现了基于线性预测倒谱和DTW 技术的特定人孤立词语音识别系统;同时提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论。随着应用领域的扩大,小词汇表、特定人、孤立词等这些对语音识别的约束条件需要放宽,与此同时也带来了许多新的问题:第一,词汇表的扩大使得模板的选取和建立发生困难;第二,连续的语音中,各个音素、音节以及词之间没有明显的边界,各个发音单位存在受上下文强烈影响的协同发音(Co-articulation)现象;第三,非特定人识别
15、时,不同的人说相同的话相应的声学特征有很大的差异,即使相同的人在不同的时间、生理、心理状态下,说同样内容的话也会有很大的差异;第四,识别的语音中有背景噪声或其他干扰。因此原有的模板匹配方法已不再适用。20 世纪 90 年代前期,许多著名的大公司如 IBM、苹果、AT&T 和 NTT 都对 语音识别系统的实用化研究投以巨资。语音识别技术有一个很好的评估机制,那就是识别的准确率,而这项指标在 20 世纪 90 年代中后期实验室研究中得到了不断的提高。比较有代表性的系统有:IBM 公司推出的 ViaVoice 和基于 MATLAB 的语音倒谱分析 3 DragonSystem公司的Naturally
16、Speaking,Nuance公司的NuanceVoicePlatform 语音平台,Microsoft 的 Whisper,Sun 的 VoiceTone 等。其中 IBM 公司于 1997 年开发出汉语 ViaVoice 语音识别系统,次年又开发出可以识别上海话、广东话和四川话等地方口音的语音识别系统 ViaVoice98。它带有一个 32000 词的基本词汇表,可以扩展到 65000 词,还包括办公常用词条,具有“纠错机制”,其平均识别率可以达到 95%。该系统对新闻语音识别具有较高的精度,是目前具有代表性的汉语连续语音。我国语音识别研究工作起步于五十年代,但近年来发展很快。研究水平也从
17、实验室逐步走向实用。从 1987 年开始执行国家 863 计划后,国家 863 只能计算机专家组为语音识别技术研究专门立项,每两年滚动一次。我国语音识别技术的研究水平已经基本上与国外同步,在汉语语音识别技术上还有自己的特点与优势,并达到国际先进水平。中科院自动化所、声学所、清华大学、北京大学、哈尔滨工业大学、上海交通大学、中国科技大学、北京邮电大学、华中科技大学等科研机构都有实验室进行过语音识别方面的研究,其中具有代表性的研究单位为清华大学电子工程系与中科院自动化研究所模式识别国家重点实验室。清华大学电子工程系语音技术与专用芯片设计课题组,研发的非特定人汉语数码串连续语音识别系统的识别精度,达
18、到 94.8%(不定长数字串)和 96.8%(定长数字串)。在有 5%拒识率情况下,系统识别率可以达到 96.9%(不定长数字串)和 98.7%(定长数字串),这是目前国际最好的识别结果之一,其性能已经接近实用水平。研发的五千词邮包对非特定人连续语音识别系统的识别率达到 98.73%;并且可以识别普通话与四川话两种语言,达到实用要求。中科院自动化所及其所属模式科技公司 2002 年发布了他们共同推出的面向不同计算平台和应用的“天语”中文语音系列产品PattekASR,结束了中文语音识别产品自 1998 年以来一直由国外公司垄断的历史。1.3 主要研究内容 本文研究的是语音信号的倒谱分析,首先第
19、一章的绪论部分,介绍了本文的研究目的与意义、语音信号的研究现状和本文的研究内容。第二章介绍了倒谱的理论知识。详细叙述了倒谱的定义以及计算方法,将倒基于 MATLAB 的语音倒谱分析 4 谱分为实倒谱和复倒谱,并区分实倒谱与复倒谱之间的关系,由此奠定了倒谱分析研究的基础。接着第三章介绍语音的组成,分别利用倒谱的定义求解了声门激励信号与声道冲激响应序列这两个语音卷积分量的复倒谱,并得出相应的结论,接着对语音的发音类型作了理论阐述。最后第四章具体研究了倒谱在语音信号处理中的简单应用,主要是语音信号识别的参数提取。首先通过输入一段语音,并将其导入到MATLAB 程序中进行语音的处理,完成语音在 MAT
20、LAB 中的倒谱实现,接着介绍倒谱在同态信号处理系统中的作用及同态信号处理系统的工作原理,然后是语音信号的主要应用,也是语音倒谱分析的重点内容,包括基音检测和共振峰检测两个方面,作为语音信号的重要参数,分别进行了详细的设计,为了清晰的描述程序的编写过程,对设计思路方法都进行了完备的阐述,并依据设计的算法画出了逻辑流程图,从而在 MATLAB 中完成程序的编写,最后通过对仿真结果进行了理论的分析,得出了语音的参数量值,完成了对语音信号倒谱分析的内容。基于 MATLAB 的语音倒谱分析 5 2 倒谱的基本原理 倒谱(CEP)参数是重要的语音特征参数,它是对语音进行同态处理的产物。在提取由于载波传递
21、的信号特性时,用Time-Cepstrum 分析会非常有效,能把相关的特性给提取出来。Cepstrum 在语音识别特征参数提取中用到很多,这是因为语音本质的东西往往是声带的振动,然后经过声道和口腔的调制才产生我们可以听到或拾取的声音。通过Cepstrum 分析语音就能将这一本质性的特征参数提取出来。而要熟练运用倒谱法,还是要从基本理论入手。2.1 复倒谱和倒谱的定义 复倒谱的概念不是唯一的,一般有三种定义。定义如下:其中假设信号为x(n)复倒谱的 Z 变换定义 复倒谱的傅里叶变换定义 复倒谱的离散傅立叶变换定义 复倒谱的定义可以用图 2.1 表示 11lnx(n)ZZ(x(n)ZX(z)()(
22、ln)(jweXIFTnxFTIFTnxdweeXeXIFTnxenxnxFTeXjwnjwjwNnjwnjw)(21)()()()()(10)()(ln)(kXIDFTnxDFTIDFTnx1010)(1)()()()()(NknkNNnnkNWkXNkXIDFTnxWnxnxDFTkX基于 MATLAB 的语音倒谱分析 6 图 2.1 三种复倒谱定义的框图表示 有了复倒谱的定义后,倒谱的概念就不会复杂了。现在我们以复倒谱傅里叶变换定义为例来定义倒谱,将 取对数有 为复数,则只考虑其实部。令|)(|)(jweIFTnc 图 2.2 倒谱的实现框图 x(n)的对数幅度谱的傅立叶逆变换,即图 2
23、.2 中的 c(n)称为“倒频谱”或“倒谱”c(n)就是要求取的语音信号倒谱系数。2.2 复倒谱的计算方法 在复倒谱分析中,Z 变换后是复数,取对数时是复对数运算,此时存在相位多值性问题相位卷绕。取信号 为例进行说明 FT ln|.|IFT x(n)c(n)Z ln Z-1 FT ln IFT DFT ln IDFT x(n)x(n)x(n)(arg|)(|)(jweXjjwjweeXeX)(arg|)(|ln)(jwjwjweXjeXeX)(jweX)()()(21nxnxnx基于 MATLAB 的语音倒谱分析 7 由以上倒谱计算的流程可以得到其倒谱的幅度:相位:由上式虚部可知相位有多值性
24、相位可以写成:其中 k为整数,所以相位多值,这种现象被称为相位卷绕。避免相位卷绕的方法主要有:微分法、最小相位信号法。(1)微分法 由傅里叶变换的微分特性 改写:)()()(21nxnxnx求傅里叶变换)()()(21jjjeXeXeX求复对数)(ln)(ln)(ln21jjjeXeXeX)(ln)(ln)(ln21jjjeXeXeX()ln()()ln()lnarg()|()2|jjjjjx nIFTX eIFT X eX eXXjkeek2)()(是主值20)(njnjennxeXddj)()(njnjenxneXddj)()(njnjjjjenxneXeXddjeXddjeXddj)()
25、()()(ln)(基于 MATLAB 的语音倒谱分析 8 图 2.3 利用傅立叶变换的微分特性求复倒谱的框图 避免了求复对数的问题,但其缺点是会产生严重的频谱混叠。原因:频谱中的高频分量比)(nx有所增加,所以仍使用)(nx原来的取样率将引起混叠;混叠后求出的)(nx 就不是)(nx的复倒谱了。(2)最小相位信号法 1)这是由倒谱c(n)求复倒谱 的方法。2)最小相位信号法是由最小相位序列的复倒谱性质和 Hilbert 变换的性质推出来的。3)适用条件:最小相位信号序列 4)最小相位信号序列:信号的零极点全部在 z 平面单位圆内。其复倒谱序列是因果序列。进一步引入辅助因子 则:DFT 乘 n
26、DFT IDFT 除 n x(n)(jweX nx(n)(jweXdwdj n)(nx)(nx)(nnx)(nx)0()(2)0()()0(0)(nnxnnxnnxee)0(2)0(1)0(0)(nnnng)()()(nxngnxe基于 MATLAB 的语音倒谱分析 9 图 2.4 因果序列的分解与恢复 结论:1.一个因果序列可由其偶对称分量来恢复;2.由倒谱的定义可知,的偶对称分量)(nxe就是。)(nc 图 2.5 最小相位法求复倒谱 2.3 复倒谱与倒谱的关系 图 2.6 复倒谱与倒谱关系框图 DFT 复对数 ln()IDFT x(n)(jweX|)(|ln)(jwjwReXeX(虚部)
27、)()(1weXjw )(nxe)0(2)0(1)0(0)(nnnng)(nxFT ln|.|IFT FT ln IFT c(n)x(n)(nx x(n)x(n)基于 MATLAB 的语音倒谱分析 10 1)“倒频谱”或称“倒频”的量纲是时间,记作“quefrency”。(由“frequency”转变来的新词)2)复倒谱涉及的是复对数运算,而倒谱是实数的对数运算。3)倒频谱不含信号的相位信息。因为人的听觉对语音的感觉特征主要包含在幅度信息中,而相位信息不起作用。4)倒谱经过正逆变换后,一般不能还原成自身,计算倒谱的过程中,丢失了相位信息。5)已知一个实数序列 x(n)的复倒谱 nx,可以由其求
28、出倒谱 c(n)。任何一个序列可写成偶对称序列和奇对称序列之和。)()()(0nxnxnxe)()(ln)(jweXIFTnxFTIFTnx)()(21)(),()(21)()()(),()(000nxnxnxnxnxnxnxnxnxnxeee)()(ln)(jweXIFTnxFTIFTnx基于 MATLAB 的语音倒谱分析 11 3 语音信号的组成分析 语音是可以看作由两个卷积分量组成,即声门激励信号和声道冲激响应序列。不同的声门激励模型可产生不同的典型语音,如浊音、清音。语音模型是由声门激励模型和声道模型卷积而成的,声道模型在频域表征语音频谱的包络结构,共振峰结构包含在声道模型中。经过复倒
29、谱分析,原本呈现卷积关系的声门激励模型和声道模型在倒频域呈加性关系。3.1 语音的两个分量 语音可以看成是由声门激励信号和声道冲激响应序列卷积而成的如图3.1,所以要想对语音信号进行处理,首先要了解语音分量的倒谱。图 3.1 语音信号产生模拟框图(1)声门激励信号 发清音时,声门激励是能量较小、频谱均匀分布的白噪声。发浊音时,声门激励是以基音为周期的冲激序列。主要考察浊音时的声门激励信号的复倒谱,浊音 x(n)的数学表示式 其中ra是幅度因子,pN为用样点数表示的基音周期 下面求浊音声门激励的复倒谱 步骤:1.对 x(n)进行 Z 变换 声道冲激响应序列 声门激励信号 语音信号 MrPrrNn
30、anx0)()(MrNrMNMNrNnrnnppppzaazaazaaazaznxzX0100010)(1.1)()(基于 MATLAB 的语音倒谱分析 12 2.对上式取对数并用泰勒公式展开 3.对上式进行逆 Z 变换 改写为:结论:1.一个有限长的周期冲激序列。其倒谱也是一个周期冲激序列,且周期不变,只是变为无限长序列。2.其振幅随 k 的增大而减小,衰减速度比原序列要快。3.利用上述性质,可以用“高时窗”从语音信号的频谱中提取浊音激励信号的倒谱,从而提取出基音。(2)声道冲激响应序列 若用极零模型来描述声道冲激序列)(nx,则 求对数:MrkkNkrMrNrppzkaazaazXzX11
31、0110)(ln)(1lnln)(ln)(MrpkkkNnaknazXFnxr1101)(1)(ln)()(00ln)1(11kakMrkrk0011111111)1()1()1()1()(pkkpkkmkmkkkzdzczbzaAzXii0)()(kpkkNnnx)(rNazp0011111111)1()1()1()1(ln)(ln)(pkkpkkmkkmkkzdzczbzaAzXzXii基于 MATLAB 的语音倒谱分析 13 都小于 1 用泰勒公式展开 然后求逆 Z 变换 结论:是双边序列,存在于 的范围内。由于 均小于 1,所以 nx为衰减序列,即随|n|的增大而减小。短时窗提取声道冲
32、激响应序列的复倒谱是很有效的。最小相位序列的复倒谱是因果序列。最大相位序列的复倒谱是反因果序列。3.2 语音类型 图 3.2 语音生成机理模型 kkkkdcba、)1()1ln(111mzznmmznnn)1()1ln(1mzznmmznnz001111)0()0()0(ln)(pknkmknkpkmknknknndnbnnancnAnxii)(nxnkkkkdcba、基于 MATLAB 的语音倒谱分析 14 由图 3.2,空气由肺部排入喉部,经过声带进入声道,最后由嘴辐射出声波,这就形成了语音。在声门(声带)以左,称为“声门子系统”,它负责产生激励振动;右边是“声道系统”和“辐射系统”。当发
33、不同性质的语音时,激励和声道的情况是不同的,它们对应的模型也是不同的。1 浊音 空气流经过声带时,如果声带是绷紧的,则声带将产生张弛振动,即声带将周期性地启开和闭合。声带启开时,空气流从声门喷射出来,形成一个脉冲,声带闭合时相应于脉冲序列的间隙期。因此,这种情况下在声门处产生出一个准周期脉冲状的空气流。该空气流经过声道后最终从嘴唇辐射出声波,这便是浊音语音。这个准周期脉冲的周期即为基音周期。声门处产生的准周期脉冲其周期、宽度以及形状与声带的长度、厚度及张力等参数有关。声带越短、厚度越薄、张力越大,则听起来感觉的音调就越高,也就是浊音的基音频率越高。因此,基音频率是由声带张开闭合的周期所决定。男
34、性的基音频率一般为 50250Hz,女性基音频率为 100500Hz。2 清音 空气流经过声带时,如果声带是完全舒展开来的,则肺部发出的空气流将不受影响地通过声门。空气流通过声门后,会遇到两种情况。一种情况是,如果声道的某个部位发生收缩形成了一个狭窄的通道,当空气流到达此处时被迫以高速冲过收缩区,并在附近产生出空气湍流,这种湍流空气经过声道后便形成所谓摩擦音或清音。令一种情况是,如果声道的某个部位完全闭合在一起,当空气流到达时便在此处建立起空气压力,闭合点突然开启便会让气压快速释放,经过声道后便形成所谓爆破音。这两种情况下发出的是清音。基于 MATLAB 的语音倒谱分析 15 4 语音倒谱的应
35、用及 MATLAB 仿真 表征一个人声音个性的参数主要有反映声道特性的共振峰频率和反映声门特性的基音参数。为了能够提取出这些参数,就要借助一些工具,本节通过 MATLAB 完成倒谱在语音处理的各方面应用。4.1 倒谱的 MATLAB 实现 本实验所用的语音样本是 Cooledit 在普通室内环境下录制的一段语音,采样频率为 8kHz,单声道。MATLAB 仿真结果如下:(程序见附录 A)050100150200250300350400-0.500.5截 取 的 语 音 段样 点 数幅度-200-150-100-50050100150200-0.500.5截 取 语 音 的 倒 谱样 点 数幅度
36、 图 4.1 倒谱程序仿真结果 图 4.1 是取一段语音的倒谱图,第一幅是这段语音的时域波形图,共取 400点语音,在倒谱图上会看到许多峰值,这些峰值都与基因周期有关,分别是一次谐振,二次谐振 基于 MATLAB 的语音倒谱分析 16 4.2 倒谱在同态信号处理系统的应用 同态信号处理也称为同态滤波,实现将卷积关系和乘积关系变换为求和关系的分离处理。,*,将非线性信号处理变为线性信号处理的过程。图4.2常见的同态信号处理系统 按照被处理的信号来分类,大体上可以分为乘积同态信号处理和卷积同态信号处理 由于语音信号可以视为声门激励信号和声道响应信号的卷积结果。我们仅讨论卷积同态信号处理系统的问题。
37、(1)特征系统 D*完成将卷积信号转化为加性信号的运算。(2)第二个子系统对加性信号进行所需要的线性处理(满足线性叠加原理等)(3)第三个子系统是逆特征系统 D*-1,使其恢复为卷积性信号。(4)特征系统 D*和逆特征系统 D*-1的区别 a.第一步和第三步的运算相同。线性系统 特征系统 D*逆特征系统 D*-1 1 y(n)+x(n)*)()()(21nxnxnx)()()()()()(.3)()()()(ln)(ln)(ln.2)()()()(.1212111212121nxnxnxzXzXZzXZzXzXzXzXzXzXzXzXzXnxZ)()()()(21nxnxLTInxLTIny进
38、行如下处理)()()(21nynyny)()()()()(.3)()()()(exp(.2)()()()(.1212112121nynyzYzYZnyzYzYzYzYzYzYzYnyZ基于 MATLAB 的语音倒谱分析 17 b.第二步不同,前者是对数运算,后者是指数运算。(框图如图 4.3)图4.3特征系统与逆特征系统的框图表示 4.3 倒谱在基音检测方面的应用 基音是语音信号的一个重要参数,在语音产生的数字模型中它也是激励源的一个重要参数,准确地检测语音信号的基音周期对于高质量的语音分析与合成、语音压缩编码、语音识别和说话人确认等具有重要的意义。1基音检测的概念 基音是指发浊音时声带振动所
39、引起的周期性,而声带振动频率的倒数就是基音周期。基音周期具有时变性和准周期性,它的大小与个人声带的长短、厚薄、韧性和发音习惯有关,还与发音者的性别、年龄、发音时的力度及情感有关,是语音信号处理中的重要参数之一,它描述了语音激励源的一个重要特征。基音周期的估计称为基音检测(Pitch Detection),基音检测的最终目标是找出和声带振动频率完全一致的基音周期变化轨迹曲线,如不可能则找出尽量相吻合的轨迹曲线。然而由于人的声道的易变性及其声道特征的因人而异,而基音周期的范围又很宽,且同一个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,故实际中的基音周期的精确检测是一件
40、比较困难的事情。然而,尽管语音信号的基音检测有许多困难但由于它在语音信号处理中的重要作用,促使广大学者争相涉足。2倒谱法求基音周期 语音的倒谱是将语音的短时谱取对数后再进行IDFT 得到的,所以浊音信号的周期性激励反映在倒谱上式是同样周期的冲激。借此,可从倒谱波形中估计出基音周期。一般把倒谱波形中第二个激励,认为是对应激励源的基频。下面给出 Z exp Z-1 Z ln Z-1)(nx)(nx)(nx)(nx基于 MATLAB 的语音倒谱分析 18 一种倒谱法求基音周期的框图及流程图。先计算倒谱,然后在预期的基音周期附近寻找峰值。如果倒谱的峰值超出了预先规定的门限,则输入语音段定为浊音,而峰的
41、位置就是基音周期的良好估计。如果没有超出门限的峰值,则输入语音段定为清音。如果计算的是一个时变的倒谱,则可估计出激励源模型及基音周期随时间的变化。一般每隔 1020ms 计算一次倒谱,这是因为在一般语音中激励参数是缓慢变化的。基音检测的实现框图和流程图如图 4.4 和 4.5 所示。DFT S(k)ln|S(k)|IDFT 峰 值 检 测 基 音检 测 w(n)s(n)图 4.4 倒谱法求基音周期的实现框图 基于 MATLAB 的语音倒谱分析 19 读入语音数据 到文件尾吗?结束 对该帧数据加窗 计算基音周期 pitch 基音周期 pitch=0 找出该搜索范围内倒谱的最大值 max 设置门限
42、为 0.08 求该帧数据的倒谱 设置基音搜索范围 取出一帧语音数据 max0.08?Y N N Y 图 4.5 基音检测的流程图 基于 MATLAB 的语音倒谱分析 20 3 基音周期的清浊音的 MATLAB 仿真(程序见附件 B)(1)浊音:取 startIndex=round(4500),其运行结果如图 4.6 所示 0.511.522.533.544.55x 104-0.4-0.200.20.4语 音 波 形样 点 数幅度050100150200250300350400-0.500.5一 帧 语 音样 点 数幅度-200-150-100-50050100150200-0.500.5一 帧
43、 语 音 的 倒 谱样 点 数幅度 图 4.6 倒谱法求浊音的基音周期 图 4.6 分别为语音的语音波形时域图,截取一帧语音的波形图和一帧语音的倒谱图。语音波形图为输入语音之后的采样波形,从这段语音中取出一帧的波形,在语音波形中为红色线之间的部分,(打印后线变为黑色),共计 400 点语音,所取的一帧语音为浊音,由第二幅图看出浊音呈现明显的周期性,而这个周期就是所要求的基音周期,一般把倒谱波形中第二个冲激,认为即是对应激励源的基频。在倒谱图上表现为最大峰值与次峰值之间的间隔,将其化为频率之后,估算出基音周期 pitch=186.0Hz,从图中可以看出基音周期样点数 Np 表示约为 43,采样频
44、率 fs,故 pitch=fs/Np=8000/43=186.0Hz.(2)清音:取 startIndex=round(45000)。其运行结果如图 基于 MATLAB 的语音倒谱分析 21 0.511.522.533.544.55x 104-0.4-0.200.20.4语 音 波 形样 点 数幅度050100150200250300350400-0.500.5一 帧 语 音样 点 数幅度-200-150-100-50050100150200-0.500.5一 帧 语 音 的 倒 谱样 点 数幅度 图 4.7 清音的倒谱 图 4.6 与图 4.7 的不同点在于选取的声音元素不同,图 4.7 所
45、取的一帧语音为清音,清音的幅度较小,且通过其时域图可知清音不具有明显的周期性,通过计算估算出它的基因周期 pitch=0。4.4 倒谱在共振峰检测方面的应用 语音信号处理中,共振峰频率是一个特别重要的参数。它是表征发音时声道特性的关键参数,也是区别不同韵母的重要依据。寻求一种实时实现的共振峰频率检测算法,在语音合成、语音识别、说话人识别等领域中有重要的应用价值。共振峰信息包括在语音频谱包络中。因此,共振峰频率检测的关键在于估计自然语音频谱包络,并认为谱包络最大值对应的频率就是共振峰频率,最大值就是共振峰。所以共振峰已经广泛地用作语音识别的主要特征和语音编码传输的基本信息。如果直接在语音频谱提取
46、共振峰频率,误差会很大。倒谱分析技术可以较好 地分离出语音信号频谱包络结构。1 共振峰的概念 共振峰是指在声音的频谱中能量相对集中的一些区域,共振峰不但是基于 MATLAB 的语音倒谱分析 22 音质的决定因素,而且反映了声道(共振腔)的物理特征。声音在经过共振腔时,受到腔体的滤波作用,使得频域中不同频率的能量重新分配,一部分因为共振腔的共振作用得到强化,另一部分则受到衰减,得到强化的那些频率在时频分析的语图上表现为浓重的黑色条纹。由于能量分布不均匀,强的部分犹如山峰一般,故而称之为共振峰。2 基于倒谱的共振峰的算法 倒谱将基音谐波和声道的频谱包络分离开来。倒谱的低时部分可以分析声道、声门和辐
47、射信息,而高频部分可用来分析激励源信息。对倒谱进行低时窗选,通过语音倒谱分析系统的最后一级,进行DFT 后的输出即为平滑后的对数模函数,这个平滑的对数谱显示了特定输入语音段的谐振结构,即谱的峰值基本上对应于共振峰频率,对平滑过的对数谱中的峰值进行定位,即可估计共振峰。原理框图和流程图如图 4.8 和图 4.9 所示。分帧加窗|FFT|log IFFT 加窗 平滑处理|FFT|log 共振峰 图 4.8 共振峰检测框图 基于 MATLAB 的语音倒谱分析 23 图 4.9 共振峰检测流程图 3 共振峰检测的 MATLAB 仿真(程序见附录 C)使用倒谱法估计共振峰频率中要注意,并不是所有的谱峰都
48、是共振峰,而且当两个共振峰很靠近时,会发生谱重叠,很难计算共振峰的带宽。图 4.2.4 为仿真的结果,先求语音的倒谱,然后求出倒谱的频谱,做出来频谱图如图 4.2.4 第二幅,最后对频谱取对数并进行平滑处理,所得的图像峰值就是对应的共振峰。清音没有共振峰,取 startIndex=round(4500)也就是浊音的共振峰检测,其运行结果如图 4.2.4.1 所示,其中平滑对数幅度谱的峰值所对应的频率就是共振峰计算浊音基音周期 NN 点 取倒谱的前 NN 点 加 NN 点汉明窗 计算频谱 formant1 formant(1:2)=formant1(1:2)t0.08&indLF a=fs/(L
49、F+ind);else a=0;end pitch=a%画图 figure(1);subplot(3,1,1);plot(time1,y);title(语音波形);axis tight ylim=get(gca,ylim);line(time1(startIndex),time1(startIndex),ylim,color,r);line(time1(endIndex),time1(endIndex),ylim,color,r);xlabel(样点数);ylabel(幅度);subplot(3,1,2);基于 MATLAB 的语音倒谱分析 30 plot(frame);axis(0,400,
50、-0.5,0.5)title(一帧语音);xlabel(样点数);ylabel(幅度);subplot(3,1,3);time2=-199:1:-1,0:1:200;plot(time2,cepstrum1);axis(-200,200,-0.5,0.5)title(一帧语音的倒谱);xlabel(样点数);ylabel(幅度);附录 C clear all;y,fs,nbits=wavread(C:Documents and SettingsAdministrator桌面woo2.wav);frameSize=floor(40*fs/1000);%帧长 startIndex=round(45