资源描述
内蒙古科技大学本科生毕业设计说明书(毕业论文)题 目:利用 HMM 技术实现基于文本相关的语音识别学生姓名: 学 号:专 业:电子信息工程 班 级:信息 2003-4 班指导教师: 内蒙古科技大学毕业设计说明书(毕业论文) I摘要摘要语音识别作为一个交叉学科,具有深远的研究价值。语音识别和语音合成技术已经成为现代技术发展的一个标志,也是现代计算机技术研究和发展的一个重要领域。虽然语音识别技术已经取得了一些成就,也有部分产品面世,但是,大多数语音识别系统仍局限于实验室,远没有达到实用化要求。制约实用化的根本原因可以归为两类,识别精度和系统复杂度。HMM是一种用参数表示的用于描述随机过程统计特性的概率模型,它是由马尔可夫链演变来的,所以它是基于参数模型的统计识别方法。它是一个双重随机过程具有一定状态数的隐马尔可夫链和显示随机函数集,每个函数都与链中一个状态相关联。“隐”的过程通过显示过程所产生的观察符号序列来表示,这就是隐马尔可夫模型。本文主要介绍了语音识别的预处理,隐马尔可夫模型(Hidden Markov Models,HMM)和语音识别的基础理论和发展方向。对数字 09 的识别进行了详细的 Matlab 语言实现。关键词:关键词:HMM;文本相关;语音识别内蒙古科技大学毕业设计说明书(毕业论文) IIAbstractAs an interdisciplinary field, speech recognition is theoretically very valued .Speech recognition has become one of the important research fields and a mark of the development of science. Although speech technology has got some achievements, most speech recognition systems are still limited in lab and would have problems if migrated from lab which are much far from practicality. The ultimate reasons for restricting practicality can be classified to two kinds, one is precision for recognition and the other is complexity of the system.HMM is one kind expresses with the parameter uses in the description stochastic process statistical property probabilistic model, it is may the husband chain evolve by Mar, therefore it based on parameter model statistics recognition method. It is a dual stochastic process has the certain condition number to hide type Markov to be possible the husband chain and the demonstration stochastic function collection, each function all a condition is connected with the chain in. Hidden Markov process the observation mark sequence which produces through the demonstration process to indicate that, this is hides type Markov to be possible the husband model.This article mainly introduced the speech recognition pretreatment, hides Mar to be possible the husband model (Hidden Markov Models, HMM) and the speech recognition basic theory and the development direction. Has carried on the detailed Matlab language realization to the number 09 recognitions.Key word: HMM; Text Correlation; Speech recognition内蒙古科技大学毕业设计说明书(毕业论文) III目录目录摘 要.IABSTRACT.II第一章 绪论 .11.1 背景、目的和意义 .11.2 发展历史和国内外现状 .11.3 语音识别系统概述 .31.3.1 语音识别系统构成 .31.3.2 语音识别的分类 .41.3.3 识别方法介绍 .5第二章 语音信号的预处理及特征提取 .82.1 语音信号的产生模型 .92.2 语音信号的数字化和预处理 .92.2.1 语音采样 .102.2.2 预加重.102.2.3 语音信号分帧加窗 .112.3 端点检测 .132.3.1 短时能量 .132.3.2 短时平均过零率 .142.3.3 端点检测“双门限”算法.152.4 语音信号特征参数的提取 .162.4.1 线性预测倒谱系数 LPCC .162.4.2 Mel 倒谱系数 MFCC.172.4.3 LPCC 系数和 MFCC 系数的比较18第三章 隐马尔可夫模型(HMM).203.1 隐马尔可夫模型 .203.1.1 隐马尔可夫(HMM)基本思想.20内蒙古科技大学毕业设计说明书(毕业论文) IV3.1.2 语音识别中的 HMM .243.1.3 隐马尔可夫的三个基本问题10.243.1.4 HMM 的基本算法 .253.2 HMM 模型的一些问题 .283.2.1 HMM 溢出问题的解决方法 .283.2.2 参数的初始化问题 .293.2.3 提高 HMM 描述语音动态特性的能力 .313.2.4 直接利用状态持续时间分布概率的 HMM 系统 .31第四章 基于文本相关的语音识别 .334.1 引言 .334.2 HMM 模型的语音实现方案 .334.2.1 初始模型参数设定 .344.2.2 HMM 模型状态分布 B 的估计.344.2.3 多样本训练 .354.2.4 识别过程 .364.3 仿真过程及系统评估 .374.3.1 语音数据的采集及数据库的建立 .374.3.2 仿真实验HMM 用于语音识别 .384.3.3 Matlab 编程实现.404.4 系统仿真中的若干问题 .43总结展望 .44参考文献 .45附 录 .46致 谢.54内蒙古科技大学毕业设计说明书(毕业论文) 1第一章第一章 绪论绪论1.1 背景、目的和意义背景、目的和意义让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。随着计算机越来越向便携化方向发展和计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输入这样便于使用的、自然的、人性化的输入方式。尤其是汉语,它的汉字输入一直是计算机应用普及的障碍,因此,利用汉语语音进行人机交互是一个极其重要的研究课题。它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理,工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询,以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面1。语音识别是一门涉及面很广的交叉学科,它是目前发展最为迅速的信息研究领域之一,它与语音学、语言学、数理统计学和神经生理学等学科有非常密切的关系。语音识别的目标是让机器能听懂人类口述的语言,语音识别中的汉语数字语音识别,具有更为重要的意义。汉语数字语音识别的任务是识别“0”到“9”等10个非特定人汉语数字语音。信用卡号码、电话语音拨号、个人身份证号码、电子密码等都具有数字化特征,因此,连续数字语音识别成为语音识别中极其重要的一项任务。一方面,连接数字语音识别可以识别用户说出的数字串,向用户提供最自然、最灵活和最经济的人机接口界面,从而能有效解决军用和民用领域中遇到大量数据录入问题,另一方面,由于电话网络的日益普及,连接数字语音识别也可以用于电话人口统计、远程股票交易及各种号码的远程认证等。因此,汉语数字语音识别(mandarin digit speech recognition, MD SR) 是语音识别领域中一个具有广泛应用背景的分支。随着计算机软硬件的飞速发展,汉语语音识别技术也有了很大的进步。如在掌上电脑上使用语音识别技术,乃至固定到一个小小的芯片上,将为语音识别应用开拓更新的领域。1.2 发展历史和国内外现状发展历史和国内外现状内蒙古科技大学毕业设计说明书(毕业论文) 2 语音识别的研究工作大约开始于上个世纪50年代。1952年贝尔(Bell)实验室的Davis等人首次研制成功能识别10个英语数字的实验装置。1956年Olson和Belar等人用8个带通滤波器组提取频谱参数作为语音的特征,研制成功一台简单的语音打字机。20世纪60年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅里叶变换等成为语音信号数字处理的理论和技术基础。在方法上,随着电子计算机的发展,以往的以硬件为中心的研究逐渐转化为以软件为主的处理研究。然而,在语音识别领域内,初期有几种语音打字机的研究也很活跃,但后来已全部停了下来,这说明了当时人们对语音识别难度的认识得到了加深。到了1970年,单词识别装置开始了实用化阶段,其后实用化的进程进一步高涨,实用机的生产销售也上了轨道。此外社会上所宣传的声纹(Voice Print)识别,即说话人识别的研究也扎扎实实地开展起来,并很快达到了实用化的阶段。到了1971年,以美国ARPA(American Research Projects Agency)为主导的“语音理解系统”的研究计划也开始起步。这个研究计划不仅在美国国内,而且对世界各国都产生了很大的影响,它促进了连续语音识别研究的兴起。历时五年的庞大的ARPA研究计划,虽然在语音理解、语言统计模型等方面的研究积累了一些经验,取得了许多成果,但没能达到巨大投资应得的成果,在1976年停了下来,进入了深刻的反省阶段。即使这样,在整个20世纪70年代还是有几项研究成果对语音信号处理技术的进步和发展产生了重大的影响。这就是20世纪70年代初由板仓(Itakura)提出的动态时间规整(DTW)技术,使语音识别研究在匹配算法方面开辟了新思路;20世纪70年代中期线性预测技术(LPC)被用于语音信号处理,此后隐马尔可夫模型法(HMM)也获得初步成功,该技术后来在语音信号处理的多个方面获得巨大成功;20世纪70年代末,Linda, Buzo, Gray和Markel等人首次解决了矢量量化(VQ)码书生成的方法,并首先将矢量量化技术用于语音编码获得成功。从此矢量量化技木不仅在语音识别、语音编码和说话人识别等方面发挥了重要作用,而且很快推广到其他许多领域。20世纪80年代,由于矢量量化、隐马尔可夫模型和人工神经网络(ANN)等相继被应用于语音信号处理,并经过不断改进与完善,其中,隐马尔可夫模型作为语音信号的一种统计模型,在语音信号处理的各个领域中获得了广泛的应用。其理论基础是1970年前后,由Baum等人建立起来的,随后,由美国卡内基-梅隆大学(CMU)的Baker和美国IBM公司的Jelinek等人将其应用到语音识别中。由于美国贝尔实验内蒙古科技大学毕业设计说明书(毕业论文) 3室的Rabiner等人在20世纪80年代中期,对隐马尔可夫模型深入浅出的介绍,才使世界各国从事语音信号处理的研究人员了解和熟悉,进而成为一个公认的研究热点,也是目前语音识别等的主流研究途径。进入20世纪90年代以来,语音识别在实用化方面取得了许多实质性的研究进展,逐渐由实验室走向实用化。一方面,对声学语言学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫的模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别实用化的需要,讲者自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题倍受关注。进入21世纪,语音识别技术将使计算机丢掉键盘和鼠标。这无疑将改变我们许多人的工作和生活方式。我国语音识别研究工作一直紧跟国际水平,国家也很重视,并把大词汇量语音识别的研究列入“863”计划,由中科院声学所、自动化所及北京大学等单位研究开发。鉴于中国未来庞大的市场,国外也非常重视汉语语音识别的研究。美国、新加坡等地聚集了一批来自大陆、台湾、香港等地的学者,汉语大词汇量语音识别都达到了相当高的水平。与此相反,汉语数字语音识别技术虽然在移动通信、电脑话务员、电话证券交易等领域有着极大的应用价值,并因此受到国内科研单位的广泛重视,但是其进展却相当缓慢。这主要是因为汉语数字语音识别存在诸多困难。语音间高混淆的问题,由于汉语数码语音的音节数少,因此,语音混淆高;非特定人问题,汉语是一种多方言语种,由于各地人群在普通话中带有或多或少的方言,因此这种数字语音识别系统仍然具有很大难度;噪声环境问题,由于环境复杂,噪声源较多,使得相应的数字语音识别任务相当艰巨。连续语音问题,汉语数字连续语音的连续程度高2。1.3 语音识别系统概述语音识别系统概述1.3.1 语音识别系统构成语音识别系统构成大部分语音识别系统都采用的是模式匹配的原理,系统的一般结构可以用图1.1表示3。内蒙古科技大学毕业设计说明书(毕业论文) 4图 1.1 语音识别系统的原理框图 语音信号首先经过预处理,之后提取特征参数。训练在识别之前进行,通过讲话者多次重复语音,从原始语音样本中去除冗余信息,保留关键数据,再按照一定规则对数据加以聚类,形成模式库。将提取的参数根据一定的准则(如某种距离测度),计算其与库存模式之间的相似度(如匹配距离、似然概率),判断输入语音的语意信息,这就是语音识别。预处理单元的功能是通过高频预加重来平滑信号频谱,并利用窗函数把语音数据序列分成连续的信号帧。特征提取单元的功能是完成基于频谱的特征矢量的计算。当端点检测单元检测到当前语音信号帧为起始帧时,特征提取单元开始特征提取计算,并存储帧特征矢量。语音帧特征矢量按照一定的要求处理后,作为识别模型的特征参数,建立模型库。最后,模式匹配单元完成特征观察矢量与己知的语音信号模板之间的匹配计算, 并选择其中匹配程度最高的语音信号模板作为识别结果。鉴于不是每个系统都能为每一个词都建立相应的语音识别模板,那将导致识别难度和计算量大大增加,因而建立更加精细的语言转换概率库己成为大词汇量语音识别系统中的一个研究热点。1.3.2 语音识别的分类语音识别的分类对于语音识别系统,较为普遍的分类如下: 从识别的词汇量分 每一个语音识别系统都必须有一个词汇表。系统只能识别表中所包含的词条。训练 语音信号预处理逐帧特征提取失真测度模式匹配模型库识别结果识别内蒙古科技大学毕业设计说明书(毕业论文) 5通常,词条越多,则相似的词也越多,这样其误识率也相应增加;此外,随着词数增加,搜索运算使计算开销迅速增加。因此词的数量越多,则系统实现越困难。词汇表的大致划分标准是,词数少于100时,称为小词汇表;100-500称为中词汇表;超过500时称为大词汇表。 从识别的基本单元来分 语音识别按系统的识别对象可分为孤立词、连接词和连续语音三种方式。孤立词识别(IWR, Isolated Word Recognition)是指对说话人每次只说一个字、一个词或一条命令这样的孤立词进行识别, 其中的词或命令在词汇表中都作一个独立的词条;连接词识别(CWR, Connected Word Recognition)一般特指对十个数字(0-9)连接而成的多位数字的识别,有时还可加上少量的操作指令,这时词汇表只由这十个数字及少数指令构成;连续语音识别(CSR, Continuous Speech Recognition)是对说话人以日常自然讲述的方式而进行的识别。这三种方式,其识别困难是依次递增的。 从识别对象来分 语音识别系统可以是只针对一个用户的,例如个人专用的语音打字机,这称为特定人工作方式(SD, Speaker Dependent);系统若是针对任何人的,则称为非特定人方式(SI, Speaker Independent),电话和数据检索系统中所用的识别器即属这种情况。显然,后者的实现难度较前者大得多。1.3.3 识别方法介绍识别方法介绍 VQ识别 矢量量化(Vector Quantization, VQ)是一种极其重要的信号压缩方法,广泛应用与图像信号压缩、语音信号压缩等领域。其核心思想是:如果一个码书是为某一特定的信源而优化设计,那么由这一信息源产生的信号与该码书的平均量化失真就小于其他信息的信号与该码书的平均失真。这就意味着编码器本身就存在区分能力,因而可以用于语音识别。 每帧语音经过特征提取后,得到一个n维特征矢量,该矢量可以看作n维特征空间的一个点。这样,一个发音转化为特征序列后,在特征空间中形成相对应的一组点。观察大量这样的特征点组合可以发现,这些点构成了一个一个集合,这些集合在语音特征空间中称为“类”。VQ的主要工作是聚类,即通过训练特征空间中合理的拟定一组点,作为各个类的中心,这一组称为该字音的码本,其中每个点称为内蒙古科技大学毕业设计说明书(毕业论文) 6码字。对于整个识别系统,每个字音各自具有其单独的码本。识别时,将待识别语音特征序列的每个特征与某字音码本的各码字作比较,记下其最小距离,则整个序列的各帧最小距离之和作为判别用距离。最小距离所对应的字音,即为识别判决的结果。 动态时间规整(DTW) 日本学者Itakura根据语音识别符合多阶段决策的内在特性,将动态规划思想引入到识别中,提出动态时间规整(Dynamic Time Warping, DTW)技术,极大地提高了语音识别的效果,推动了语音识别的发展。由于同一个人对同一字音的两次发音, 在发音速度以及字音内部相对瞬时速度上必然存在一定的差异。在对两个发音的特征序列进行距离计算时,两序列总长度一般不一致,因而无法直接对对应帧进行距离计算。虽然将较短的帧进行线性扩张或将较长的帧进行线性压缩后可以解决长度不等问题,但由于两次发音内部相对瞬时速度会有非线性的变化,仅以这两个发音的特征序列的对应帧进行匹配,通常难以达到理想的效果。动态时间规整算法实质上是在一个限定范围内对起止点相同的多条匹配路径进行搜索,按照沿路径匹配累积距离最小准则,寻找其中的最优路径作为匹配路径。该路径匹配累积距离作为两个特征序列间距离。 在DTW中,由于局部优化问题的计算结果不需要重新计算,因而实现起来非常简单。该方法用于小词汇量表的语音识别时得到了较好的效果,但是不适合连续语音大词汇量语音识别系统。 HMM识别隐马尔可夫模型(Hidden Markov Models. HMM)作为语音信号的一种统计模型,当今正在语音处理各个领域中获得广泛的应用。其理论基础是1970年前后,由Baum等人建立起来的,随后,由美国卡内基-梅隆大学(CMU)的Baker和美国IBM公司的Jelinek等人将其应用到语音识别中。由于美国贝尔实验室的Rabiner等人在20世纪80年代中期,对隐马尔可夫模型深入浅出的介绍,才使世界各国从事语音信号处理的研究人员了解和熟悉,进而成为一个公认的研究热点,也是目前语音识别等的主流研究途径。隐马尔可夫模型利用概率及统计范畴的理论成功地解决了如何辨识具有不同参数的短时平稳信号段;怎样跟踪它们之间的转化等问题。将HMM应用于语音识别内蒙古科技大学毕业设计说明书(毕业论文) 7基于如下假设,虽然语音声学信号本身受各种因素的影响而表现很强的不确定性,但声学信号中隐含的语义信息是确定的,并且所能观察到的语音信号的变化是由隐含语义信号的变化决定的。HMM用隐含的状态对应于声学层各相对稳定的发音单位,在生成一个单词时,系统不断地由一个状态转移到另一个状态,每一个状态都产生一个输出,直至整个单词输出完毕。HMM使用马尔可夫链来模拟信号统计特性的变化,而这种变化又是间接地通过观察序列来描述的,因此它是一个双重随机过程。本文将在第三章对HMM模型做详细介绍。 其它识别系统除上述各识别系统外,还有基于先验知识或规律的识别系统,基于音素的识别系统,基于神经网络(ANN)的识别系统以及多种改进型的混合HMM识别系统等这些不同的识别方法从不同角度利用语音的某些特性、人脑的感知过程、先验知识规律等信息进行识别,起到了良好的作用。内蒙古科技大学毕业设计说明书(毕业论文) 8第二章第二章 语音信号的预处理及特征提取语音信号的预处理及特征提取语音识别本质上是一种模式识别的过程,对于不同的识别系统要求,语音识别系统的设计和实现方法也不尽相同。但大体上可以有以下划分:孤立语音和连续语音识别系统;大词表和小词表语音识别系统;特定人和非特定人语音识别系统3。不同的语音识别系统,尽管设计和实现的细节不同,但所采用的基本技术是相似的,其基本原理结构原理框图如图2.1所示,主要包括:语音信号预处理、特征提取、特征建模(建立参考模式库)。相似性度量和后处理等几个模块,其中后处理模块为可选部分。识别结果预处理特征提取模型匹配参考模式库后处理识别训练模型匹配图2.1 语音识别基本原理框图语音信号经麦克风转换成电信号后加在识别系统的输入端,它首先要经过预处理,预处理包括预加重、加窗、分帧和端点检测。经过预处理后,提取语音信号的特征参数,这些特征参数包括:短时平均能量或幅度、短时平均过零率、短时自相关函数、线性预测系数、线性预测倒谱、Mel倒谱系数等。根据实际需要选择语音特征参数,这些特征参数的时间序列便构成了待识别的语音模式,将其与已经存储在计算机内的参考模式逐一进行比较(模式匹配),获得最佳匹配(由判决规则确定)输入语音内蒙古科技大学毕业设计说明书(毕业论文) 9的参考模式便是识别结果。参考模式是在系统使用前获得并存储起来的,为此,要输入一系列已知语音信号,提取它们的特征作为参考模式,这一过程称为训练过程。显然,最佳匹配结果的获得与特征的选择、语音模型的好坏、模板是否准确都有直接的关系,这也是目前语音识过程中的一个难点4。2.1 语音信号的产生模型语音信号的产生模型讨论语音识别系统实现前,将语音信号的产生模型作为独立模块拿出来,作为语音信号的处理基础之一,在后面章节的讨论中,线性预测、预加重、同态信号处理等概念都依赖于语音信号产生模型5。模型如图2.2。语音信号可以看作是激励信号激励一个线性系统而产生的输出。其中浊音信号是由一个周期性的脉冲串激励线性系统生成输出的,这个线性系统由声门脉冲模型、声道模型、辐射模型级联而成。系统传输函数为:Hv(z)=G(z)-V(z)-R(z) (2.1)激励信号是一个周期性的脉冲串: (2.2)( )()rp nnr NpA那么浊音信号就是两者的卷积结果,即:x(n)=p(n)*hv(n) (2.3)而清音信号是由白噪声序列激励一个线性系统而产生输出,这个线性系统仅由声道模型和辐射模型级联而成。系统传输函数为: Hu(z)=V(z)-R(z) (2.4) 激励信号u(n)假定为白噪声序列,于是有: x(n)=u(n)*hu(n) (2.5)浊音/清音开关uAS(n)vA周期脉冲发生器声门脉冲模型随机噪声发生器声道模型辐射模型图2.2 语音信号的发声模型内蒙古科技大学毕业设计说明书(毕业论文) 10 2.2 语音信号的数字化和预处理语音信号的数字化和预处理语音信号的数字化一般包括放大及增益控制、反混叠滤波、采样、A/D 变换及编码。预处理包括预加重、加窗及分帧等。在分析处理语音信号之前还必需进行语音信号的端点检侧。把要分析的语音信号部分从输入的信号中找出来。2.2.1 语音采样语音采样 语音信号是随时间而变的一维信号,它所占据的频率范围可达10KHz以上,但是对语音清晰度可懂度有明显影响的成分最高频率约有5.7KHz。一般语音信号的采样频率为10KHz或16KHz,这样作对语音信号的清晰度有损害,但只是少数辅音损失,语音信号本身有较大的冗余度,少数辅音清晰度下降并不影响语音的理解。例如ITU数字电话G.711协议,采样频率为8KHz,只用了3.4KHz以内的语音信号6。要用计算机分析说话人的语音,就要将话筒中传来的语音信号转换成计算机所能处理的数字信号。据奈奎斯特采样定理,如果模拟信号的频谱带宽是有限的(例如不包含高于fm的频率成分),那么用等于或高于2fm的取样频率进行取样(即用等于或小于1/(2fm)的间隔取样),则所得到的等间隔离散时间取样值(取样信号)能够代表原模拟信号。下面采样得到的数字2的语音波形:图2.3 数字“2”的语音波形2.2.2 预加重预加重 由于语音信号s(n)的平均功率谱受声门激励和口鼻辐射的影响,高频端大约在内蒙古科技大学毕业设计说明书(毕业论文) 11800Hz以上按6db/oct(倍频程)衰减,所以求语音信号频谱时,频谱越高相应的成分越小,高频部分的频谱比低频部分的难求,为此要在对语音信号s(n)进行分析之前对其高频部分加以提升。信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪求频谱,以便频谱分析或声道参数分析。常的措施是用一个数字滤波器实现预加重,其公式表示为: (2.6)( )( )(1)Y nX nX n (2.7)1( )1,0.91.0H zaza 为原始信号序列,预加重后序列,预加重系数,通常取值0.98或1.0。( )X n( )Y n这样预加重网络的输出和输入的语音信号的关系可用一差分方程表示:( )s n( )s n (2.8)( )( )(1)s ns nas n2.2.3 语音信号分帧加窗语音信号分帧加窗 语音信号是一种典型的非平稳信号,图2.3为汉语数字“2”发音的部分波形,其特性是随时间变化的,但是语音的形成过程是与发音器官的运动密切相关的,这种物理运动比起声音振动速度来将要缓慢得多,因此语音信号常常可假定为短时平稳的,即在1020ms的时间段内,其频谱特性和物理特征参量可近似看作是不变的7。这样,就可以采用平稳过程的分析处理方法来处理了。因此各种语音信号都可以分割为一些帧再加以短时处理。对每帧语音进行处理就等效于对固定特性的持续语音进行处理。每帧之间彼此经常有一些叠加,对每帧的处理结果可用一个数或一个组数来表示。因此语音信号经过处理后将产生一个新的依赖于时间的数据序列。这些数据用于描述语音信号的特征。 设原始语音信号采样序列为s(m),将其分成一些帧,等效于乘以幅度为1的窗函数w(n-m)。当窗函数幅度不是1而是按一定函数取值时,所分成的帧的各个取样值将受到一定程度的加权。 对语音信号的各个帧进行处理,实际上就是对各个帧进行某种变换或施以某种运算,其一般式为: (2.9) ( ) ()nmQT s m w nm其中T表示某种变换,它可以是线性的也可以是非线性的,s(n)为输入语音内蒙古科技大学毕业设计说明书(毕业论文) 12信号序列。Qn是所有各段经过处理后得到的一个是时间序列。 用得最多的三种窗函数是矩形窗、汉明窗(Hamming)和汉宁窗(Hanning),其定义分别为: 矩形窗: (2.10)10( )w n 01n N 其他 汉明窗: (2.11)0.54 0.46cos(2/(1) 0 ( )nNw n01n N 其他 汉宁窗: (2.12)0.51 cos(2(1)0( )n Nw n01n N 其他语音分帧算法是用如下程序实现:% 语音信号分帧: xx=enframe(xx,256,80);%而enframe的具体定义为:function f=enframe(x,win,inc)nx=length(x);nwin=length(win);if (nwin = 1) len = win;else len = nwin;endif (nargin 1) w = win(:); f=f*w(ones(nf,1),:);end2.3 端点检测端点检测从背景噪声中找出语音的开始和终止点,这是在很多语音处理应用中的基本问题。端点检测对于语音识别有着重要的意义。在孤立词识别中,确定单词语音信号的开始和终止可以减少非实时系统中的大量计算;连续语音识别中识别基元(字词、音节、声韵母)的切分,可用于语音数据库训练。实验统计数字表明,起始点(beginning point)和终点(end point)的偏离对语音识别最终准确性影响明显:30ms内的偏移对应精确度下降2%,当超过90ms时,影响达到30%。2.3.1 短时能量短时能量短时能量的主要意义在于给出了区分清音段和浊音段的基础,清音比浊音的幅度要小得多,清音段的能量值明显小于浊音段,因此能量函数可用来大致定出浊音语音和清音语音的变化时刻。对于高信噪比的条件下,可以用能量来区分有无语音。可以将短时能量看作语音信号的平方通过一个冲击响应为h(n)的线性虑波器后的输出。语音信号的短时能量的定义如下: (2.13)2 ( ) ()nEs m w nm 其中窗函数w(n)为上面讨论的任意一种,这里窗长N的选择对于反映语音信号的幅度变化起着决定的作用。如果N很大,它等效于很窄的低通滤波器,此时En随时间的变化很小,不能反映语音信号的幅度变化,信号的变化细节就看不出来;反之,N太小时,滤波器的通带变宽,En随时间有急剧的变化,不能得到平滑的能量函数。因此,窗口长度的选择应合适。图2.4是数字“2”的短时能量函数图。如图所示:内蒙古科技大学毕业设计说明书(毕业论文) 14图2.4 数字“2”的短时能量图短时平均能量的主要用途有: 区分清音段和浊音段,语音为浊音时的短时能量值比清音时大得多,根据语音信号短时能量值的变化,可以大致判定浊音变为清音和清音变为浊音的时刻。 在高信噪比的语音信号中,可以用来区分有无语音,此时,无语音信号的噪声能量很小,而有语音信号时短时能量值显著增大到某一数值,由此可以区分语音信号的开始点和终止点。但是,En值对于高电平信号非常敏感(因为计算时用的是信号的平方),因此在实际使用时需加以处理,例如取对数等,以便将数值限制在一定的范围内。2.3.2 短时平均过零率短时平均过零率 过零分析是语音时域分析中最简单的一种,顾名思义,过零就是信号通过零值。对于连续语音信号,可以考察其时域波形通过时间轴的情况。而对于离散时间信号,如果相邻的取样值改变符号则称为过零。由此可以计算过零数,过零数就是样本改变符号的次数。单位时间内的过零数称为平均过零率。 对于语音信号的特征,其属于宽带信号,但是可以用短时平均过零率来计算。则语音信号s(n)的短时平均过零率定义为: (2.14)|sgn ( )sgn (1)|()|sgn ( )sgn (1)|( )nZs ms mw nms ns nw n式中: (2.15)1s( )1( ) 0sgn ( )ns ns n 内蒙古科技大学毕业设计说明书(毕业论文) 15w(n)为窗口函数,其作用与求短时平均能量时一样。一般取: (2.16)120 n N-10( ) Nw n 其他根据声学原理,发浊音时能量主要集中在3kHz以下。而发清音时,多数能量出现在较高频率上。因此就可以认为发浊音时具有较低的平均过零率,而发清音时具有较高的平均过零率,因而可以根据平均过零率来粗略区分清音和浊音。图2.5是对数字“2”的平均过零率的测量结果。由图可见,高平均过零率对应于清音,低平均过零率对应于浊音。再就是,短时平均过零率还可以用于识别语音段的起点和终点。图2.5 数字“2”的短时过零率图2.3.3 端点检测端点检测“双门限双门限”算法算法语音端点检测就是检测语音信号的起点和终点。有效的端点检测不仅能使处理时间减小到最小,而且能排除无音段的噪音干扰,从而使识别系统具有良好的识别性能。它是语音处理技术中重要的一方面。其目标是要在一段输入信号中将语音信号同其他信号(如背景噪声)分离开。在语音识别中,一个关键问题就是如何将语音信号精确地检测出来,为获得准确的识别提供前提。在背景噪声较小时用短时能量鉴别端点很有效,而背景噪声很大时使用短时平均过零率鉴别端点较为有效。但在有以某些音为开头或结尾时,只用其中一个参内蒙古科技大学毕业设计说明书(毕业论文) 16量来识别语音的起点和终点是有困难的,必须同时使用这两个参数。端点检测一般用短时能量和短时平均过零率相结合的方式来加以解决。本文采用被称为“双门限法”的端点检测算法,其端点检测算法的流程为8:在开始进行端点检测之前,首先为短时能量和过零率分别确定两个门限。一个是比较低的门限,其数值比较大,信号必须达到一定的强度,该门限才可能被超过。低门限被超过未必就是语音的开始,有可能是时间很短的噪声引起的。高门限被超过则可以基本确信是由于语音信号引起的。整个语音信号的端点检测可以分为四段:静音、过渡段、语音段、结束。程序中使用一个变量status来表示当前所处的状态。在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果在过渡段中两个参数中的任一个超过了高门限,就可以确信进入语音段了。一些突发性的噪声也可以引起短时能量或过零率的数值很高,但是往往不能维持足够长的时间。如门窗的开关、物体的碰撞等引起的噪声,这些都可以通过设定最短时间门限来判别。当前状态处于语音段时,如果两个参数的数值降低到低门限以下,而且总的计时长度小于最短时间门限,则认为这是一段噪音,继续扫描以后的语音数据,否则就标记好结束端点,并返回。具体语音端点检测程序vad.m请见附录。2.4 语音信号特征参数的提取语音信号特征参数的提取语音信号完成分帧处理和端点检测后,下一步就是特征参数的提取。在语音识别中,我们不能将原始波形直接用于识别,必须通过一定的变换,提取语音特征参数来进行识别,而提取的特征必须满足: 特征参数应当反映语音的本质特征,对于非特定人语音识别,特征参数则应尽量不含有说话人的信息。 特征参数各分量之间的耦合应尽可能地小,以起到压缩数据的作用。 特征参数要计算方便,最好有高效的算法。 语音特征参数可以是能量、基音频率、共振峰值等语音参数,目前在语音识别内蒙古科技大学毕业设计说明书(毕业论文) 17中较为常用的特征参数为线性预测倒谱系数(LPCC)与Mel倒谱系数(MFCC)。二者都是将语音从时域变换到倒谱域上,前者从人的发声模型角度出发,利用线性预测编码(LPC)技术求倒谱系数。后者则构造人的听觉模型,以语音通过该模型(滤波器组)的输出为声学特征,直接通过离散傅立叶变换(DFT)进行变换。2.4.1 线性预测倒谱系数线性预测倒谱系数 LPCC在图2.2中提到了语音信号分析过程中经常要用到一个重要的语音产生模型 声道模型。声道模型是将人从喉到嘴唇这一段发音腔体用一系列截面积不同的均匀声管来模拟。根据声管的声学模型,利用物理学知识,我们可以计算出这段声管模型与信号处理中的全极点模型相类似。因此,我们可以应用信号处理中己有的算法对其进行处理。在这个语音产生的声道模型中,语音中的浊音部分可以认为是由一连串有规律的周期信号(此周期与浊音的基音周期相吻合)来激励声道模型而产生;而清音部分则被认为是由一连串无规律的白噪声信号激励声道模型而产生的。因此,若能准确地估计出声道的形状或模型参数,我们就有望用此模型参数作为语音信号的特征来完成语音信号的识别任务。数字信号处理中,可以用LPC(线性预测编码)的算法来估计出此全极点模型的参数。线性预测是最佳线性向前一步预测,语音信号线性预测的基本思想是:语音信号的每个取样值,可以用它过去若干个取样值的加权和(线性组合)来表示;各加权系数的确定原则是使预测误差的均方值最小。在语音识别系统中,利用同态处理方法,通过对LPC系数求离散傅立叶变换(DFT)后取对数,再求反离散傅立叶变换(IDFT)可得到线性预测倒谱系数LPCC。2.4.2 Mel 倒谱系数倒谱系数 MFCCMEL倒谱系数(Mel Frequency Cepstrum Coefficients)的提出是基于人的听觉模型,MEL是音高单位,音高是一种主观心理量,是人类听觉系统对声音频率的感觉,近似公式可以表述为:MEL=2595*10(1+fm/700 ) (2.17)根据生理学的研究结果,人耳对不同频率的声波有不同的听觉灵敏度,从200Hz到5kHz之间的语音信号对语音的清晰度影响最大。低音掩蔽高音容易,反之则难,在低频处的声音掩蔽的临界带宽较高频端要小,当两个频率相近的音调同时发出时,内蒙古科技大学毕业设计说明书(毕业论文) 18人只能听到一个音调,临界带宽就是这样一种令人的主观感觉发生突变的带宽边界,MEL刻度是对这一临界带宽的度量方法之一。据此,人们从低频到高频这一段频带内按临界带宽的大小由密到稀安排一组带通滤波器H(n)对输入信号进行滤波。将每个带通滤波器输出的信号能量作为信号的基本特征。提取及计算过程如下: 原始语音信号s(n)经过预加重、分帧、加窗等处理,得到每个语音帧的时域信号x(n)。 将时域信号x(n)后补若干0以形成长为N(一般取N=512)的序列,然后经过离散傅立叶变换(DFT)后得到线性频谱X(k),转换公式为 (2.18)120( )( ) (0,-1)Nj mk NmX kx n en kN在实际应用中,常常通过快速傅立叶变换(FFT)过程加以计算,其中N一般称之为DFT(或FFT)窗宽。 将上述线性频谱X(k)通过Mel频率滤波器组得到Mel频谱,并通过对数能量的处理,得到对数频谱S(m)。 将上述对数频谱S(m)经过离散余弦变换(DCT)变换到倒频谱域,即可得到Mel频率倒谱系数(MFCC参数)c(n): (2.19)-1(+1 2)=1( ) =( )cos (0)Mn mMmc nS mmM实现的程序代码mfcc.m请见附录。给出数字“2”的MFCC参数分析结果。内蒙古科技大学毕业设计说明书(毕业论文) 19图2.6 数字“2”的MFCC参数分析结果2.4.3 LPCC 系数和系数和 MFCC 系数的比较系数的比较与LPCC参数相比,MFCC参数具有以下优点: 语音的信息大多集中在低频部分,而高频部分易受坏境噪声干扰。MFCC参数将线性频标转化为Mel频标,强调语音的低频信息,从而突出了有利于识别的信息,屏蔽了噪声的干扰。LPCC参数是基于线性频标的,所以没有这一特点。 MFCC参数无任何前提假设,在各种情况下均可使用。而LPCC参数假定所处理的信号为AR信号,对于动态特性较强的辅音,这个假设并不严格成立。另外,当噪声存在时,AR信号会变为ARMA信号: (2.20)001( )1( ) =( )( )A w nH wnA wA w其中为受噪声污染的信号功率谱,1/为AR信号功率谱,为噪声( )H w( )A w0n功率。这会给LPCC分析的结果带来较大误差。因此,MFCC参数的抗噪声能力也优于LPCC。内蒙古科技大学毕业设计说明书(毕业论文) 20第三章第三章 隐马尔可夫模型隐马尔可夫模型(HMM)非特定人的语音识别要比特定人的语音识别困难得多,因为每个人的说话语音差别很大。在非特定人识别领域通常采用隐马尔可夫HMM (Hidden Markov Model)理论。隐马尔可夫模型理论是用概率及统计学理论对语音信号进行分析和处理,属于统计语音识别。本章论述了HMM的基本概念、HMM的结构、HMM的实现和具体算法,重点论述了HMM模型在孤立词语音识别中的具体应用。内蒙古科技大学毕业设计说明书(毕业论文) 213.1 隐马尔可夫模型隐马尔可夫模型隐马尔可夫模型(Hidden Markov Models,简称为HMM ),是语音信号的一种统计模型,广泛应用于语音信号处理的各个领域中。有关它的理论基础,是在1970年左右由Baum等人建立起来的,随后由Baker和Jelinek等人将其应用到语音识别之中,并且取得了很大的成果。80年代中期成为公认的研究热点,其基本理论和各种实用算法是现代语音识别的重要基础之一。对于一个平稳的、非时变的信号来说,用传统的线性模型来描述即可。但语音信号是非平稳、时变信号,我们只能在短时间内对语音信号作线性处理,这样,在一段时间内,语音信号的线性模型参数是时变的,但在很短的时间内它可以被看作是平稳、非时变的。在这种前提下,处理语音信号的简单解决思想是:将这些线性模型参数串起来,来记录整个语音信号,这就是马尔可夫链。但其中存在的问题是,选择多长一段时间作为一个线性处理的单元。由于语音信号的复杂性,要想准确地选择这个时间段是很难的,所以这种方法虽然可行但却不是最有效的方式。隐马尔可夫模型就解决了这个问题,它既能够用短时模型来描述平稳信号,又可解决短时平稳段过渡的问题,即什么时间过渡,怎么过渡的问题。隐马尔可夫模型是利用概率论和数理统计学理论为基础,辨识具有不同参数的短时平稳过程,而且还可跟踪它们的转换。3.1.1 隐马尔可夫隐马尔可夫(HMM)基本思想基本思想由于HMM是在Maskov链的基础上发展而来的,为了更好的理解HMM,首先应该了解Markov链的基本概念。 Markov链若有一随机过程X(t),tT (这里T表示随机过程的长度),在t时刻的状态是X,而在将来某时刻Tn+1的状态Xt+1、仅仅与现在的状态Xt,有关,而与过去的时刻Xt-1, Xt-2,.,X0无关,则称X(t)为马尔可夫过程。Markov链是状态和时间都是离散的Markov过程,即: P(Xt+1=qt+1|Xt=qt,Xt-1=qt-1,X1=q1)=P=(Xt+1=qt+1|Xt=qt) 内蒙古科技大学毕业设计说明书(毕业论文) 22(3.1)其中,q1,q2,qm,qm+k(1,2,N)是状态的取值,并且称: Pij(t,t+1)=P(qt+1=j|qt=i), 1i,jN (3.2)为状态转移概率,这里N表示状态可以取值的数目,当Pij (t,t十1)与t无关时,称这个Markov链为齐次Markov链。若将状态转移概率Pij(t,t+1)记为aij,所有转移概率aij,1i,jN可以构成一个状态转移矩阵,即 (3.3)1111.NNNNaaAaa且有: 0aij1,11Niji ja 很显然,A矩阵表示的是已知前一状态时,后一状态取值的方向,但它却不能决定初始分布,即由A求不出q1=i的概率,这样,完全描述Markov链,除矩阵A之外,还必须引进初始概率矢量=(1, N),其中 i=P(q1=i),1iN (3.4)显然有: 01 11Nii此时,由和A共同描述了一个完整的Markov链。 HMM基本概念及其定义 HMM是在Markov链的基础上发展起来的。首先是问题的提出,为什么要使用HMM来描述语音信号。 在实际问题中,观察者只能看到观察值,而观察值并不与状态一一对应,因此,内蒙古科技大学毕业设计说明书(毕业论文) 23不能直接看到状态,而只能是通过一个随机过程去感知状态的存在及其特征。因此称之为“隐”Markov模型。在前面Markov链的基础上,HMM增加了参数来建立状态和观察值序列的关系,它的定义可由下列5个参数描述: N:模型中Markov链状态数目。记N个状态为1,N,记t时刻Markov链所处状态为qt,显然qt(1,N)。 M:每个状态对应的可能的观察值数目。记M个观察值为v1,vN,记t时刻观察到观察值为ot,,其中ot(V1,VM)。 :初始状态概率矢量,=(1, , N),其中i=P(q1=i), 1iN (3.5) A:状态转移概率矩,A=(aij)N*N,其中 Aij=P(qt+1=j|qt=i),1i,jN (3.6) B:观察值概率矩阵,B=(bjh)N*M,其中Bjh=P(ot=vk|qt=j),1jN,1kM (3.7)这样,可以记一个HMM为: =(N,M, ,A,B) (3.8)由于N和M在模型中比较容易确定,并且不是模型研究的重点,、A和B的取值直接影响到语音识别系统的识别率,是决定模型的主要因素,所以HMM也可简记为: =(,A,B) (3.9)不同的、A决定了Markov链不同的形状。如图4-2所示。其中,左-右模型在语音识别中得到广泛运用,尤其在孤立词识别当中9。内蒙古科技大学毕业设计说明书(毕业论文) 24 (a) 各态遍历模型 (b) 无跨越左-右模型(c) 有跨越左-右模型 (d) 并行左-右模型图3.1 几种常见HMM模型拓扑结构从HMM模型的定义可以看出,HMM实际上是分为两个部分的,一是Markov链,利用一组与概率分布相联系的状态转移的统计对应关系,来描述每个短时平稳段是如何转变到下一个短时平稳段的,由,A描述,输出为状态序列;二是一个随机过程,描述状态与观察值之间的统计模型,它解决了用短时模型描述平稳段的信号的问题,由B描述,输出为观察值序列。与HMM概念类似,语音信号本身是一个可观察序列,但它是由大脑中的(不可观察序列)、根据言语需要和语法知识(状态选择)所发出的音素(词、句)参数流,所以,可以用HMM模型来描述语音信号。例如语音识别中的孤立词识别,对每个孤立词建立一个HMM模型,当输入一个孤立词时,先对它进行特征值的提取,利用某种规范化方式将它转换为一组符号,然后计算这组符号和每个HMM上的输出概率,概率最大值所对应的孤立词就是识别结果。这时还不能简单的将HMM代入语音信号的表示中,这是由于实际的语音信号的这些参数并不是显而易见的,还需内蒙古科技大学毕业设计说明书(毕业论文) 25要进一步分析和研究才能确定。3.1.2 语音识别中的语音识别中的 HMM在语音识别中,所谓的观察序列就是通过计算得到的一帧帧的语音参数,如MFCC参数。而状态是在训练阶段事先规定好的不同语音单元。对于汉语普通话来说,语音单元可以是一个完整的音节,可以是声母或韵母,还可以是更为精细的音素。图 3.2 HMM与语音参数的关系一个HMM模型由若干个状态组成,随着时间的变化,各个状态之间可以发生转移,也可以在一个状态内驻留。每个观察向量对不同的状态都有相应的输出概率。如图所示的HMM,包含有四个状态S1S4,,状态之间或状态自身的转移概率用aij,表示,输入观察序列为o1,o2,oT。每个观察序列是一帧MFCC参数。在这个模型中,序列o1,o2,, oT是可观测的输入序列,称为观察序列,而每一时刻所处的状态却是隐含的。3.1.3 隐马尔可夫的三个基本问题隐马尔可夫的三个基本问题10根据给定的HMM的定义形式,以及上面的简单介绍,可以看出实际应用中,HMM要解决三个基本问题:Question1给定观察值序列O=o1,o2,,oT和模型=(,A, B),如何有效的计算给定模型参数时观察序列的概率,P=(O|)。这是一个估值问题,可看作是评价一个给定的模型如何匹配待测的观察值序列的方法。内蒙古科技大学毕业设计说明书(毕业论文) 26Question2给定观察值序列O=(o1,o2,oT)和模型=(,A, B),如何选择对应的最优状态序列q=(q1,q2,qT)。该问题将揭示模型的隐含部分,即估计出模型产生观察序列时可能经历的路径,并选择出概率最大的一条路径。这是一个识别问题,对于实际情况,常常选择最优化的准则尽可能的解决这一问题。Question3如何调整模型参数=(,A,B),使P=(O|)最大。这是一个训练过程,来训练HMM,它
展开阅读全文