




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
攀枝花学院本科毕业设计(论文)基于线性预测特征的语音识别研究学生姓名:学生学号:院(系):电气信息工程学院年级专业:自动化指导教师:助理指导教师:二〇年五月攀枝花学院本科毕业设计(论文)摘要Ⅰ摘要语音信号特征的提取是语音信号处理(语音识别、语音合成、语音压缩)的基础,而线性预测分析(LPC)又是目前较为流行的一种分析方法,所以本文就如何利用LPC的分析方法来提取一组简洁而准确的语音特征参数的问题进行了研究,同时还详细地论述了语音特征提取的全过程,对各种谱估计进行了一定的分析。使用Matlab进行仿真实验时,对比了不同说话人的语音特征参数曲线及其分类误差,同时分析改变线性阶数P值对谱曲线的影响。最后总结出线性预测分析在应用于说话人特征提取时选择参数的规律。关键词语音特征提取,线性预测分析,线性阶数攀枝花学院本科毕业设计(论文)ABSTRACTⅡABSTRACTTheextractionofspeechsingalfeatureisthefoundationofspeechprocessingsuchasspeechrecognition,speechsynthesisandspeechcompression.LPCanalysisisamorepopularmethodatpresent.Inthispaper,westudyhowtoextractagroupofconciseandcorrectfeatureparametersbyusingLPCanalysismethod.Inthemeantime,wealsodiscusstheprocessoffeatureextractionofspeechsignalindetail,andanalyseallkindsofspretrumrevaluationmethods.UsingMatlabsimulationexperiments,comparingthedifferentparametersofthespeaker'svoicecharacteristicscurvesandtheirclassificationerror,simultaneousanalysisofchangesintheorderofP-valueforlinearspectralcurve.Concludeslinearpredictiveanalysisappliedtotheselectionofspeakerfeatureextractionparametersofthelaw.Keywords:Speechsingalfeatureextraction,LPCanalysis,Linearorder攀枝花学院本科毕业设计(论文)目录目录摘要……………………ⅠABSTRACT……………Ⅱ1绪论……………………...……………21.1本课题的背景和意义…………………31.2本课题的主要内容……………………42语音信号线性预测的分析原理………62.1LPC基本原理…………62.2LPC和语音信号的模型的关系………………..………82.3LPC方程的自相关解法…….……………..…………102.4模型增益G…………….……………112.5LPC倒谱及其实现………………….………………122.6LPC分析的频域解释……………….………………132.7LPC谱估计……….…..……………132.8LPC的其它参数……………………143Matlab在数字语音信号处理中的应用…………….………………153.1Matlab概述……….………………153.1.1Matlab简介…….………….……153.1.2MATLAB如何在语音信号处理中应用……………...…3.1.3论文涉及的MATLAB应用主要函数……………163.2语音信号处理实例…………………183.2.1语音信号的采集………………….……………183.2.2语音信号的提取及比较分析……………...……193.2.3改变线性阶数P值对谱曲线的影响…………….……………….263.3MATLAB仿真程序设计………………….……………283.3.1语音信号提取的程序…………….…….………283.3.2LPC分析程序…….……………30结论……………………..………………31参考文献………………32致谢……………………33攀枝花学院本科毕业设计(论文)1绪论绪论语音信号处理技术是计算机智能接口与人机交互的重要手段之一。从目前和整个信息社会发展趋势看,语音技术有很多的应用。语音技术包括语音识别、说话人的鉴别和确认、语种的鉴别和确认、关键词检测和确认、语音合成、语音编码等,但其中最具有挑战性和最富有应用前景的为语音识别技术。对于语音识别技术而言,在一些应用领域中正成为一个关键的具有竞争力和影响力的技术。近几年来,说话人识别技术在公安机关的破案和法庭举证方面发挥着举足轻重的作用。与此同时,说话人识别技术也逐渐在安全加密、银行信息电话查询服务等方面取得很好的应用。在声控应用中,计算机可识别输入的语音内容,并根据内容来执行相应的动作,包括声控电话转换、医疗服务、股票查询服务和工业控制等。在手提电话通信系统中,电话的使用也逐渐开始从单调的服务性的工具演变为日常生活中服务的重要的伙伴和提供者关系,这归功于语音接口的功劳;如今人们可以运用手提电话和通讯网络,便捷的从远方数据库系统中搜索和提取需要的资讯服务;随着时代的发展,手提计算机的出现,平板电脑以及计算机的小型化,键盘的使用逐渐成为移动通信服务平台中的比较大的障碍之一。我们可以设想,在尺寸上和手表一样大的手机,再和往常一样用键盘输入字符,进行拨号操作似乎已经是不现实的事情。想像一下,如果手机仅仅只有一个手表那么大,再用键盘进行拨号操作已经是不可能的。另外一方面,声控打字机,自动口语分析仪也使用了语音信号处理的原理知识。随着计算机和大规模集成电路的发展,复杂的语音识别的系统也完全可以制成专用芯片,进行大量生产。在西方经济发达国家,大量的语音识别系统也已经进入市场和服务领域。时至今日,科技技术的高速发展,人们查询个人银行信息、旅游资讯、机票等信息,都可以依靠通讯网络的语音口语识别对话系统完成,而这往往给人们带来的不只是良好的操作体验享受,更重要的是便捷的生活服务。用户的手提电话、个人计算机(PC)、交换机等设备也内置了语音识别拨号功能,语音合成和语音识别功能也添加进了像其它的如同语音记事本、语音智能玩具等产品之中,并且取得了良好的市场反馈。就语音合成而言,它已经在许多方面得到了实际的应用并发挥了很大的社会作用。例如,公交汽车上的自动报站、各种场合的自动报时、自动报警、手机查询服务和各种文本校对中的语音提示等。在电信声讯服务中的智能电话查询系统中,采用语音合成技术弥补以往通过电话进行静态查询的不足,满足海量数据和动态查询的需求,如股票、售后服务、车站查询等信息;也可以用于基于微计算机的办公、教学、娱乐等智能多媒体软件,例如语音学习、教学软件、语音玩具、语音书籍等;也可与语音合成技术与机器翻译技术结合,实现语音翻译等。对于语音编码而言,随着人类社会信息化进程的加快,语音编码技术也正在迅速发展,在移动通讯、卫星通讯、军事保密通讯、信息高速公路和IP电话通讯中得到了广泛的应用。例如低速率语音编码技术解决了通信容量问题。光纤通信技术使有限通信的信道容量得到了缓解,但对于通讯价格昂贵的卫星通信及线路铺设艰难的边远山区通信,仍希望在现有信道上得到更大的通信容量。再者由于数字加密技术具有高度可靠性,一般在军事保密通信中采用低速率语音编码器、语音储存、多媒体通信、数字数据网(DDN)中也用到语音信号技术。目前语音编码的算法发展较快,它可应用的范围也相当广泛,除了上述应用外,未来的ISDN、卫星通信、移动通信、微波接力通信和信息高速公路以及保密电话等无一例外地都会采用低速率语音编码技术。随着信息技术的不断发展,尤其是网络技术的日益普及和完善,语音信号处理技术正发挥着越来越重要的作用,也逐渐延伸并影响着各个行业领域的发展。1.1本课题的背景和意义近二三十年来,语音识别技术得到了明显的提升与发展,已近逐渐由研发室进入到人们的视野和生活之中。让机器设备经过识别和翻译理解过程将数字语音信号转换成相应的命令或文本的高新技术是语音识别技术的基本理念。专业人士预测,未来十到二十年的时间里,消费电子、家庭服务、医护医疗、汽车电子、通信产业、家电技术、工业制造等领域将会广泛地应用语音识别技术。语音识别技术主要包括模型训练技术、模式匹配准则及特征提取技术三个方面。随着计算机技术和信息技术的发展,语音识别已经成为人机交互的必要手段。美国科学家N.Wiener(维纳)在研究火炮的自动控制时提出了线性预测的思想。年日本学者Itakura(板仓)等人首先将线性预测技术应用与语音分析和语音合成的领域中,使语音处理技术获得巨大的发展。在各种语音处理技术中,线性预测是第一个真正达到实际应用的技术,可用于估计基本的语音参数,如基音周期、共振峰频、谱特征及声道截面积函数等。特征参数的提取是关系到语音识别系统性能好坏的关键,而线性预测分析是目前普遍采用的特征参数提取方法。作为最有效的语音分析技术之一,语音线性预测分析(LPC)的基本理念是:能够使用过去若干个采样值的线性组合的逼近来表示数字语音信号的抽样值。得到确定的一组线性预测系数,可以促使线性预测抽样值和实际语音抽样值两者之间的均方误差最小而达到。线性预测的基本原理是建立在语音的数字模型的基础上的,为估计数字模型中的参数,线性预法提供了一种可靠的精确有效的方法。1.2本课题的主要内容本课题重点研究语音识别技术的线性预测特征之方法,线性预测的基本原理是建立在语音的数字模型基础上,为估计数字模型中的参数,线性预测法提供了一种可靠精确而有效地方法。课题旨在基于线性预测分析从人的发声机理入手,通过对声道的短管级联模型的进行语音识别的分析和研究。语音分析技术最有效的方法之一是线性预测分析,而这也较广的应用于语音识别、语音合成、语音编码和说话人识别等信息处理领域之中。语音线性预测分析(LPC)的基本理念是:能够使用过去若干个采样值的线性组合的逼近来表示数字语音信号的抽样值。得到确定的一组线性预测系数,可以促使线性预测抽样值和实际语音抽样值两者之间的均方误差最小而达到。因为语音是一种短时平稳信号,所以只能使用一段语音来估计模型参数。这时有两种方案。第一种方案是自相关法,这种方法是将较长的语音序列进行加窗处理,然后使用LPC原理对加窗的语音进行处理,在处理的过程中,只要可以限定窗的长度就能够保证分析的短时性;第二种方案是协方差法,这种方法则是在对语音处理的过程不对语音信号进行加窗处理,这种方法的实现的原理是在计算均方差预测误差的时候限制其取和区间。语音信号特征的提取是语音信号处理(语音识别、语音合成、语音压缩)的基础,而线性预测分析(LPC)又是目前较为流行的一种分析方法,所以本文就如何利用LPC的分析方法来提取一组简洁而准确的语音特征参数的问题进行了研究,同时还详细地论述了语音特征提取的全过程,对各种谱估计进行了一定的分析。线性预测分析(LPC)法是目前进行语音特征分析的最有效、最重要的理念之一,这是由于:1.线性预测分析法可以将数字语音信号当作是由全极点模型生成的,并且有效的解答了短时平稳数字语音信号的模型化问题;2.线性预测分析法能很好的提供谱估计,而且可以很好的逼近共振峰;3.线性预测分析法所计算运用的数字语音信号模型参数,诸如声道面积函数、共振峰、谱、基音等,计算量小,准确而简洁,有利于进行实时处理;4.线性预测分析法能够自如的运用于低速率传输的环境;5.线性预测分析法能够将线性预测系数形成的模型参数存储起来,便于在语音识别中减少识别时间和提高识别率。攀枝花学院本科毕业设计(论文)2语音信号线性预测的分析原理语音信号线性预测的分析原理2.1LPC基本原理在语音编码算法中,由于实际语音信号的动态范围变化范围很大的,如果直接对其进行量化,则编码所需的时间的比特数较大,编码速率较高。为了保证在较好的语音编码质量前提下,尽量减少编码速率,可设法减小编码器的输入信号的动态范围。线性预测编码就是利用过去的样值对新的样值进行预测,然后将样值的实际值与其预测值相减得到一个误差信号,显然误差信号的动态范围远小于原始语音信号的动态变化范围,对误差信号进行量化编码可大大减少量化所需的比特数,使编码速率降低。设语音信号的样值序列为:其中语音信号的当前取样值,即第n时刻的取样值是s(n)。而p阶线性预测,是根据信号过去p个取样值的加权和来预测信号当前取样值s(n),此时的预测器称为p阶预测器。设为s(n)的预测值,则有(2.1.1)式中,称为线性预测系数,上式称为线性预测器,预测器的阶数为p阶。p阶线性预测器的传递函数为(2.1.2)信号s(n)与其线性预测值之差称为线性预测误差,用e(n)表示。e(n)表示式为:(2.1.3)可见,预测误差e(n)是信号s(n)通过具有如下的传递函数的系统输出:(2.1.4)称系统A(z)为LPC误差滤波器,设计预测误差滤波器A(z)就是求解预测系数,使得预测器的误差e(n)在某个预定的准则下最小,这个过程称为LPC分析。LPC分析:即设计预测误差滤波器A(z)的过程,也就是求解预测系数(图2.1.1所示),使得预测器的误差e(n)在某个预定的准则下最小。图2.1.1LPC误差滤波器线性预测的基本问题就是由语音信号直接一组预测系数,这组预测系数就被看做语音产生模型中系统函数H(z)的参数,它使得在一段语音波形中均方预测误差最小,理论上常用的是均方误差最小的准则,表示对误差的平方求数字期望或平均值。要得到使最小的预测系数,可将对每个系数进行系数求导,并令各个系数求偏导。并令起结果为0。线性预测的基本问题就是由语音信号直接求出一组线性预测系数使得在一短段语音波形中均方预测误差最小。将对各个系数求偏导,并令其结果为零,即(2.1.5)由式(2.1.3)得(2.1.7)由式(2.1.7)与式(2.1.8)得k=1、2、…、p(2.1.9此式表明预测误差与信号的过去的p个取样值是正交的,称为正交方程。令s(n)的自相关序列为(2.1.10)由于自相关序列为偶对称,因此(2.1.11)(2.1.12)上式称为标准方程式,它表明只要语音信号是已知的,则p个预测系数通过求解该方程即可得到。设(2.1.13)得(2.1.14)矩阵形式为或者通过求解上式即可求得p个线性预测系数。LPC和语音信号的模型的关系线性预测分析是建立在语音产生产生的数字模型基础上的,语音产生的数字模型简化框如图2.2.1所示。图2.2.1该模型的参数有清/浊音判决、浊语音的基音周期、增益常数G及数字时变滤波器系数,这些参数是随时间缓慢变化的。其中,输入的语音信号可由周期脉冲序列的激励(对于浊音)或者是随机噪声序列的激励(对于语音)来模拟,周期脉冲序列之间的间隔即为基音周期。而声门激励,声道调制和嘴唇辐射的合成贡献,可用如下的的数字时变滤波器表示(2.2.上式既有极点又有零点。按其有理式的不同,有如下三种信号模型:ARMA模型。这种模型H(z)既有极点又有零点,是一种一般的数字模型。此时的模型输出是s(n)可由信号的过去s(n-i),i=0,1,…,p及输入信号值的线性组合u(n-l),l=0,1,…,q线性组合来预测得到。AR模型。此时H(z)只有极点没有零点,模型输出S(n)只由过去的信号值S(n-i),i=0,1,…,p线性组合来得到。MA模型。此时H(z)只有零点没有极点,模型输出S(n)只由模型的输入s(n-l),l=0,1,…,q线性组合来得到。可见,ARMA模型是AR模型和MA模型的混合结构。相对于声门激励来说,声道系统是一个时变系统,该系统是会随着时间而进行缓慢的变化。从声学理论上我们能够了解到,除摩擦音和鼻音时变声道系统H(z)需用零极点模型ARMA来模拟外,其他语音都能使用全极点AR模型来模拟。因为从理论上讲,ARMA模型和MA模型可以用无限高阶的AR模型来表示,而且对AR模型做参数估计时遇到的是线性方程组的求解问题,处理容易。模型中含有有限个零点时,则需要求解非线性方程组,处理难度大。所以一般都用AR模型作为作为语音信号处理的常用模型。此时时变数字滤波H(z)写为(2.2.式中,增益G以及数字滤波器系数都可随时间的变化而变化,p为预测器阶数。当p足够大时,这个全极点模型几乎可以模拟出所有语音信号的声门系统。采用这样一个简化的模型的主要优点在于可以用线性预测分析法对增益G和滤波器系数进行直接而高效的计算。在语音产生的数字模型中,语音抽样信号s(n)和激励信号之间的关系可用下列差分方程来表示:(2.2.可见,如果语音信号准确服从上式的模型,则(2.2.4)所以预测误差滤波器A(z)是H(z)的逆滤波器,故有下式成立:(2.2.H(z)称为合成滤波器。线性预测误差滤波相当于一个逆滤波过程或逆逼近过程,当调整滤波器A(z)的参数使输出e(n)逼近一个白噪声序列u(n)时,A(z)和H(z)是等效的,而按最小均方误差准则求解线性预测系数正是使输出e(n)白化的过程。2.3LPC方程的自相关解法根据线性预测分析的原理可知,求解p个线性预测系数的依据,是线性误差滤波器的输出方均值或输出功率最小。可称这一方均误差为正向预测误差系数Ep,也就是:(2.3.1)由上式正交方程知,上式第二项为0。(2.3.2)(2.3.3)以上两式组合起来得(2.3.4)上式方程的系数的矩阵元素是对称的,且沿着任一与主对角线平行的斜对角线上的所有的元素相等,系数矩阵的大小为p*p,这样的矩阵称为Toeplitz(特普利兹)矩阵,上式称为尤勒-沃尔克(Yule-Walker)方程。其中的R(p)确定的待分析语音信号s(n)的自相关序列。可见,为了解得线性预测系数,必须首先计算出R(k),,解得上式方程即可。但是计算R(k),却是个十分复杂的问题。为了简化计算,可根据语音信号的短时平稳特性讲语音信号分帧,每帧长度取10-30ms,这样的自相关序列R(k)可用下式估计(2.3.5)如果将预测误差功率Ep理解为预测误差的能量,则上式中的系数对线性预测方程的求解没有影响,因此可以忽略。但其中的求和范围n的不同定义,将会导致不同的线性预测解法。经典的方法有两种:一种是自相关法,该方法假定语音信号序列s(n)在间隔以外为0,这相当于用窗函数从语音序列中截取出选定的序列部分,截取出的序列记为s(0),s(1),s(2),…s(N-1)。另一种是协方差法。该方法不规定语音序列s(n)的长度范围,但上式的范围为,这样相当于在此范围内估算R(k)所需要的s(n)是存在矩阵已经不具有Toeplitz矩阵的性质,因此其方程的求解不同于自相关法,由于不需要加窗,协方差计算精度较自相关法大大提高。但由于协方差法不具有自相关法的稳定性的条件。斜格法就是为了解决这里两种方法的精度和稳定性之间的矛盾而形成的一中的方法。利用对称托普利兹(Toeplitz)矩阵的性质,自相关法求解可用Levinson-Durbin(莱文逊-杜宾)递推算法求解。该方法是目前广泛采用的一种方法。利用Levinson-Durbin算法递推时,从最低阶预测器开始,由低阶到高阶进行逐阶递推计算。自相关法递推过程如下(2.3.6)(2.3.7)(2.3.8)(2.3.9)(2.3.10)联立左面5式可对i=1、2…、p进行递推求解,其最终解为(2.3.11)对于p阶预测器,在上述求解预测器系数的过程中,阶数低于p的各阶预测器系数也同时得到。自相关法的优点是较简单且较稳定,确定是由于两端的截断效应而精度脚较低。2.4模型增益G模型的激励信号Ge(n)表示为:(2.4.1)预测误差e(n)如式(2),这样当实际的预测系数与模型系数相等时,有(2.4.2)这说明激励信号正比于误差信号,其比例常数等于模型增益G。通常假设误差信号的能量等于输入激励信号的能量,因此可以得到:(2.4.3)对于式中的激励信号e(n),主要分为浊音和清音两种情况。其中为浊音时,考虑到此时实际的激励信号为声门脉冲,因此可以将激励信号表示为n=0时的单位抽样。为了保证这个假设成立,要求分析的区间应该大致和语音基因周期的长度相等。当语音为清音时,我们假定激励信号e(n)为一个零均值、单位方差的平稳白噪声过程。采用自相关解法时,浊音的模型增益为(2.4.4)清音计算模型增益的公式和浊音相同。2.5LPC倒谱及其实现线性预测倒谱系数LPCC定义:是LPC系数在倒谱域表示。指的是这个信号z变换的对数模函数的反z变换。通过对语音信号的傅里叶变换取模的对数再求反傅里叶变换可得到一个信号的倒谱。优点:计算量小,易于实现,对元音有较好描述能力。缺点:对辅音的描述能力较差,抗噪性能较差。求解方法设通过线性预测分析得到的声道模型系统函数为(2.5.1)其冲激响应为h(n),倒谱为,则有(2.5.2)将H(z)代入倒谱表示式并将其两边对z-1求导,整理可得(2.5.3)令上式两边的各次z-1的系数分别相等,可得由LPC系数求倒谱系数的递推公式:(2.5.4)线性预测倒谱系数是一个右半序列。语音信号的倒谱能较好地描述语音的共振峰特征,并较彻底地去掉了语音产生过程中的激励信息,因此在语音识别系统中得到了较好的应用效果。实验表明,使用倒谱可以提高特征参数的稳定性。2.6LPC分析的频域解释由于语音产生模型中全极点滤波器的频率特性主要反映了声道的共振特性,而语音信号的LPC系数就是语音信号产生模型中全极点合成滤波器H(z)的分母多项式的系数,因此当根据一帧语音的取样值计算出语音信号的LPC系数后,只要将代入H(z)进行计算,就意味着求得了这帧语音信号产生模型的频率特性。(2.6.1)LPC分析可以看成是对语音信号短时谱进行估计的一种有效方法。在语音产生模型中,语音的功率谱等于激励源功率谱与全极点合成滤波器频率特性模的平方的乘积,而激励源是准周期冲击序列或白噪声,其功率谱是平坦的。所以语音的功率谱主要由全极点滤波器的特性来决定。2.7LPC谱估计用线性预测谱作为语音信号谱的解释(2.7.1)波形匹配规律解释:由上式知,按最小均方误差求解时,的区域在总误差中所起的作用比的区域大。因此LPC谱误差准则有利于在谱峰附近良好匹配,而在谱谷附近匹配较差。2.8LPC的其它参数因为人们可以从声音的音质、频率高低等不同信息中分辨出说话人的个体特征。所以我们能够设想,使用语音信号的特征的有效组合取得相对来说比较稳定的识别性能。从某种意义上来说,假设组合的各个参数之间的相关性不是很大的话,那么得到的结果会更加有效和有意义一些,原因在于它们分别反映除了数字语音信号的不一样的特征。长久以来,研究人员在组合参数在说话人识别中的应用中投入了很多精力和心血。研究数据显示,系统的识别性能的提高的多个因素之中包含了组合参数的改变影响系统系能的众多因素之中的确包含了组合参数,然而很明显的是,不管是在特征参数的提取环节,抑或是在模型匹配和训练等环节都会加大计算机的处理任务量。在参数特征提取的环节,需要计算一种甚至更多的特征参数。与此同时,在模型匹配和模型训练环节,因为组合参数特征矢量的维数较多,会导致运算过程的复杂度加大。很明显,计算机运算量的加大也会进而致使系统的识别速度受到影响。为了使计算机的处理速度和程序运行机制得到优化,通过LPC参数与语音帧能量参数的组合,促使在运算量增加不是很明显的环境下改善系统的性能。语音帧能量是指一帧语音信号的能量,它等于该帧语音样值的平方和。选取与语音帧能量构成组合参数主要有以下考虑:(1)语音帧能量体现一帧数字语音信号能量的高低,也是数字信号的不可或缺的时域特征。语音帧能量同时作为语音信号最为基础的短时参数;(2)对数字语音信号处理后得出的语音帧能量是标量值,同其它参量形成组合参数,但是不导致原特征矢量的维数明显增多,特征矢量的维数越少,那么需要的运算复杂度就越小,此外,取得语音帧能量的运算并不繁琐;(3)LPC参数和语音帧能量两者的联系不大,两者预示着语音信号的不同特征,应该有较好的效果。攀枝花学院本科毕业设计(论文)3Matlab在数字语音信号处理中的应用3MATLAB在数字语音信号处理中的应用3.1MATLAB概述3.1.1MATLAB简介MATLAB语言是当今科学界(尤其是自动控制领域)最具影响力、也是最具活力的软件。它起源于矩阵运算,并已经发展成为一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。MATLAB语言在各国高校与研究单位发挥着重要的作用。MATLAB语言的首创者CleveMoler教授的数值分析,特别是在数值线性代数领域也影响力,他参与撰写了数值分析领域一些著作并参与编写了两个重要的Fortran程序——EISPACK和LINPACK。他曾在密歇根大学、斯坦福大学和新墨西大学任数学与计算机科学教授。1980年前后,诗人新墨西哥大学计算机系主任的CleveMoler教授在讲授现行代数课程时,发现用其他的高级语言变成极为不便,便构思并开发了MATLAB(MATRIXLABORATORY,即矩阵实验室),这一款软件利用当时数值线性代数领域最高水平的EISPACK和LINPACK两大款软件包中可靠的子程序,用Fortran语言编写了集命令翻译、科学计算于一体的交互式软件系统。所谓交互式语言,是指人们给出一条指令,立即接就可以得出该命令的结果。该语言无需像C语言和FORTRAN语言那样,首先要求使用者编写源程序,然后对之进行编译、连接,最总西恩成可执行文件。这无疑会给使用者带来极大地方便。数字语音信号处理是讲数字信号处理与语音学相结合,解决现代通信领域中的人与人,人与机器之间的信息的交流的学科。近几年来语音信号处理学科在全世界范围内已取得了飞速的发展。随着MATLAB的不断发展,其功能越来越强大,广泛用于数字语音信号处理,数字图像处理、仿真、自动控制、小波分析和神经网络等领域。同时又由于MATLAB具有大量的信号处理工具箱并能利用非线性动态系统分析工具Simulink等优点,所以今年来MATLAB已成为数字信号处理的有利工具,因此也成为学习语音信号处理和进行研究工作的仿真软件工具。3.1.2MATLAB如何在语音信号处理中应用下面简要介绍MATLAB在数字语音信号中的几个方面应用。1、通过MATLAB可以对数字话的语音信号进行时频分析。通过MATLAB可以方便的展现语音信号的时域及频域曲线,并且根据语音的特性对语音进行分析。2、通过MATLAB可以对数字化的语音信号的进行估计和判别。例如,根据语音信号的短时参数,以及不同语音信号的短时参数的性质对一段给定的信号进行又有无声和清浊音的判别、对语音信号的基音周期进行估计等。3、通过利用MATLAB编程对语音信号进行处理,由于MATLAB是一种科学和工程计算的高级语言,允许用数字形式的语言编程,又有大量的库函数,所以编程简单、编程效率高、易学易懂。我们可以对信号进行加噪、滤波、截取语音等,也可进行语音编码,语音识别,语音合成的编程等。3.1.3论文涉及的MATLAB应用主要函数1、wavread函数wavread只能读取非压缩格式的wav音频文件。wav文件一般都是压缩的,用matlab播放时需要用转换程序将其转换为非压缩格式的wav。在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。wavread函数调用格式:
y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。y=wavread(file,N),读取前N点的采样值放在向量y中。
y=wavread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量y中2、画图函数(1)基本形式,例如:>>y=[00.580.700.950.830.25];>>plot(y)生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。>>x=linspace(0,2*pi,30);%生成一组线性等距的数值>>y=sin(x);>>plot(x,y)则生成的图形是上30个点连成的光滑的正弦曲线。(2)多重线的绘制在同一个画面上可以画许多条曲线,只需多给出几个数组,例如>>x=0:pi/15:2*pi;>>y1=sin(x);>>y2=cos(x);>>plot(x,y1,x,y2)则可以画出多重线。另一种画法是利用hold命令。在已经画好的图形上,若设置holdon,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令holdoff将结束这个过程。例如:>>x=linspace(0,2*pi,30);y=sin(x);plot(x,y)>>holdon>>z=cos(x);plot(x,z)>>holdoff(3)多幅图形可以在同一个画面上建立几个坐标系,用subplot(m,n,p)命令;把一个画面分成m×n个图形区域,p代表当前的区域号,在每个区域中分别画一个图,如>>x=linspace(0,2*pi,30);y=sin(x);z=cos(x);>>u=2*sin(x).*cos(x);v=sin(x)./cos(x);>>subplot(2,2,1),plot(x,y),axis([02*pi–11]),title(‘sin(x)’)>>subplot(2,2,2),plot(x,z),axis([02*pi–11]),title(‘cos(x)’)>>subplot(2,2,3),plot(x,u),axis([02*pi–11]),title(‘2sin(x)cos(x)’)>>subplot(2,2,4),plot(x,v),axis([02*pi–2020]),title(‘sin(x)/cos(x)’)3、坐标系的控制在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:axis([xminxmaxyminymax])[]中分别给出x轴和y轴的最大值、最小值axisequal或axis(‘equal’)x轴和y轴的单位长度相同axissquare或axis(‘square’)图框呈方形axisoff或axis(‘off’)清除坐标刻度4、窗函数数字信号处理的主要数学工具是博里叶变换.而傅里叶变换是研究整个时间域和频率域的关系。不过,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。无线长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏)。为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截断函数称为窗函数,简称为窗。信号截短以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是有限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地引起混叠,因此信号截短必然导致一些误差。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截短信号。3.2语音信号处理实例3.2.1语音信号的采集本文是以一段简短的语音信号作为分析样本。通过计算机中的录音机分别将两人发出的同一段语音信号——“09自动化”录入到计算机中。如图3.2.1所示:图3.2.1使用计算机自带录音机录音该段语音时长约为3秒,并分别保存为“m1.wav”和“m2.wav”语音文件。B处A处由于在语音录制过程中,会出现短时的语音短时延迟,如图3.2.2所示B处A处图3.2.2原始语音的出现短时延迟因此在做数字语音采样之前,使用Goldwave程序将录制好的语音进行剪辑。剪辑过程中,分别以A、B处为起始和结束剪辑点,剪辑掉前后部分没有语音信号输入的部分,并保存为WAVEPCMunsigned8bit,mono单声道格式的*.wav文件。如图3.2.3所示:图3.2.3剪辑后的语音波形图3.2.2语音信号的提取及比较分析打开并运行MATLAB程序,如图3.2.4所示:图3.2.4Matlab软件界面在MATLAB中使用Wavread函数,新建“yuyincaiyang.m”的M文件,输入并运行语音采样程序(见3.3.1节),分别对录制的语音“m1.wav”,“m2.wav”进行采样处理。如图3.2.5所示:图3.2.5用于语音采样的M文件在MATLAB仿真运行过程中,我们可以清晰的听到来自不同两人的所说“09自动化”语音的播放,并且可以得知语音信号“m1.wav”,“m2.wav”的采样频率fs和采样位数bits,两人的语音信号采样结果都为采样频率fs=44100Hz,采样位数bits=8位,如图3.2.6所示图3.2.6采样信号的频率和位数得到的两人的语音“m1.wav”,“m2.wav”的波形图如图3.2.7和图3.2.8所图3.2.7“m1.wav”的语音信号波形图图3.2.8“m2.wav”的语音信号波形图比较图3.2.7和图3.2.8不同两人的语音波形,我们可以得出这样的结果:两人所录制的语音“m1.wav”和“m2.wav”的整段音频数据中得到的声音信号高低起伏基本一致,并且可以观察到其中包含部分高频噪声。在对语音进行采样处理后,打开MATLAB程序,新建名为“musicsource.m”的M文档,输入仿真的LPC程序(见3.3.2节),如图3.2.9所示:图3.2.9用于语音仿真程序的M文件在这里我们选取第30帧,线性预测阶数为12进行观察,如图3.2.10所示图3.2.10选取帧位置和预测器阶数我们对语音“m1.wav”和“m2.wav”进行处理并分析的过程中,为了能在相同的条件进行语音分析的对比,一致选取第30帧,线性预测阶数为12进行观察。分别得到如图3.2.11和3.2.12所示的“m1.wav”和“m2.wav”的预测语音帧波形和它们之间预测误差的波形。图3.2.11“m1.wav”的原始语音帧和预测语音帧及误差曲线图3.2.12“m2.wav”的原始语音帧和预测语音帧及误差曲线从以上两图我们可以得出原始语音和预测后的语音帧之间的关系及误差,从图中我们明显可以看出不同的两人说同一句话的,在同时选取第30帧,线性预测阶数为12的条件下,进行仿真分析的语音曲线起伏明显的不同。同一人的原始语音和预测语音之间也存在误差,当然两人的原始语音和预测语音之间的误差的曲线的起伏高低也是不一样的。以下是语音“m1.wav”和“m2.wav”仿真结果的短时谱和LPC谱曲线图,如图3.2.13、图3.2.14所示:图3.2.13“m1.wav”的短时谱和LPC谱图3.2.14“m2.wav”的短时谱和LPC谱
从图中我们可以同一人的语音数据的原始语音和预测语音之间的短时谱曲线起伏是不一致的。不同两人的原始语音和预测语音的曲线走势,以及LPC谱的曲线起伏是不一致的。图3.2.15、图3.2.16是语音“m1.wav”和“m2.wav”的原始语音和预测语音的倒谱图,图3.2.15和图3.2.16中分别显示两峰之间的间隔是在40和30点左右。那么语音“m1.wav”和“m2.wav”的基音周期分别为50/44100=1.3ms和40/44100=1.0ms。图3.2.15“m1.wav”的原始语音和预测语音的倒谱图图3.2.16“m2.wav”的原始语音和预测语音的倒谱图
3.2.3改变线性阶数P值对谱曲线的影响下面我们选取语音“m1.wav”文件,改变线性误差的阶数来观察语音帧的短时谱和LPC谱的变化情况。依照顺序分别取线性误差的阶数P为5、10、20,此过程保持处理的帧位置不变,即始终为30,图3.2.17所示:图3.2.17键入处理的帧位置和预测阶数运行程序分别得到线性阶数为5、10、20时的原始语音和预测后的语音帧之间的关系及误差,如图3.2.18、图3.2.19、图3.2.20所示图3.2.18取P=5,采样间隔为30图3.2.19取P=10,采样间隔为30图3.2.20取P=20,采样间隔为30从以上图中可以看出,P越大,即线性预测阶数越大,LPC谱越能反映出语音短时谱的细节部分,但LPC谱的光滑度随之下降。由于我们的目的只是用LPC谱反映声道综合效应的谱的表示式,而具体的谐波形状是通过激励谱来控制的,因此LPC谱只要能够体现出语音的共振峰的结构和谱包络,因此从计算复杂性的角度分析,预测阶数P应该适中。MATLAB仿真程序设计3.3.1语音信号提取的程序[x,fs,bits]=wavread('system.wav');%读入语音信号fs%提取采样频率bits%提取采样位数sound(x,fs,bits);%听取“voice.wav”语音ms2=floor(fs*0.002);ms10=floor(fs*0.01);ms20=floor(fs*0.02);ms30=floor(fs*0.03);t=(0:length(x)-1)/fs;%计算样本时刻plot(t,x);%画出语音信号的波形legend('Waveform');xlabel('Time(s)');ylabel('Amplitude');3.3.2LPC分析程序MusicSource=wavread('bei');Music_source=MusicSource';N=256;%windowlength,N=100--1000;Hamm=hamming(N);%createHammingwindowframe=input('请键入想要处理的帧位置=');%originiscurrentframeorigin=Music_source(((frame-1)*(N/2)+1):((frame-1)*(N/2)+N));Frame=origin.*Hamm';%%ShortTimeFourierTransform%[s1,f1,t1]=specgram(MusicSource,N,N/2,N);[Xs1,Ys1]=size(s1);fori=1:Xs1FTframe1(i)=s1(i,frame);endN1=input('请键入预测器阶数=');%N1ispredictor'sorder[coef,gain]=LPC(Frame,N1);%LPCanalysisusingLevinson-Durbinrecursionest_Frame=filter([0-coef(2:end)],1,Frame);%estimateframe(LP)FFT_est=fft(est_Frame);err=Frame-est_Frame;%error%FFT_err=fft(err);subplot(2,1,1),plot(1:N,Frame,1:N,est_Frame,'-r');grid;title('原始语音帧vs.预测后语音帧')subplot(2,1,2),plot(err);grid;title('误差');pause%subplot(2,1,2),plot(f',20*log(abs(FTframe2)));grid;title('短时谱')%%GainsolutionusingG^2=Rn(0)-sum(ai*Rn(i)),i=1,2,...,P%fLength(1:2*N)=[origin,zeros(1,N)];Xm=fft(fLength,2*N);X=Xm.*conj(Xm);Y=fft(X,2*N);Rk=Y(1:N);PART=sum(coef(2:N1+1).*Rk(1:N1));G=sqrt(sum(Frame.^2)-PART);A=(FTframe1-FFT_est(1:length(f1')))./FTframe1;%inversefilterA(Z)subplot(2,1,1),plot(f1',20*log(abs(FTframe1)),f1',(20*log(abs(1./A))),'-r');grid;title('短时谱');subplot(2,1,2),plot(f1',(20*log(abs(G./A))));grid;title('LPC谱');pause%plot(abs(ifft(FTframe1./(G./A))));grid;title('excited')%plot(f1',20*log(abs(FFT_est(1:length(f1')).*A/G)));grid;%pause%%find_pitch%temp=FTframe1-FFT_est(1:length(f1'));%notmovehigherfrequncepitch1=log(abs(temp));pLength=length(pitch1);result1=ifft(pitch1,N);%movehigherfrequncepitch1((pLength-32):pLength)=0;result2=ifft(pitch1,N);%directdorealcepstrumwitherrpitch=fftshift(rceps(err));origin_pitch=f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版产业园区开发项目管理服务委托合同
- 2025年度门卫岗位劳务派遣劳动合同
- 二零二五年度租赁证办理及房屋租赁合同(含税费承担)
- 二零二五年度房屋买卖及装修保修协议
- 二零二五年度水利工程设备安装施工合同页9
- 二零二五年度出口货物运输安全协议书
- 2025年新型智能家居设备买卖合同参考
- 防毒品宣传教育班会课件
- 防养老诈骗知识培训课件
- 机关单位食堂承包合同(2025版)
- 工程竣工验收申请表
- 2024全面解读新修订保密法知识培训课件
- DB33T 1157-2019 城市地下综合管廊运行维护技术规范
- 学校搬迁购置设备及体育器材采购 投标方案(技术标)
- 棚洞工程施工设计方案
- 执行立案申请书模版
- 2019 SDF-2019-0002《山东省建设工程施工合同(示范文本)》
- LPG液化气充装站介质分析操作规程 202412
- 新课程新教材新高考培训
- 医院护工承包合同3篇
- 分包工程结算流程管理办法
评论
0/150
提交评论