语音识别输入系统设计.doc_第1页
语音识别输入系统设计.doc_第2页
语音识别输入系统设计.doc_第3页
语音识别输入系统设计.doc_第4页
语音识别输入系统设计.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

装订线毕业设计(论文)报告纸目 录目 录1第一章 语音识别简介31.1 语音识别的研究历史及现状31.2 语音识别系统的分类41.3 语音识别系统的基本原理41.4 语音识别的基本构成51.5 语音识别的几种基本方法51.5.3 改进的HMM-DDBHMM61.5.4 人工神经元网络(ANN)71.6 语音识别技术面临的技术难点及对策7第二章 语音信号的预处理82.1 概述82.2 分帧102.3 预加重112.4 加窗122.4.1 窗函数的定义122.4.2 窗函数的三种主要类型122.4.3 窗函数的选择13第三章 端点检测143.1 端点检测概述143.2 短时能量153.3 短时过零率153.4 双门限端点检测163.5 程序实现173.5.1 计算短时过零率173.5.2 计算短时能量173.5.3 端点的截取18第四章语音识别参数提取224.1 LPC和LPCC系数224.1.1 lpc及lpcc系数的简介224.1.2 lpc系数的基本计算原理234.2 MFCC系数24第五章 DTW算法实现275.1 模式的匹配275.2 DTW算法原理285.3 DTW算法改进305.3.1搜索宽度限制305.3.2放宽端点限制30第六章 matlab编程结果326.1 实验程序文件326.2 语音识别仿真结果32结 论34致 谢35参考文献36附 录371.DTW程序372.DTWTEST程序403.MFCC程序414.TRAIN程序435.VAD程序446.ENFRAME函数程序49引言语音识别技术就是让机器通过识别和理解过程把人类的语音信号转变为相应的文本或命令的技术,属于多维模式识别和智能计算机接口的范畴。其研究目标是让计算机“听懂”人类口述的语言,这是人类自计算机诞生以来梦寐以求的想法。随着计算机软硬件和信息技术的飞速发展,这种想法更加明显,人们越来越迫切要求摆脱键盘的束缚而代之以语音输入这样便于使用的、自然的、人性化的输入方式。语音识别起源于20世纪50年代ATT贝尔实验室的Audry 系统, 它第一次实现了10 个英文数字的语音识别,这是语音识别研究工作的开端。60 年代,计算机的应用推动了语音识别的发展。这时期的重要成果是提出了动态规划和线性预测分析技术(LP),其中后者较好地解决了语音信号产生模型的问题,对语音识别的发展产生了深远影响。70 年代,语音识别领域取得了突破。LP 技术得到进一步发展,动态时间归正技术(DTW)基本成熟,特别是提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论, 并实现了基于线性预测倒谱和DTW 技术的特定人孤立语音识别系统。80 年代,实验室语音识别研究产生了巨大突破,一方面各种连接词语音识别算法被开发,例如多级动态规划语音识别算法;另一方面语音识别算法从模板匹配技术转向基于统计模型技术,研究从微观转向宏观,从统计的角度来建立最佳的语音识别系统。进入90 年代以后, 人工神经网络技术的应用成为语音识别的一条新途径, 它具有自适应性、并行性、非线性、鲁棒性、容错性和学习特性,在结构和算法上都显示出了很大的潜力,而且还在细化模型的设计、参数提取和优化,以及系统的自适应技术上取得了关键进展。语音识别技术进一步成熟,语音识别系统从实验室走向实用。语音识别技术是非常重要的人机交互技术,应用语音的自动理解和翻译,可消除人类相互交往的语言障碍。国外已有多种基于语音识别产品如声控拨号电话、语音记事本等已经应用,基于特定任务和环境的听写机也已经进入应用阶段,这预示着语音识别技术有着非常广泛的应用领域和市场前景。随着语音技术的进步和通信技术的飞速发展,语音识别技术将为网上会议、商业管理、医药卫生、教育培训等各个领域带来极大的便利。第一章 语音识别简介1.1 语音识别的研究历史及现状 语音识别的研究工作始于20世纪50年代,1952年Bell实验室开发的Audry系统是第一个可以识别10个英文数字的语音识别系统。1959 年,Rorgie和Forge采用数字计算机识别英文元音和孤立词,从此开始了计算机语音识别。60年代,苏联的Matin等提出了语音结束点的端点检测,使语音识别水平明显上升;Vintsyuk提出了动态编程,这一提法在以后的识别中不可或缺。60年代末、70年代初的重要成果是提出了信号线性预测编码(LPC)技术和动态时间规整(DTW)技术,有效地解决了语音信号的特征提取和不等长语音匹配问题;同时提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论。80年代语音识别研究进一步走向深入:HMM模型和人工神经网络(ANN)在语音识别中成功应用。1988年,FULEE Kai等用VQ/I-IMM方法实现了997个词汇的非特定人连续语音识别系统SPHINX。这是世界上第1个高性能的非特定人、大词汇量、连续语音识别系统。进入90年代后,语音识别技术进一步成熟,并开始向市场提供产品。许多发达国家如美国、日本、韩国以及IBM、Apple、AT&T、Microsoft等公司都为语音识别系统的实用化开发研究投以巨资。同时汉语语音识别也越来越受到重视。IBM开发的 ViaVoice和Microsoft开发的中文识别引擎都具有了相当高的汉语语音识别水平。进入21世纪,随着消费类电子产品的普及,嵌入式语音处理技术发展迅速。基于语音识别芯片的嵌入式产品也越来越多,如Sensory公司的 RSC系列语音识别芯片、Infineon公司的Unispeech和Unilite语音芯片等,这些芯片在嵌入式硬件开发中得到了广泛的应用。在软件上,目前比较成功的语音识别软件有:Nuance、IBM的Viavoice和Microsoft的SAPI以及开源软件HTK,这些软件都是面向非特定人大词汇量的连续语音识别系统。我国语音识别研究一直紧跟国际水平,国家也很重视。国内中科院的自动化所、声学所以及清华大学等科研机构和高校都在从事语音识别领域的研究和开发。国家 863智能计算机专家组为语音识别技术研究专门立项,并取得了高水平的科研成果。我国中科院自动化所研制的非特定人、连续语音听写系统和汉语语音人机对话 系统,其准确率和系统响应率均可达90%以上。1.2 语音识别系统的分类语音识别系统可以根据对输入语音的限制加以分类。如果从说话者与识别系统的相关性考虑,可以将识别系统分为三类:(1)特定人语音识别系统。仅考虑对于专人的话音进行识别。(2)非特定人语音系统。识别的语音与人无关,通常要用大量不同人的语音数据库对识别系统进行学习。(3)多人的识别系统。通常能识别一组人的语音,或者成为特定组语音识别系统,该系统仅要求对要识别的那组人的语音进行训练。如果从说话的方式考虑,也可以将识别系统分为三类:(1)孤立词语音识别系统。孤立词识别系统要求输入每个词后要停顿。(2)连接词语音识别系统。连接词输入系统要求对每个词都清楚发音,一些连音现象开始出现。(3)连续语音识别系统。连续语音输入是自然流利的连续语音输入,大量连音和变音会出现。 如果从识别系统的词汇量大小考虑,也可以将识别系统分为三类:(1)小词汇量语音识别系统。通常包括几十个词的语音识别系统。(2)中等词汇量的语音识别系统。通常包括几百个词到上千个词的识别系统。(3)大词汇量语音识别系统。通常包括几千到几万个词的语音识别系统。随着计算机与数字信号处理器运算能力以及识别系统精度的提高,识别系统根据词汇量大小进行分类也不断进行变化。目前是中等词汇量的识别系统,将来可能就是小词汇量的语音识别系统。这些不同的限制也确定了语音识别系统的困难度。1.3 语音识别系统的基本原理目前,大多数语音识别系统都采用了模式匹配的原理。根据这个原理,未知语音的模式要与已知语音的参考模式逐一进行比较,最佳匹配的参考模式被作为识别结果。图1-1 是基于模式匹配原理的自动语音识别系统方框图。语音输入预处理特征提取模式匹配判别规则模板库训练练识别识别结果 图1-1 语音识别原理图该图中, 待识别语音先经话筒变换成语音信号,然后从识别系统前端输入,再进行预处理。预处理包括语音信号采样、反混叠带通滤波、去除个体发音差异和设备、环境引起的噪声影响等,并涉及到语音识别基元的选取和端点检测问题,有时还包括模数转换器。特征提取部分用于提取语音中反映本质特征的声学参数,常用的特征有短时平均能量或幅度、短时平均跨零率、短时自相关函数、线性预测系数、清音/浊音标志、基音频率、短时傅立叶变换、倒谱、共振峰等。训练在识别之前进行, 是通过让讲话者多次重复语音,从原始语音样本中去除冗余信息,保留关键数据,再按一定规则对数据加以聚类,形成模式库。模式匹配是整个语音识别系统的核心,是根据一定的准则以及专家知识(例如构词规则、语法规则、语义规则等),计算输入特征与库存模式之间的相似度,判断出输入语音的语意信息,断定相似度最高的模板为输入的语音信息。所以,模板库的广大和清晰度是衡量模板库的两个标准。清晰度和广泛度越高的模板库可以更好的提高语音识别的准确率。1.4 语音识别的基本构成 语音识别系统的典型实现方案为:输入的模拟语音信号首先要进行预处理,包括预滤波,采样和量化,加窗,端点处理,预加重等。语音信号经过预处理后,重要的一环就是特征参数的提取。对特征参数的要求是:1) 提取的特征参数能有效的代表语音特征,具有良好的区分性。2) 各阶参数具有良好的区分性。3) 特征参数要计算方便,最好有高效的计算方法,以保证语音识别的实时实现。在训练阶段,将特征参数进行预处理后,每个词条都得到一个模型,保存为模板库。在识别阶段,语音喜好经过相同的通道的到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的模板作为识别结果,同时,还可以在许多先验知识的帮助下,提高准确率。1.5 语音识别的几种基本方法语音识别方法主要有动态时间归正技术(DTW)、矢量量化技术(VQ)、隐马尔可夫模型(HMM)、基于段长分布的非齐次隐含马尔可夫模型(Duration Distribution Based Hidden Markov Model,DDBHMM)和人工神经元网络(ANN)。1.5.1 DTW和VQDTW 是较早的一种模式匹配和模型训练技术,它应用动态规划方法成功解决了语音信号特征参数序列比较时时长不等的难题,在孤立词语音识别中获得了良好性能。但因其不适合连续语音大词汇量语音识别系统,目前已被HMM 模型和ANN 代替。VQ 技术从训练语音提取特征矢量,得到特征矢量集,通过LBG 算法生成码本,在识别时从测试语音提取特征矢量序列,把它们与各个码本进行匹配,计算各自的平均量化误差,选择平均量化误差最小的码本,作为被识别的语音。但同样只适用孤立词而不适合连续语音大词汇量语音识别。1.5.2 HMM模型HMM 模型是语音信号时变特征的有参表示法,它由相互关联的两个随机过程共同描述信号的统计特性,其中一个是隐蔽的(不可观测的)具有有限状态的Markov 链,另一个是与Markov 链的每一状态相关联的观察矢量的随机过程(可观测的)。隐蔽Markov链的特征要靠可观测到的信号特征揭示。这样,语音时变信号某一段的特征就由对应状态观察符号的随机过程描述, 而信号随时间的变化由隐蔽Markov 链的转移概率描述。模型参数包括HMM 拓扑结构、状态转移概率及描述观察符号统计特性的一组随机函数。按照随机函数的特点,HMM 模型可分为离散隐马尔可夫模型(采用离散概率密度函数,简称DHMM)和连续隐马尔可夫模型(采用连续概率密度函数,简称CHMM)以及半连续隐马尔可夫模型(SCHMM)。一般来讲, 在训练数据足够的情况下, CHMM 优于DHMM 和SCHMM。HMM 模型统一了语音识别中声学层和语音学层的算法结构,以概率的形式将声学层中得到的信息和语音学层中已有的信息完美地结合在一起,极大地增强了连续语音识别的效果。1.5.3 改进的HMM-DDBHMM王作英教授提出了一个基于段长分布的非齐次隐含马尔可夫模型DDBHMM, 以此理论为指导所设计的语音识别听写机系统在1998 年的全国语音识别系统评测中取得冠军,从而显示了这一新模型的生命力和在这一研究领域内的领先水平。语音学的研究表明,语音单位在词中的长度有一个相对平稳的分布。正是这种状态长度分布的相对平稳性破坏了HMM 模型的齐次性结构,而王作英教授提出的DDBHMM模型解决了这一缺陷。它是一个非齐次的HMM 语音识别模型,从非平稳的角度考虑问题,用状态的段长分布函数替代了齐次HMM 中的状态转移矩阵,彻底抛弃了“平稳的假设”,使模型成为一种基于状态段长分布的隐含Markov模型。段长分布函数的引入澄清了经典HMM 语音识别模型的许多矛盾,这使得DDBHMM比国际上流行的HMM 语音识别模型有更好的识别性能和更低的计算复杂度(训练算法比流行的Baum 算法复杂度低两个数量级)。由于该模型解除了对语音信号状态的齐次性和对语音特征的非相关性的限制,因此为语音识别研究的深入发展提供了一个和谐的框架。1.5.4 人工神经元网络(ANN)人工神经元网络在语音识别中的应用是现在研究的又一热点。ANN本质上是一个自适应非线性动力学系统,模拟了人类神经元活动的原理,具有自学、联想、对比、推理和概括能力。这些能力是HMM 模型不具备的,但ANN又不具有HMM 模型的动态时间归正性能。因此,人们尝试研究基于HMM 和ANN 的混合模型,把二者的优点有机结合起来,从而提高整个模型的鲁棒性,这也是现在研究的一个热点。1.6 语音识别技术面临的技术难点及对策语音识别面临的主要困难是理论上没有突破,虽然各种新的修正方法不断涌现,但其普遍适用性都值得商榷。另外,语音识别系统在商品化的进程中还要解决诸如识别速度、拒识问题以及关键词(句)检测等具体问题,主要表现在两个方面:一是对环境的依赖性强。语音识别系统在某些环境下采集的语音进行训练后,必须在相同的环境下进行识别,否则性能急剧下降,例如自适应性差,最近凸现出的方言或口音、背景噪音、口语发音的“新三难”问题等,都会影响识别的准确性。目前可采用麦克风阵列技术消除单一麦克对语音的影响,同时在预处理阶段通过语音增强算法,使语音的可懂度和信噪比增强。二是模型和算法都存在一定的缺陷。随着HMM语音识别方法研究工作的深入,人们也越来越认识到经典HMM 语音识别模型在一些重要方面存在严重的缺陷,既不符合语音信号的实际情况,又使得模型的训练量和存储量太大。目前提出了各种各样的HMM改进算法,还加入了遗传算法、并行算法和神经网络等新技术,使得HMM 的训练和识别更加准确。第二章 语音信号的预处理2.1 概述语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号特征的参数,才能利用这些参数进行高效的语音识别处理。贯穿于语音分析全过程的是“短时分析技术”。语音信号从整体开看其特征和表征其特征的参数是随时间变化的,所以它是一个非平衡态过程,不能用处理平衡信号的数字处理技术对其进行分析处理。但是在一个段时间范围内(一般认为在10-30ms的短时间内),其特性基本保持不变即相对稳定,因而可以将其看成斯一个准稳态过程,即语音信号具有短时平稳性。不论分析怎样的参数即采用什么分析方法,在按帧进行语音分析,提取语音参数之前,有一些经常使用的,共同的短时分析技术必须预先进行,如语音信号的数字化,语音信号的预加重,加窗和分帧。在Matlab环境中,利用其中的几个音频处理函数进行操作。如,用Wavread函数对语音信号进行采样,记录采样频率和采样点数。可以利用soundview函数进行放音等。以本实验中的10个输入的语音训练文件中的“40.wav”文件进行操作,使其显示“40.wav”文件的波形图,和其语音起始处和结束处的放大波形图如图2-1。实验程序:disp(显示原始波形图);t=0:1/fs:(length(k)-1)/fs;subplot(3,1,1);plot(t,k);axis(0,(length(k)-1)/fs,min(k),max(k);title(I) “40.wav”语音信号波形);xlabel(Time:s);ylabel(Amplitude(normalized);disp(显示语音起始处放大波形图);t1=0.2:1/fs:0.3;k1=k(0.2*fs:0.3*fs);subplot(3,1,2);plot(t1,k1);axis(0.2,0.3,min(k),max(k);title(II) “40.wav”语音起始处放大波形图);xlabel(Time:s);ylabel(Amplitude(normalized);disp(显示语音结束处放大波形图);t1=0.4:1/fs:0.5;k1=k(0.4*fs:0.5*fs);subplot(3,1,3);plot(t1,k1);axis(0.4,0.5,min(k),max(k);title(III) “40.wav”语音结束处放大波形图);xlabel(Time:s);ylabel(Amplitude(normalized);显示波形如下:图2-1 语音信号的波形图及起始处和放大处得波形图2.2 分帧语音信号是一种典型的非平稳信号,它的均值函数u(x)和自相关函数R(xl,x2)都随时间而发生较大的变化。但研究发现,语音信号在短时间内频谱特性保持平稳,即具有短时平稳特性。因此,在实际处理时可以将语音信号分成很小的时间段(约1030ms),称之为“帧”,作为语音信号处理的最小单位,帧与帧的非重叠部分称为帧移,而将语音信号分成若干帧的过程称为分帧。分帧小能清楚地描绘语音信号的时变特征但计算量大;分帧大能减少计算量但相邻帧间变化不大,容易丢失信号特征。一般取帧长20ms,帧移为帧长的1/31/2。在Matlab环境中的分帧最常用的方法是使用Voicebox工具箱中的函数enframe(x,len,inc),其中x为语音信号,len为帧长,inc为帧移。Voicebox工具箱是基于GUN协议的自由软件,其中包含了很多语音信号相关的函数。在本系统中帧长取240,帧移取80。在Matlab环境中使用编程语言实现对帧长和帧移的常数设定。程序示例如下:i=wavread(40.wav);y=enframe(i,240,80);whos i y;结果如下: Name Size Bytes Class i 17280x1 138240 double array y 214x240 410880 double arrayGrand total is 68640 elements using 549120 bytes程序示例2如下:i=wavread(40.wav);len=240;inc=80;y=enframe(i,len,inc);figure;subplot(1,2,1),plot(i);subplot(1,2,2),plot(y);显示波形如图2-2:图2-2 信号的波形及分帧后的波形图2.3 预加重由于语音信号的平均功率受声门激励和口鼻辐射影响,高频端大约在800Hz以上按6dB/倍频程跌落,非平坦的,要遭预处理中进行预加重处理。预加重的目的在于提升高频部分,使信号的频谱变的平坦。预加重可以在数字化之前,也可之后。对于语音信号的频谱,通常是频率越高幅值越小,在语音信号的频率增加两倍时,其功率谱的幅度下降6dB。因此必须对高频进行加重处理,一般是将语音信号通过一个一阶高通滤波器1-0.9375z-1,即为预加重滤波器。其目的是滤除低频干扰,特别是50Hz到60Hz的工频干扰,将对语音识别更为有用的高频部分进行频谱提升。在计算短时能量之前将语音信号通过预加重滤波器还可起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。预加重滤波器在Matlab中可由语句x=filter(1-0.9375,1,x)实现。程序示例如下:i=wavread(40.wav);y=filter(1,-0.9375,1,i);subplot(1,2,1),plot(i),title(预加重前的波形图);subplot(1,2,2),plot(y),title(预加重后的波形图);结果如下:图2-3 预加重对比图由图2-3可见,信号的频谱明显的变的更加平坦。2.4 加窗2.4.1 窗函数的定义为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。信号截短以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地引起混叠,因此信号截短必然导致一些误差。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截短信号。2.4.2 窗函数的三种主要类型为了保持语音信号的短时平稳性,利用窗函数来减少由截断处理导致的Gibbs效应。用的最多的三种为矩形窗、汉明窗(Hamming)和汉宁窗(Hanning)。其窗函数如下,式中的N为窗长,一般等于帧长。矩形窗: 汉明窗(Hamming):汉宁窗(Hanning):WR =1 (0nN-1)0 (Other)WHM =0.5-0.46cos(2n/(N-1) (0nN-1)0 (Other) WHN =0.5-0.5cos(2n/(N-1) (0nN-1)0 (Other)(2-1)(2-2)(2-3)2.4.3 窗函数的选择对于窗函数的选择,应考虑被分析信号的性质与处理要求。如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。窗口的选择非常重要,不同的窗口将使能量的平均结果不同。矩形窗的谱平滑,但波形细节丢失;而汉明窗则刚好相反,可以有效克服泄漏现象,具有平滑的低通特性。因此,在语音的时域处理方法中,一般选择矩形窗,而在语音的频域处理方法中,一般选择汉明窗或汉宁窗。在Matlab中要实现加窗即将分帧后的语音信号乘上窗函数,如加汉明窗即为x=x.*hamming(N)。本系统中的端点检测采用时域方法故加矩形窗,计算MFCC系数时加汉明窗。第三章 端点检测3.1 端点检测概述在基于DTW算法的语音识别系统中,无论是训练和建立模板阶段还是在识别阶段,都先采用端点检测算法确定语音的起点和终点。语音端点检测是指用计算机数字处理技术从包含语音的一段信号中找出字、词的起始点及结束点,从而只存储和处理有效语音信号。对汉语来说,还可进一步找出其中的声母段和韵母段所处的位置。语音端点检测是语音分析、合成和识别中的一个重要环节,其算法的优劣在某种程度上也直接决定了整个语音识别系统的优劣。进行端点检测的基本参数主要有短时能量、幅度、过零率和相关函数等。端点检测最常见的方法是短时能量短时过零率双门限端点检测,近年来在此基础上发展出的动态窗长短时双门限端点检测方法也被广泛使用。在开始进行端点检测之前,首先为短时能量和过零率分别确定两个门限,一个是比较低的门限,对信号变化比较敏感,很容易就会被超过。另一个是比较高的门限,信号必须达到一定的强度,该门限才可能被超过。低门限被超过未必就是语音的开始,有可能是时间很短的噪声引起,高门限被超过则基本确信是由语音引起的。整个语音信号的端点检测可以分为四段:静音、过渡段、语音段、结束。在静音段,如果能量或过零率超过了低门限,就应该开始标记始点,进入过渡段。在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果在过渡段中两个参数中的任一超过了高门限,就可以确信已进入语音段。当前状态处于语音段时,如果两个参数的数值降低到低门限以下,且总的记时长度小于最短门限,则认为这是一段噪音,继续扫描以后的语音数据,否则就标记为结束端点,并返回。实际对语音信号进行分词、断句处理时,仍需作如下的调整和改进:1) 由于线路等的影响, 某些帧的波形中会有毛刺存在,有时甚至达到几个数量级,导致整个语音信号的波幅增大,影响归一化后大部分数据偏小,接近于零,使得端点检测算法失效。针对上述现象,在端点检测前,计算整个语音信号的短时能量,经过统计,正常语音信号的短时能量都不超过60,超过60的帧被视为不正常帧,将该帧去掉,再进行端点检测。2) 清音能量弱、过零率高,浊音过零率低而能量高,在汉字中,均以元音结尾,在结尾再次进行过零率检测将毫无益处,甚至适得其反。而汉语语音信号最强的部分为面和中间的部分,在结尾部分往往只是信息弱时间长的拖尾音,将过多的拖尾音取入识别匹配所用的特征序列对识别无甚贡献,甚至有害。而这些拖尾音的能量通常逐渐减弱,适当提高低能量门限将有助于截断过多的拖尾音。因此,在结束点的检测上,将对过零率的检测忽略掉,高低能量门限合并为一个门限,该阈值取为低门限的两倍。改进后的结束点识别比较准确,这样不仅缩短了识别时间还提高了识别率。3.2 短时能量语音信号的能量随时间变化,清音和浊音之间的差别相当显著。因此,对短时能量进行分析,可以描述语音的这种特征变化情况。定义短时能量如下: (3-1)语音和噪声的主要区别在它们的能量上。语音段的能量比噪声段的大,语音段的能量是噪声段能量叠加语音声波能量的和。对第n帧语音信号的短时能量En的定义为: (3-2)也可解释为对式(3-1)的简化。xn为原样本序列在窗函数所切取出的第n段短时语音,N为帧长。因为在计算时使用的是信号的平方,故将En作为一个度量语音幅度值变化的函数有一个缺陷,即对高电平非常敏感。因此在许多场合会将En用下式来代替: (3-3)这样就不会因为取平方而造成信号的小取样值的大取样值出现较大差异。短时能量函数的应用:1) 可用于区分清音段和浊音段。值大对应浊音段,值小对应清音段。2) 可用于区分清音变为浊音或者浊音变为清音的时间(根据值变化的趋势)。3) 对高信噪比的语音信号,也可以用来区分无语音(语音信号的开始点和终止点)。无信号(或仅有噪声能量时),值很小,有语音信号时,能量显著增大。3.3 短时过零率短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号则称为过零。过零率就是样本改变符号次数,定义语音信号寿(m)的短时过零率Zn为: (3-4)1 (x0)-1 (x0)sgnx= (3-5)短时过零率可以粗略的估计语音的频谱特性。有语音的产生模型可知,发浊音时,声带振动,尽管声道有多个共振峰,但由于声门波引起了频谱的高频衰落,因此,浊音能量集中在3kz以下。而清音由于声带不振动,声带的某些气流闭塞产生类白噪声,多数能量集中在高频率上。高频率代表着高过零率,低频率代表着低过零率,那么过零率就与语音信号的清音和浊音段有着对应的关系了。短时平均过零率的应用:1) 区分清音和浊音。例如,清音的过零率高,浊音的过零率低,此外,清音和浊音的两种过零分布都与高斯分布曲线较为吻合。2) 从背景噪声中找出语音信号。语音处理领域中的一个基本问题是,如何将一连串的语音信号进行分割,以确定每个单词的语音信号,亦即找出每个单词的起始点和终止位置。3) 在孤立词的语音识别中,可以使用过零率作为有话无话得识别。3.4 双门限端点检测双门限端点检测顾名思义需要两级检测,即短时能量检测和短时过零率检测。在开始检测之前需要设定4个门限,即分别为短时能量和短时过零率各设置一个高门限和一个低门限:EHigh、ELow和ZHigh、ZLow。整个语音端点检测分为四部分:静音段、过度段、语音段、结束段。在静音段中如果能量或过零率有一个超过了其低门限,则认为进入了过度段。在过度段中,由于参数数值较小,还不能确定是否真的进入语音段,只有两个参数的其中一个超越了高门限才被认为是进入语音段。当参数降至低门限则认为进入结束。此外,还有两种可能会引起端点检测的误判:一是短时噪音引起的误判,此时则需要引入最小语音长度门限进行噪声判定,即语音段时间小于一定数值则认定为是噪声,重新回到静音段,本系统设为20ms;二是语音中字与字的时间空隙引起的误判,此时需要设定最大静音长度门限来降低识别的错误率,本系统所训练和识别的都为单字,故无需设置此门限。在双门限端点检测中4个门限的设定至关重要,门限设定的好坏将直接影响端点检测的结果。门限值的设置还没有一个通用可靠的方法,需要根据经验和特定环境进行调整。常见的方法有最大值乘上某个比率、中位值乘上某个比率、最小值乘上某个常数、前三帧平均值乘上某个常数等。本系统中EHigh,ELow,ZHigh,ZLow的取值分别为:EHigh=max(min(amp)*10,mean(amp)*0.2,max(amp)*0.1);ZHigh=max(round(max(zcr)*0.1),5);ELow=min(min(amp)*10,mean(amp)*0.2,max(amp)*0.1);ZLow=max(round(mean(zcr)*0.1),3);3.5 程序实现3.5.1 计算短时过零率计算短时过零率的程序如下:FrameLen=240;FrameInc=80;FrameTemp1=enframe(k(1:end-1),FrameLen,FrameInc);FrameTemp2=enframe(k(2:end),FrameLen,FrameInc);signs=(FrameTemp1.*FrameTemp2)0.01;zcr=sum(signs.*diffs,2);disp(显示原始波形图);figure,subplot(3,1,1);plot(t,k);axis(0,(length(k)-1)/fs,min(k),max(k);title(I) “40.wav”语音信号波形);xlabel(Time:s);ylabel(Amplitude(normalized);disp(显示过短时零率)zcrInd=1:length(zcr);subplot(3,1,2);plot(zcrInd,zcr);axis(0,length(zcr),0,max(zcr);title(II) 短时过零率);xlabel(Frame);ylabel(Zcr);此为端点判断程序中的部分程序,以文件“40.wav”为例计算了它的短时过零率,并以波形图的方式进行了显示,如图3-1所示。3.5.2 计算短时能量短时能量的计算程序如下:amp=sum(abs(enframe(filter(1 -0.9375, 1, k), FrameLen, FrameInc), 2);disp(显示短时能量)ampInd=1:length(amp);subplot(3,1,3);plot(ampInd,amp);axis(0,length(amp),0,max(amp);title(III) 短时能量);xlabel(Frame);ylabel(Energy);此程序也以训练文件“40.wav”为例进行了短时能量的计算,并输出波形图使其能够更好的观察。以下为“40.wav”文件的语音波形及其短时能量和短时过零率的波形显示:图3-1 语音信号波形,短时过零率,短时能量的波形显示3.5.3 端点的截取在如3.4节中介绍的双门限端点检测法那样在程序中分别设定了短时能量和短时过零率的高低门限后,就可以进行端点的检测了,实现程序如下:MaxSilence=8; %最长语音间隙时间MinAudio=16; %最短语音时间Status=0; %状态:0静音段,1过渡段,2语音段,3结束段HoldTime=0; %语音持续时间SilenceTime=0; %语音间隙时间disp(开始端点检测);for n=1:length(zcr) switch Status case0,1 if amp(n)AmpHigh | zcr(n)ZcrHigh StartPoint=n-HoldTime; Status=2; HoldTime=HoldTime+1; SilenceTime=0; elseif amp(n)AmpLow | zcr(n)ZcrLow Status=1; HoldTime=HoldTime+1; else Status=0; HoldTime=0; end case 2, if amp(n)AmpLow | zcr(n)ZcrLow HoldTime=HoldTime+1; else SilenceTime=SilenceTime+1; if SilenceTimeMaxSilence HoldTime=HoldTime+1; elseif (HoldTime-SilenceTime)MinAudio Status=0; HoldTime=0; SilenceTime=0; else Status=3; end end case 3, break; end if Status=3 break; endendHoldTime=HoldTime-SilenceTime;EndPoint=StartPoint+HoldTime;disp(显示端点);figure,subplot(3,1,1);plot(k);axis(1,length(k),min(k),max(k);title(I) “40.wav”语音信号);xlabel(Sample);ylabel(Speech);line(StartPoint*FrameInc,StartPoint*FrameInc,min(k),max(k),color,red);line(EndPoint*FrameInc,EndPoint*FrameInc,min(k),max(k),color,red);subplot(3,1,2);plot(zcr);axis(1,length(zcr),0,max(zcr);title(II) 短时过零率);xlabel(Frame);ylabel(ZCR);line(StartPoint,StartPoint,0,max(zcr),Color,red);line(EndPoint,EndPoint,0,max(zcr),Color,red);subplot(3,1,3);plot(amp);axis(1,length(amp),0,max(amp);title(III) 短时能量);xlabel(Frame);ylabel(Energy);line(StartPoint,StartPoint,0,max(amp),Color,red);line(EndPoint,EndPoint,0,max(amp),Color,red);以上程序实现了对分帧后每帧信号的端点检测,并对每帧信号的起始点及端点做记录存储在文件中。此程序中也实现了对端点检测的波形描述,同样是以“40.wav”为例,在检测出的端点处以红线标记(垂直于图的直线),如图3-3所示,这样可以更为方便的观察每帧信号的起始点与终止点。图3-3 语音信号端点检测的波形显示第四章 语音识别参数提取在语音信号预处理后,接着是特征参数的提取。语音信号中含有丰富的信息。 如何从中提取出对语音识别有用的信息是语音识别的关键。特征提取就是完成这项工作。 它对语音信号进行分析处理。 去除对语音识别无关紧要的冗余信息, 获得影响语音识别的重要信息。对于非特定人语音识别来讲,希望特征参数尽可能多地反映语义信息, 尽量减少说话人的个人信息( 对特定人语音识别来讲, 则相反) 。从信息论角度讲,这是信息压缩的过程。语音的特征提取本质上是起降维作用,用较少的维数表现了说话人的特征。常用的语音特征包括基于发声器官如声门、声道和鼻腔的生理结构而提取的参数,如谱包络、基音、共振峰等。基于声道特征模型,通过线性预测分析得到的参数,如线性预测倒谱系数(LPCC)、LSP线谱对、线性预测残差等。基于人耳的听觉机理,反映听觉特性,模拟人耳对声音频率感知的特征参数,如美尔倒谱系数(MFCC)等。通过研究,人们发现人耳对不同频率的语音具有不同的感知能力,这个感知能力并不是随着频率的增加而线性增加。通过大量的实验,人们根据人耳在不同频率下的音调感知能力,提出了Mel频率的概念,这里的Mel就是人耳所感知到音调的度量单位。由于汉语是有调语言,Mel频率正是对人耳所听到的汉语音调的度量。这个参数可以很好地描述人耳对汉语语音音调的感知情况。很多研究也证明,由于Mel频率特性反映了人耳的听觉特性,因而在用于代替人耳来分析语音时,其性能和鲁棒性都是最符合实际听音效果的。MFCC参数与基于线性预测的倒谱分析相比,突出的优点是不依赖全极点语音产生模型的假定,在与文本无关的说话人识别系统中,MFCC参数能够比LPCC参数更好地提高系统的识别性能。语音信号的特征矢量在频域上主要有线性预测系数( LPC) ,LPC 倒谱系数( LPCC),MEL 频率倒谱系数( MFCC) 。LPCC 逼近人类发声机理但对于辅音的描述能力较差, 抗噪声性能较差。MFCC充分考虑人耳听觉结构和人类发声和接受声音的机理特性具有很好的鲁棒性。而且在没有任何假设前提条件,其具有较好的识别性能和抗噪能力。4.1 LPC和LPCC系数4.1.1 lpc及lpcc系数的简介LP 倒谱系数( Linear Predictive Cepst ral Coef ficients, LPCC) 是最常用的特征参数。LPCC 是按实际频率尺度的倒谱系数。而人耳所听到的声音的频率与实际频率并不成线性正比关系。通过实验研究发现。 基于人耳的听觉模型提取的特征参数更具有优于其它参数的鲁棒性。Mel 频带划分是对人耳听觉特性的一种工程化模拟。人的听觉感知除了音调高低的感知外,还有对响度的感知。人对声音响度的感知与声音的频宽有关。Mel频率尺度是将声音的频率非线性映射( 或称弯折) 到一个新的频率尺度,可较充分地反映人耳对频率及幅的非线性感知特性。以及人耳在听到复杂声音时所表现的频率分析和谱合成特性。根据人类听觉系统对频率及幅度的感知实验结果。在此尺度下提取语音特征,更符合人耳的听觉特性。因此将常规的LPC 进一步按符合人耳听觉特性的Mel尺度进行非线性变换,得到LP Mel 倒谱系数( LPCMCC)作为特征参数。既考虑了声道激励,又兼顾人耳听觉,具有更强的抗噪性。LPC(Linear Predi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论