一种基于基频包络的汉语普通话孤立词识别方法

文档序号:2830957阅读:862来源:国知局

专利名称::一种基于基频包络的汉语普通话孤立词识别方法
技术领域
:本发明涉及孤立词识别技术,特别是一种通过比较测试语音和模板的基频包络之间的相似性来进行汉语普通话孤立词识别的方法。
背景技术
:与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的技术。语音识别是一门交叉学科。语音识别技术所涉及的领域包括信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。近二十年来,语音识别技术取得显著进歩,开始从实验室走向市场。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。根据语音是连续的还是每次说一个词,语音识别分为连续语音识别和孤立词识别。在连续语音识别中,很难决定一个词的起始位置。此外,在连续语音识别中由于语音和词根据上下文的不同展现了很大的变化,所以连续语音识别比孤立词识别要困难。一个典型的孤立词识别系统包括如何归一化语音信号中的变化;什么是语音信号的参数表示;系统如何适应新的说话人或词汇;如何度量两段语料之间的相似性;如何加速匹配过程。在语音信号的参数表示方面,短时频谱特征(如线性预测谱)和频率规整的频谱特征(如梅尔倒谱系数)被广泛使用。在度量两段语料的相似性时,通常使用经典的模式识别方法,包括基于模板的方法,如动态时间规整(DTW),以及统计方法,如隐马尔可夫模型(HMM)。当前的孤立词识别系统在某些情况下识别率可以达到90%以上。汉语是声调语言,而基频包络(PitchContour)能从一定程度上反映汉语声调,将对汉语声调的研究应用到汉语孤立词识别中,这方面的研究还很少。
发明内容本发明要解决的技术问题是提供一种基于基频包络的汉语普通话孤立词识别方法,该方法通过对汉语声调的研究,依靠比较测试语音和模板的基频包络之间的相似性,从而实现汉语普通话孤立词识别。为了解决上述技术问题,本发明提供一种基于基频包络的汉语普通话孤立词识别方法,包括以基频包络的形式事先存贮在模板库中的词汇,依次包括以下步骤1)、语音切割并降噪;2)、提取语音的基频特征;3)、判断当语料是用来训练、即语料库中没有相应的词汇时,进入步骤4);当语料是用来识别时,进入步骤5);4)、将该语料的基频特征加入到模板库中;5)、比较测试语音与模板的基频包络之间的相似性,取与测试语音距离最小的模板所代表的词汇作为识别结果;6)、输出识别结果。作为本发明的基于基频包络的汉语普通话孤立词识别方法的改进步骤2)采用自相关算法提取语音基频。作为本发明的基于基频包络的汉语普通话孤立词识别方法的进一步改进步骤5)采用了动态时间规整(DTW)的方法来比较测试语音与模板的基频包络之间的相似性。作为本发明的基于基频包络的汉语普通话孤立词识别方法的进一歩改进步骤5)中通常不同的词在基频的时长方面存在差异,因此需要进行基频时长方面的补偿;在DTW算出测试语音与模板之间的距离后,如果测试语音的基频时长与模板的基频时长的差异大于某一阈值,那么就对距离进行补偿。作为本发明的基于基频包络的汉语普通话孤立词识别方法的进一步改进步骤l)中使用短时能量检测语音端点,并降噪音,即静音切除。汉语属于音节声调语言,音节单说时有一定的声调,不能任意改变;如果改变了,这个音节的意义也改变,由它组成的词义也就完全不同了。汉语声调的调型分为4种阴平、阳平、上声和去声。声调是利用嗓音音调(声带振动)的高低来区别词义的。声调的一种定义是在一种语言中,音高(Pitch)随时间的变化模式具有词汇意义时,这种音高模式就是声调。音高是指声带每秒钟振动的次数,又叫基频(FundamentalFrequency,F0)。图1显示了汉语普通话中"开灯"这个词的基频包络示意图。汉语的声调模式在基频曲线上主要表现为元音和浊辅音。声调听觉征兆的研究表明基频曲线是声调的最本质特征,因此声调模型也主要是针对基频曲线建模。可用于比较基频包络相似性的方法有多种,本发明在实施过程中采用了动态时间规整(DTW)的方法。语音信号的准平稳随机特性,使得即使是同一说话人发同一话音的不同次发音,语音的音长也往往不同,相应的语音特征序列长度(帧数)也不相同,因此测试音特征序列和模板特征序列在时间上对齐的问题是孤立词识别领域的基本问题。在这种情况下,动态时间规整(DynamicTimeWarping,DTW)技术被提出来,并在语音识别中得到了广泛的应用,它比较有效的解决了语音特征矢量与参考模板之间的时间对准与匹配问题。可以说,DTW技术的出现是语音识别中的一个历程碑,它使语音识别技术空前活跃起来。基频的检测和估计是语音信号处理的重要内容,尤其在汉语语音处理中更是如此,这是因为汉语的声调主要体现在音节韵母部分F0随时间变化的轨迹上。准确的基频检测和估计算法对于声调的建模、分析起了关键的作用。常见的基频检测算法分为三类。第一类是时域检测算法,这一类算法是直接由语音信号的波形来估计基频。常见的算法有自相关法、并行处理法等。第二类是变换域基频检测算法,这一类算法是将语音信号变换到频域或其他空间来估计基音周期。常见的有倒频谱法、小波法等。第三类算法是激励源估计类算法,这一类算法的特点是通过语音信号的产生模型来估计声门闭合点(GlottalClosure)以求出激励源信号。常见的算法有LPC逆滤波法。本发明在实施过程中采用了自相关算法提取语音的基频包络。综上所述,本发明是针对特定人有限词汇量词库,提出了一种通过比较测试语音和模板的基频包络之间的相似性来进行汉语普通话孤立词识别的方法;主要用于特定人有限词汇量的汉语孤立词识别。本发明将反映声调的基频包络应用于汉语普通话孤立词识别,这样能够充分利用了汉语是声调语言的特性。本发明的有益效果是利用汉语是声调语言的特点,针对特定人有限词汇量的应用背景,通过比较测试语音和模板的基频包络之间的相似性进行汉语孤立词识别并且能够达到很高的正确识别率。下面结合附图对本发明的具体实施方式作进一步详细说明。图1是"开灯"的基频包络示意图;图2是本发明的算法流程图;图3是图2中的自相关算法提取基频包络的流程图;图4是图2中的DTW的算法示意图。具体实施例方式实施例l、图2图4结合给出了一种基于基频包络的汉语普通话孤立词识别方法,包括将一些常用词汇以基频包络的形式事先存贮在模板库中,然后依次进行以下步骤1)、语音切割使用短时能量检测语音端点语音信号经采样后,计算每一帧语音信号的能量,如果该能量大于某一阈值,则保留该帧,否则剔除该帧。语音切割的参数如下表1所示<table>tableseeoriginaldocumentpage6</column></row><table>2)、提取语音的基频特征;使用自相关算法提取语音的基频。自相关算法是指通过短时自相关函数对基频估值的算法,它一般是通过求中心削波后的语音信号自相关函数的极值加上其他条件来进行清浊音判断和基频估计。下面结合图3具体介绍一下自相关算法提取基频的步骤。(1)预处理为了去除加了海宁窗的在纳奎斯特率附近的信号分量的傅立叶变换的旁波瓣,我们实施一个软逆采样过程。首先对语音信号做FFT变换。然后将频域中范围在95%到100%纳奎斯特率的部分滤波掉。最后再做一个逆FFT变换。(2)计算信号的全局绝对峰值,具体做法是先计算信号的均值,然后计算信号每个采样点与均值的差的绝对值并取最大的作为全局绝对峰值。<formula>formulaseeoriginaldocumentpage6</formula>其中N为语音信号的总帧数。(3)将语音信号分帧并对每一帧实施下面的操作A.从信号中截取一段数据,窗长应该足够长从而可以包含所要检测的最小基频的三倍周期,一般取40ms;B.该窗长中的采样点减去窗长中所有采样点的局部均值;C.令第一个基频候选值是无声候选值;0;D.乘以窗函数;<formula>formulaseeoriginaldocumentpage7</formula>其中w(O是窗函数,这里使用的是海宁窗;E.为了插值我们至少需要半个窗长的值,所以我们在这段数据后面添加半个窗长的F.继续添加0直到采样点的数量达到2"来避免FFT过程中的边效应(EdgeEffect);G.实施快速傅立叶变换来获得复频谱H.对复频谱在频域内的采样点取平方从而获得能量谱;I.对能量谱再次执行快速傅立叶变换,这样我们便可以得到每帧信号的自相关函数r。(t):丄除以窗的自相关函数,这样我们便可以得到每帧信号规整后的自相关函数A(t)其中"("是窗的自相关函数;K.通过插值的方法,使离散的A(r)连续化然后找到连续r"t)曲线上的极大值及其位置,插值公式如下所示<formula>formulaseeoriginaldocumentpage7</formula>其中<formula>formulaseeoriginaldocumentpage7</formula>(4)找到基频路径经过步骤(3)后,我们已经计算得到了每帧语音信号的基频候选值,接下来我们需要从每帧语音信号的基频候选值中选取一个作为每帧语音信号的基频值从而获得全局基频路径。由于相邻两帧基频的转换存在有声/无声及频率跳转的代价,在寻找基频路径的过程中为了使总体代价最小,我们使用VHerbi算法获得全局的最优基频路径。3)、判断由用户指定语料是进行训练还是测试。当语料是用来训练(即语料库中没有相应的词汇)时,进入步骤4);当语料是用来识别时,进入步骤5);4)、将该语料的基频特征加入到模板库中;由于语料是用来训练的,因此语料库中没有相应的词汇,所以就将语料的基频特征以基频包络的形式加入到模板库中。从而建立并更新模板库。5)、比较测试语音与模板的基频包络之间的相似性-使用DTW方法计算测试语音的基频序列与模板之间的相似性。动态时间规整问题可以归结为在一个有限的网格上寻找一条路径的问题,如图4所示。令R(n)和T(m)分别为模板序列和测试序列,其中11=1,2,...凡m=l,2,...,M。根据图4中的模型,DTW问题就是要在(m,n)平面上找到一条优化路径n^w(n)从而使得下面公式中的总体距离函数最小,M二l;其中3(i(w),r(w(力))是模板序列的第n帧与测试序列的第m-w(n)帧之间的局部距离。一个典型的路径在附图4中显示出来。取与测试语音距离最小的模板所代表的词汇作为识别结果。6)、输出识别结果。实验l、本实验在特定人有限词汇量的汉语普通话词库上进行,具体使用实施例l的方法。该词库的发音人为某一个青年男性。该词库目前包含10个词车祸、拥堵、修路、障碍、上传、开灯、关灯、提高音量、降低音量、邮件。其中每个词有6遍录音。这6遍录音的录制时间不一样,前3遍和后3遍的录制时间相隔两个月。实验中我们用每个词的前3遍录音分别作为模板,以后3遍录音进行测试。实验用机配置CPU为AMDAthlon(tm)1.05GHz,1.00G内存。本实验根据下表2中参数设置使用自相关算法提取语音基频。8个参数中前3个参数用于计算有效的基频候选值,中间两个参数用于判断一帧信号是语音还是静音,最后3个参数用于选择基频优化路径。表2、自相关算法参数设置<table>tableseeoriginaldocumentpage9</column></row><table>实验结果表明将基频包络用于汉语孤立词识别能够充分利用汉语是声调语言的特点,并且对于特定人有限词汇量的汉语普通话孤立词识别能够取得良好的正确识别率。最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。权利要求1、一种基于基频包络的汉语普通话孤立词识别方法,包括以基频包络的形式事先存贮在模板库中的词汇,其特征是依次包括以下步骤1)、语音切割并降噪;2)、提取语音的基频特征;3)、判断当语料是用来训练、即语料库中没有相应的词汇时,进入步骤4);当语料是用来识别时,进入步骤5);4)、将该语料的基频特征加入到模板库中;5)、比较测试语音与模板的基频包络之间的相似性,取与测试语音距离最小的模板所代表的词汇作为识别结果;6)、输出识别结果。2、根据权利要求l所述的基于基频包络的汉语普通话孤立词识别方法,其特征是所述步骤2)采用自相关算法提取语音基频。3、根据权利要求2所述的基于基频包络的汉语普通话孤立词识别方法,其特征是所述步骤5)采用了动态时间规整的方法来比较测试语音与模板的基频包络之间的相似性。4、根据权利要求3所述的基于基频包络的汉语普通话孤立词识别方法,其特征是所述步骤5)中在动态时间规整的方法算出测试语音与模板之间的距离后,当测试语音的基频时长与模板的基频时长的差异大于某一阈值,那么就对距离进行补偿。5、根据权利要求4所述的基于基频包络的汉语普通话孤立词识别方法,其特征是所述步骤l)中使用短时能量检测语音端点,并降噪音,即静音切除。全文摘要本发明公开了一种基于基频包络的汉语普通话孤立词识别方法,包括以基频包络的形式事先存贮在模板库中的词汇,还依次包括以下步骤1)语音切割并降噪;2)提取语音的基频特征;3)判断当语料是用来训练、即语料库中没有相应的词汇时,进入步骤4);当语料是用来识别时,进入步骤5);4)将该语料的基频特征加入到模板库中;5)比较测试语音与模板的基频包络之间的相似性,取与测试语音距离最小的模板所代表的词汇作为识别结果;6)输出识别结果。本发明的方法通过对汉语声调的研究,依靠比较测试语音和模板的基频包络之间的相似性,从而实现汉语普通话孤立词识别。文档编号G10L15/00GK101409073SQ20081012229公开日2009年4月15日申请日期2008年11月17日优先权日2008年11月17日发明者吴朝晖,杨莹春,魏春明申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1