识别语音的几种依据
语音识别技术就是通过机器识别和理解过程把语音信号转变为相应的文本或命令; 说话人识别技术就是让机器通过你的声音纹路确定你的身份; 语种识别技术就是让机器识别你所说的语言的种类,如是英语还是汉语等。
近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。专家预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。
由于朗读方式的连续语音和通常自然口语化语音(Spontaneous)发音方式有很大的不同,电话语音通常包含更多的环境噪声、信道噪声和语音失真,因此如何有效提高自然口语化语音电话语音和广播语音识别性能是目前重要挑战。目前语音识别技术研究开始重点向电话语音和广播语音识别研究方向发展。利用目前已经比较成熟的技术,开发针对各种应用的语音识别产品,包括语音专用芯片、嵌入式语音识别系统、口语对话系统、声纹识别系统等,也是目前语音技术领域的热点之一。
语音识别整体模型
大词汇量连续语音识别系统的研究主要集中在声学模型和语言模型两个方面。语音信号本身的特点造成了语音识别的困难。这些特点包括多变性、动态性、瞬时性和连续性等。语音识别和理解是一项非常困难的任务,必须建立在从声学、语音学到语言学的知识为基础的语音处理机制上,才有可能获得高性能的自动语音识别系统。目前主流的语音识别的理论是基于统计模式识别原理。语音识别系统通常假设语音信号是由一系列编码组成。输入的语音波形首先被转换为一组离散的参数矢量。通常用O=o1,o2,∧,or表示语音发声一组待识别的特征参数矢量(观察矢量),其中每个矢量时间间隔典型取值为10ms~20ms。识别器的作用是把输入的语音特征矢量映射为潜在的文字序列。
语音识别的整体模型就是要把可利用的语音学和语言学信息用一个统一的模型来进行描述,以得到尽可能正确的句子识别。假设一句语音可以由字串W=w1,w2,∧,wr组成,识别系统要完成的任务是在给定观察矢量情况下,寻找最大可能(概率最大)的字串W。汉语和西方语言识别系统不同的地方在于汉语中的同音字和同音词比较多,汉语语音识别系统必须包含音字转换的过程。
建立语音识别模型的任务就是要把检测到的声学层语音信息通过适当的数学公式将识别结果W与O的关系表示出来。目前被认为最有效的语音识别模型就是基于统计的隐含马尔可夫模型。根据统计模式识别理论,在已知特征O的条件下,选择可以利用各种信息使后验概率最大。具有最大后验概率的结果为系统最可能的识别结果。
语音识别整体模型反映了实际中语音识别系统要解决的四个具有挑战的问题。首先,一个稳健的特征参数提取算法是必须的,并且该参数能很好地适用于语音的声学层模型。第二,必须根据不同语言的发音特点,建立具有很好鉴别力的声学层模型。模型参数必须能够从并不充分的语音数据中训练出来,并表现出稳健性。第三,必须建立一个语言模型,根据前面的历史语言模型能够指导向前搜索的过程。完善的语言模型还必须包含处理新词的能力,并且尽可能做到和文本的内容无关。第四,由于词汇数量是巨大的,一个实用系统必须有适合声学模型和语言模型的剪枝算法。
语音识别特征
选取语音的识别特征参数是语音识别系统中非常重要的一个方面。选取的特征应该对发音模板有较大的区分度和抗噪声性能。语音信号可以看成是准平稳的随机过程。在10~25ms的时间范围内语音信号可以被认为是平稳的,因此可以分帧对语音信号进行分析。对语音识别系统,典型帧长取值为25ms,帧移为10ms。汉明窗(Hamming)通常在分析中使用以提高分析准确性。预加重滤波器通常被用于补偿由于嘴唇辐射引起的高频频谱的衰减。
目前比较有效识别参数为Mel频率倒谱系数(Mel-Frequency Cepstral Coefficients MFCC)。MFCC参数都符合人耳的听觉特性,在有信道噪声和频谱失真情况下,该参数表现的比较稳健。由线性预测系数(Linear Prediction LP)导出倒谱系数也是一种常用的语音识别参数,在安静的环境下,线性预测倒谱系数和MFCC系数的性能相差不多。近来研究表明用感觉加权的线性预测(Perceptually Weighted Linear Prediction Cepstral Coefficients PLPCC)倒谱系数能有更好的识别稳健性。
在语音信号特征提取过程中,通常做一个不精确的假设,即不同帧间的语音是不相关的,由于人发音的物理条件限制,不同帧间语音必须是相关的,变化是连续的。可以用一阶差分系数和二阶差分系数来近似描述语音帧间的相关性。通常把分析得出的语音信号的倒谱特征称为语音的静态特征,而把这些静态特征的差分谱称为语音信号的动态特征。这些动态信息和静态信息成互补,能很大程度提高系统的识别性能。更好的语音动态特征可以用语音的帧间相关模型来描述,但是,其运算量较大。
简单增加语音特征参数的数量并不一定能够提高系统的识别率。增加模型参数的虽然能提高系统的鉴别能力,但同时也增加了系统的混淆性。因此如何有效的选取特征参数是一个重要问题。目前一种从多种参数中选取重要特征的方法是使用线性鉴别分析(Linear Discriminant Analysis LDA),通过LDA可以把原始的特征参数变换到一个维数更低的矢量空间,其改进方法包括异方差区分分析(Heteroscedastic Discriminant Analysis HAD)和混淆数据分析(Confusion Data Analysis CDA)。
声学模型
识别系统的声学模型是识别系统的底层模型。声学模型是语音识别系统中最为关键的一部分。声学模型的目的是提供一种有效的方法计算语音的特征矢量序列和每个发音模板之间的距离。人的发音在每一时刻都受到其前后发音的影响,为了模仿自然连续语音中协同发音作用和鉴别这些不同发音,通常要求使用复杂的声学模型。声学模型的设计和语言发音特点密切相关。
汉语的发音特点和西方语言有很大的不同。汉语的每个字发音较短,为带调单音节。它属于有调语言,调对区分汉字的意思起了很大的作用。汉语的每个发音中的辅音部分发音相对较短且词间的连音程度不如英语那么强。针对汉语的这些发音特点,目前的研究表明取半音节作为识别系统的识别单元就能够很好的描述汉语语音的细节。这些半音节通常称为声母和韵母,当然如果详细考虑到声母的左半连接关系和韵母的左半和右半连接关系,还可以细化为声韵母的三音子(Triphone)模型。进一步考虑前面两个和后面两个发音关系,还可以细化为五音子。三音子通常比二音子的数目大很多,可多达上万个。太多的模板,则要求非常大量的训练数据,才能达到稳健的参数估值。
基于一种语言学知识构成的判决树(Phonetic Decision Trees)方法可以结合语言学知识,由数据驱动方法根据语音数据多少,针对由语言学总结出来的发音特点对不同三音子构成在最大似然准则下进行聚类。保证生成模型在给定的数据下,模型参数能够稳健的估值。该方法收到良好的效果,有效地提高了系统的识别率。对统计模型语音识别系统来说,语音训练的数据相对来说总是不够的。提高模型参数估值稳健性的另一种办法是使用捆绑技术,捆绑技术使一些不同的发音模型在某些状态上共享模型参数,这可以很大程度上减少对训练数据的要求。
目前隐含马尔可夫模型HMM仍然是大词汇量语音识别算法的主流,它能对语音的时变性和动态性有很强的模型能力。HMM的从左到右状态转移模型,很好地描叙了语音发音特点。HMM可以分为连续密度隐含马尔柯夫模型、半连续隐含马尔柯夫模型和离散隐含马尔柯夫模型。通常连续密度隐含马尔柯夫模型精度最高,但计算量较大。每个发音音素通常采用3个状态隐含马尔柯夫模型。其结构如附图所示。考虑到在不同的帧上噪声、清音、浊音的短时能量和过零率有重叠的部分,语音信号的端点检测准确率不可能很高,尤其是在噪声较大的环境下。为解决这个问题,还必须设计能够模拟语句开头、结尾静音模型,以及句子中词间短暂停顿静音模型,要注意的是这两种静音模型有不同的统计特性和模型结构,必须分别加以考虑。
语音识别系统这一层模型通常称为声学模型,它是识别系统的最基础部分,对系统性能起到最关键的作用。近年来基于概率图模型和基于随机段模型的识别算法研究也取得显著进展,其识别率在一定程度上好于隐含马尔可夫模型的识别系统,并开始受到重视。
语言模型
一个识别系统必须在每一时刻检测是否遇到语音的发音边界,这样许多不正确字或词的猜测将会从不正确段的语音中识别出来。为了消除这些猜测字词之间的模糊性,语言模型是必须的。语言模型可以提供字或词之间的上下文信息和语义信息。由于语音信号的复杂性,不同音的发声类之间存在着叠接现象,有些单音如果没有前后联想即使人来分辨也是很困难的。通过语言模型可以提高声学模型的区分度,语言模型可以是语言中一些规则或语法结构,也可以是表现字或词的上下文之间的统计模型。目前比较成熟的方法是统计语言模型,它通过对大量文本文件的统计,得出了不同字词之间先后发生的统计关系。
语言模型是近年来自然语言处理领域研究的热点之一。虽然语音识别的声学模型可以做到于任务无关,但常规的语言模型目前还做不到这点。由于语言模型都是通过特定方面内容文本训练而成的,因此从新闻语料训练出来的语言模型,不能够用于识别文学方面的有关内容,这是常规语言模型的主要缺点之一。
语言模型不仅能用于语音识别,而且在音字转换、汉语分词、词性标注中也有应用。汉语的同音字现象很严重,虽然汉语只有无调拼音408个,有调拼音1254个,但平均一个有调拼音要对应5、6个汉字,有的高达十几个。汉语可读的文本是汉字形式,所以音字转换是语音识别的重要步骤。
语言模型不仅可以用于语音识别系统中,还可以用于一般的音字转换系统中。
在转换中可以用基于词的语言模型或基于字的语言模型。实验表明,基于词的语言模型要比基于字的语言模型更精确。表中对应音字转换的数据是在三元文法语言模型下转换字正确率的百分比。
表中的Perplexity通常称为语言模型困惑度或分支度,它可以用于度量语言模型的性能,表明在语言模型的限制下,每个词后面平均能够连接词的个数,其值越小说明语言模型越有效。反过来,如果保持系统识别率不变,则Perplexity越大,系统对语言文法的限制也越宽松。从表中可以看出,基于词的语言模型确实比基于字的语言模型效果好。基于词的模型Perplexity低,而且音字转换准确率高,但是构造基于词的语言模型比较复杂,构造起来也比较麻烦。
链接:说话人自适应
说话人之间的差异对非特定人语音识别系统造成的影响主要有两方面原因: 1.当某一使用该系统的说话人语音与训练语音库中的所有说话人的语音都有较大的差别时,对该使用者的语音识别将很难进行; 2. 训练一个较好的识别系统需要采集数量很大的说话人的语音用于训练,让训练语音库覆盖更为广泛的语音空间,这样虽然可以减低原因1中的影响,但同时会造成识别系统参数分布较广,而不是较为尖锐的分布,造成识别性能的普遍下降。
特定人识别系统虽然可以克服非特定人系统的以上缺点,但该系统需要使用者录入大量的语音用于训练,给使用者带来很大的不便,对于大词汇量的识别系统,所需的语音训练的数量是令人无法忍受的。
近年来,人们采用说话人自适应(Speaker Adaptation, SA)算法有效地解决了特定人和非特定人系统各自的缺点。该方案利用系统使用者的少量训练语音,调整系统的参数,使得系统对于该使用者的性能有明显的提高。与非特定人识别系统相比, 说话人自适应系统由于考虑了用户的特殊信息,因此识别性能优于非特定人语音识别系统; 而与特定人语音识别系统相比,说话人自适应系统纳入了非特定人识别系统的先验信息,需要用户提供的训练音数量远低于特定人语音识别系统,有更好的实用性。因此非特定人+自适应成为当前各语音识别系统采用的实用框架。
按照训练语音获取的不同形式,自适应方式可以分为: 批处理式: 训练语音是由用户一次性录入,然后进行统一的自适应训练,更新系统参数; 在线式: 训练语音是用户使用识别系统时所识别的语音,系统根据累积的统计量,按照一定时间间隔更新系统参数; 立即式: 训练语音是当前正在识别的语音,该模式与在线式模式间的差别在于立即式自适应只利用当前的语音作自适应,没有在线式自适应的累积过程。
从实用角度看,在线式和立即式自适应模型由于不需要用户一次性输入一批训练语音,所以对用户的界面更具友好性。从实现的角度看,批处理式自适应的实现难度低于在线式和立即式。而从自适应的性能看,批处理与在线式的算法本质是一致的,因此性能也基本一致,立即式自适应由于没有累积的过程,利用语音的信息少,所以性能劣于前两者。
计算机世界网