




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计基于MATLAB的特定人语音识别算法设计摘 要语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信网中最重要、最基本的组成部分之一。而在随着科技技术的发展的今天,除了人与人之间的自然语言通信之外,人与机或机器与机器之间也开始使用语言。也就是因为如此,需要涉及到语音识别技术。为了解决机器能“听懂”人类的语言,在科技如此迅猛发展的今天,语音识别技术一直受到各国科学界的关注,其对计算机发展和社会生活的重要性也日益凸显出来。在孤立字语音识别中,如语音密码锁,汽车控制等领域,都运用到了特定人语音识别技术,也就是DTW算法,相对于HMM算法,DTW算法具有简单操作。在相同环境下,两者识别效果相差不大,但是HMM算法要复杂得多,主要体现在HMM算法在训练阶段需要提供大量的语音数据,而DTW算法则不需要额外的计算。所以在特定人语音识别当中,DTW算法被广泛使用。在本次设计中,将运用到MATLAB平台来对语音信号进行处理及识别。相对于C语言而言,MATLAB平台更能给用户提供一个简单易懂的代码分析窗口。而且在个性化设计中,MATLAB可以为用户提供一个人性化界面-GUI。所以,此次设计,通过MATLAB平台建立一个GUI界面,接着对一组语音信号的输入进行预处理及端点检测,提取特征参数(MFCC),形成参考模块。然后再对一组相同的语音信号输入进行同样的操作作为测试模块,与参考模块进行DTW算法进行匹配,输出匹配后的识别结果。关键词:MATLAB GUI 端点检测 MFCC DTW Design of Speech Recognition Algorithm Based on Specific MATLABCai Jingzuo(College of Engineering, South China Agricultural University, Guangzhou , China)Abstract: Language is a way of human exchange of information the most convenient, quick, highly developed in the information society, for voice transmission, by using the digital method of storage, recognition, synthesis and enhancement is one of the most important parts of the whole, the most basic digital communication network. While with the development of science and technology today, in addition to natural language communication between people, between people and machine or machine and machine are also starting to use the language. It is because of this, need to involve the speech recognition technology. In order to solve the machine can hear the human language, the technology is so rapid development today, the speech recognition technology has been the subject of scientific attention of all countries, the importance of computer development and social life is increasingly prominent.In the isolated word speech recognition, such as voice password lock, auto control field, are applied to the speech recognition technology, which is relative to the DTW algorithm, HMM algorithm, DTW algorithm has the advantages of simple operation. In the same environment, both the recognition effect is similar, but HMM algorithm is much more complex, mainly reflected in the HMM algorithm need to provide a large amount of speech data in the training phase, while the DTW algorithm does not need the extra computation. So in the speaker-independent recognition, DTW algorithm is widely used.In this design, will apply to the MATLAB platform to carry on the processing and recognition of speech signal. Compared with the C language, MATLAB platform can provide users with a simple code analysis window. But in the personalized design, MATLAB can provide a human user interface -GUI. So, the design, the establishment of a GUI interface through the MATLAB platform, and then a set of the input speech signal pretreatment, endpoint detection, feature parameter extraction (MFCC), the formation of the reference module. Then a group of the same speech signal input to the same operation as a test module, matching with reference to DTW algorithm module, output matching recognition results.Key words:DTW GUI Endpoint detection MFCC DTW目 录1 前言11.1 语音识别的历史背景11.1.1 国外研究历史及现状21.1.2 国内研究历史及现状31.2 语音识别技术的应用及研究方向41.3 语音识别系统的基本构成52 语音信号的数字模型及采集52.1 概述52.2 语音的发音原理52.2.1 人的发声器官52.2.2 语音生成72.3 语音的听觉机理82.3.1 听觉器官82.3.2 耳蜗的信号处理原理102.4 MATLAB中的语音信号模型112.4.1 wavrecord函数112.4.2 wavplay函数123 语音信号的端点检测123.1 概述123.2 MATLAB的语音端点检测算法153.2.1 短时能量的计算153.2.2 过零率的计算153.2.3 端点检测的流程174 语音信号非线性预测分析184.1 概述184.2 MFCC的基本原理194.3 实验结果205 特定人语音识别算法-DTW算法205.1 DTW算法原理205.2 DTW算法流程及实验结果235.2.1 算法流程235.2.2 实验结果236 GUI设计256.1 概述256.2 GUI界面的打开256.3 作品演示277 结论28参考文献29附录30附录A 语音识别主函数30致谢36本科生毕业设计成绩评定表1前言 语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信网中最重要、最基本的组成部分之一。随着人类步入信息社会步伐的加快,越来越多的地方需要用到语音信号处理的知识。 而MATLAB作为一个语音信号处理的平台,是一个高性能的科学计算软件,广泛应用于数学计算、算法开发、数学建模、系统仿真、数据分析处理及可视化、科学和工程绘图、应用系统开发(包括建立用户界面)等。其语言是一种简单、高效、功能极强的高级语言,具有强大的矩阵运算能力和极高的编程效率,这一方面使得MATLAB程序可以被高度向量化,另一方面使得程序易读易写。 本设计主要围绕着MATLAB平台进行语音信号的录制及预处理,提取特征参数,建立两种模块,一组为参考模块,一组为测试模块,然后通过DTW算法进行匹配,算出匹配结果。主要通过用户开发界面直观地呈现出来。1.1 语音识别的历史背景早在计算机发明之前,自动语音识别的设想就已经被提上了议事日程,早期的声码器可被视作语音识别及合成的雏形。而1920年代生产的RadioRex玩具狗可能是最早的语音识别器,当这只狗的名字被呼唤的时候,它能够从底座上弹出来。最早的基于电子计算机的语音识别系统是由AT&T贝尔实验室开发的Audrey语音识别系统,它能够识别10个英文数字。其识别方法是跟踪语音中的共振峰。该系统得到了98%的正确率。到1950年代末,伦敦学院(ColledgeofLondon)的Denes已经将语法概率加入语音识别中。1960年代,人工神经网络被引入了语音识别。这一时代的两大突破是线性预测编码LinearPredictiveCoding(LPC),及动态时间弯折DynamicTimeWarp(DTW)技术。语音识别技术的最重大突破是隐含马尔科夫模型HiddenMarkovModel(HMM)的应用。从Baum提出相关数学推理,经过Labiner等人的研究,卡内基梅隆大学的李开复最终实现了第一个基于隐马尔科夫模型的大词汇量语音识别系统Sphinx。此后严格来说语音识别技术并没有脱离HMM框架。尽管多年来研究人员一直尝试将“听写机”推广,但是语音识别技术在目前还无法支持无限领域,无限说话人的听写机应用。1.1.1 国外研究历史及现状国外的语音识别的研究工作可以追溯到20世纪50年代AT&T贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统。但真正取得实质性进展,并将其作为一个重要的课题开展研究则是在60年代末70年代初。这首先是因为计算机技术的发展为语音识别的实现提供了硬件和软件的可能,更重要的是语音信号线性预测编码(LPC)技术和动态时间规整(DTW)技术的提出,有效的解决了语音信号的特征提取和不等长匹配问题。这一时期的语音识别主要基于模板匹配原理,研究的领域局限在特定人,小词汇表的孤立词识别,实现了基于线性预测倒谱和DTW技术的特定人孤立词语音识别系统;同时提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论。实验室语音识别研究的巨大突破产生于20世纪80年代末:人们终于在实验室突破了大词汇量、连续语音和非特定人这三大障碍,第一次把这三个特性都集成在一个系统中,比较典型的是卡耐基梅隆大学(CarnegieMellonUniversity)的Sphinx系统,它是第一个高性能的非特定人、大词汇量连续语音识别系统。这一时期,语音识别研究进一步走向深入,其显著特征是HMM模型和人工神经元网络(ANN)在语音识别中的成功应用。HMM模型的广泛应用应归功于AT&TBell实验室Rabiner等科学家的努力,他们把原本艰涩的HMM纯数学模型工程化,从而为更多研究者了解和认识,从而使统计方法成为了语音识别技术的主流。统计方法将研究者的视线从微观转向宏观,不再刻意追求语音特征的细化,而是更多地从整体平均(统计)的角度来建立最佳的语音识别系统。在声学模型方面,以Markov链为基础的语音序列建模方法HMM(隐式Markov链)比较有效地解决了语音信号短时稳定、长时时变的特性,并且能根据一些基本建模单元构造成连续语音的句子模型,达到了比较高的建模精度和建模灵活性。在语言层面上,通过统计真实大规模语料的词之间同现概率即N元统计模型来区分识别带来的模糊音和同音词。另外,人工神经网络方法、基于文法规则的语言处理机制等也在语音识别中得到了应用。20世纪90年代前期,许多著名的大公司如IBM、苹果、AT&T和NTT都对语音识别系统的实用化研究投以巨资。语音识别技术有一个很好的评估机制,那就是识别的准确率,而这项指标在20世纪90年代中后期实验室研究中得到了不断的提高。比较有代表性的系统有:IBM公司推出的ViaVoice和DragonSystem公司的NaturallySpeaking,Nuance公司的NuanceVoicePlatform语音平台,Microsoft的Whisper,Sun的VoiceTone等。其中IBM公司于1997年开发出汉语ViaVoice语音识别系统,次年又开发出可以识别上海话、广东话和四川话等地方口音的语音识别系统ViaVoice98。它带有一个32,000词的基本词汇表,可以扩展到65,000词,还包括办公常用词条,具有“纠错机制”,其平均识别率可以达到95%。该系统对新闻语音识别具有较高的精度,是目前具有代表性的汉语连续语音识别系统。1.1.2 国内研究历史及现状我国语音识别研究工作起步于五十年代,但近年来发展很快。研究水平也从实验室逐步走向实用。从1987年开始执行国家863计划后,国家863智能计算机专家组为语音识别技术研究专门立项,每两年滚动一次。我国语音识别技术的研究水平已经基本上与国外同步,在汉语语音识别技术上还有自己的特点与优势,并达到国际先进水平。中科院自动化所、声学所、清华大学、北京大学、哈尔滨工业大学、上海交通大学、中国科技大学、北京邮电大学、华中科技大学等科研机构都有实验室进行过语音识别方面的研究,其中具有代表性的研究单位为清华大学电子工程系与中科院自动化研究所模式识别国家重点实验室。清华大学电子工程系语音技术与专用芯片设计课题组,研发的非特定人汉语数码串连续语音识别系统的识别精度,达到94.8%(不定长数字串)和96.8%(定长数字串)。在有5%的拒识率情况下,系统识别率可以达到96.9%(不定长数字串)和98.7%(定长数字串),这是目前国际最好的识别结果之一,其性能已经接近实用水平。研发的5000词邮包校核非特定人连续语音识别系统的识别率达到98.73%,前三选识别率达99.96%;并且可以识别普通话与四川话两种语言,达到实用要求。中科院自动化所及其所属模式科技(Pattek)公司2002年发布了他们共同推出的面向不同计算平台和应用的“天语”中文语音系列产品PattekASR,结束了中文语音识别产品自1998年以来一直由国外公司垄断的历史。 如果从识别系统的词汇量大小考虑,也可以将识别系统分为3类:(1)小词汇量语音识别系统。通常包括几十个词的语音识别系统。(2)中等词汇量的语音识别系统。通常包括几百个词到上千个词的识别系统。(3)大词汇量语音识别系统。通常包括几千到几万个词的语音识别系统。随着计算机与数字信号处理器运算能力以及识别系统精度的提高,识别系统根据词汇量大小进行分类也不断进行变化。目前是中等词汇量的识别系统到将来可能就是小词汇量的语音识别系统。这些不同的限制也确定了语音识别系统的困难度。1.2 语音识别技术的应用及研究方向 语音识别技术是计算机智能接口与人机交互的重要手段之一。从目前及整个社会的发展来看,已经诞生了全球首套多语种交谈式语音识别系统E-talk。这是全球唯一拥有中英混合语言的识别系统,可以识别出普通话、粤语和英语,还可以适应不同的地方口音。由于E-talk可以提高工作效率,降低运营成本,并为用户提供便捷的增值服务,它将成为电信、证券、金融等重视客户服务的行业争相引用的电子商务应用系统。目前,飞利浦推出的语音识别自然会话平台SpeechPearl和SpeechMania已成功地应用于国内呼叫中心,SpeechPearl中的每个识别引擎可提供高达20万字的超大容量词库,尤其在具有大词汇量、识别准确性和灵活性等要求的各种电信增值服务中有着广泛的应用。 对于语音编码而言,长期以来,在通信网的发展中,解决信息传输效率是一个极其重要的关键问题。目前科研人员已通过两个途径研究这一课题,其一是研究新的调制方法与技术,来提高信道传输信息的比特率,指标是每赫兹带宽所传送的比特数;其二是压缩信源编码的比特率。这对任何频率资源有限的传输环境来说,无疑是极为重要的,尤其是在无线通信技术决定今后通信发展命运的今天更显得重要。实际上,压缩语音编码比特率与话音存储、语音识别及语音合成等技术都直接相关。数字语音编码技术从1938年提出PCM开始,其编码方法已有了很大的发展,如1968年提出的线性预测编码技术(LPC)、20世纪70年代末出现的隐马尔科夫技术(HMM)以及矢量量化(VQ)等。随着技术的不断发展及网络技术的日益完善和普及,语音识别技术也出现了一些新的研究方向。 连续自然语音的识别。目的是能让计算机更好的理解人说的话,能让计算机更好的处理人类流畅的自然发音,该技术需要解决的难点很多,对它的研究是今后的目标之一。语音识别技术与多媒体技术的结合。今后的发展,人类对语音信号的需要将不仅仅局限于可懂性和正确性上了,而是需要在合成语音的美感的同时并输出辅助的视频特征,实现主持人的效果。不同语种的解决。不同民族有不同的语言,在如今开放的信息网络时代,不同语言之间的交流显得十分重要,因此,多语种的合成有着独特的应用价值。例如,在自动电话翻译、有声电子邮件等应用中都涉及到了多语种合成的需求。1.3 语音识别系统的基本构成 语音识别系统的总体结构如图1.1。首先通过语音的录制作为输入信号,输入的模拟语音信号要进行预处理,包括预滤波、采样和量化、加窗、端点检测、预加重等等。经过预处理后,接下来就是重要的一环:特征参数提取。要求是:(1) 提取的特征参数要能有效地代表语音特征,具有很好的区分性。(2) 各阶参数之间有良好的独立性。(3) 特征参数要计算方便,最好有高效的计算方法,以保证语音识别的实时实现。训练识别参考 模块识别结果语音输入预处理特征提取测度估计模板库识别决策专家知识图1.1 语音识别总体架构 训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。2语音信号的数字模型及采集2.1 概述 为了实现语音识别,首先得对语音信号产生的原理进行一个剖析,因此,我们只有在对人的发声器官和发声机理进行研究的基础上,才能够清晰的理解到语音信号产生的数学模型。当然,人类的发音过程过于复杂性和语音信息的丰富性及多样性,所以至今为止仍未找到一种能够准确描述语音产生过程。同样,作为接受信息的人耳的听觉系统,其听觉机理也是相当复杂的。本章将简单介绍人发声及收听的基本原理,重点介绍计算机的模拟函数wavrecord和wavplay。2.2 语音的发音原理2.2.1 人的发声器官人类的语音是由人的发声器官在大脑控制下的生理运动产生的。主要由三部分组成:肺和气管产生气源;喉和声带组成声门;由咽腔、口腔、鼻腔组成声道,如图2.1(张雪英,2012.7)所示的发声器官模型。图2.1 发声器官模型肺的发声功能主要是产生压缩气体,通过气管传送到声音生成系统。气管连接着肺和喉,它是肺与声道联系的通道。图2.2 喉的平面解剖图喉是控制声带运动的软骨和肌肉的复杂系统,主要包括:环状软骨、甲状软骨、杓状软骨和声带。其中声带是重要的发声器官,它是伸展在喉前、后端之间的褶肉,如图2.2(张雪英,2012.7)所示,前段由甲状软骨支撑,后端由杓状软骨支撑,而杓状软骨又与环状软骨较高部分相联。这些软骨在环状软骨上的肌肉的控制下,能将两片声带合拢或分离。声带之间的间隙称为声门。声带的声学功能主要是产生激励。位于喉前呈圆形的甲状软骨称为喉结。声道是指声门至嘴唇的所有发音器官,其纵剖面图如图2.3(张雪英,2012.7)所示。包括:咽喉、口腔和鼻腔。口腔包括上下唇、上下齿、上下齿龈、上下腭、舌和小舌等部分。上腭又分为硬腭和软腭两部分;舌又分为舌尖、舌面和舌根三部分。鼻腔在口腔上面,靠软腭和小舌将其与口腔隔开。当小舌下垂时,鼻腔和口腔便耦合起来,当小舌上抬时,口腔与鼻腔是不相通的。口腔和鼻腔都是发生时的共鸣器。口腔中各器官能够协同动作,使空气流通过时形成各种不同情况的阻碍并产生振动,从而发出不同的声音来。声道可以看成是一根从声门一直延伸到嘴唇的具有非均匀截面的声管,其截面面积主要取决于唇、舌、腭和小舌的形状和位置,最小截面面积可以为零(对应于完全闭合的部位),最大截面积可以达到约20cm2。在产生语音的过程中,声道的非均匀截面又是随着时间在不断地变化的。成年男性的声道的平均长度约为17cm。当小舌下垂使鼻腔和口腔耦合时,将产生出鼻音来。图2.3 声道纵剖面图2.2.2 语音生成在发声器官模型图2.1(张雪英,2012.7)中,空气由肺部排入喉部,经过声带进入声道,最后由嘴发声声波,形成语音。在声门(声带)以左,称为“声门子系统”,它负责产生激励震动;右边是“声道系统”和“辐射系统”。当发不同性质的语音时,激励和声道的情况是不同的,他们对应的模型也是不同的。1. 发浊音的情况空气流经过声带时,如果声带是崩紧的,则声带将产生张弛振动,即声带将周期性地启开和闭合。声带启开时空气流从声门喷射出来,形成一个脉冲,声带闭合时相应于脉冲序列的间隙期。因此,这种情况下在声门处产生出一个准周期脉冲状的空气流。该空气流流经过声道后最终从嘴唇辐射出声波,这便是浊音语音。2. 发清音的情况空气流经过声带时,如果声带是完全舒展开来的,则肺部发出的空气流将不受影响地通过声门。空气流经过声门后,会遇到两种不同情况。一种情况是,如果声道的某个部位发生收缩形成了一个狭窄的通道,当空气流达到此处时被迫以高速冲过收缩区,并在附近产生出空气湍流,这种湍流空气通过声道后便形成所谓的摩擦音或清音。第二种情况是,如果声道的某个部位完全闭合在一起,当空气流达到时便在此处建立起空气压力,闭合点突然开启便会让气压快速释放,经过声道后便形成所谓爆破音。这两种情况下发出的音称为清音。2.3 语音的听觉机理听觉是接受声音并将其转换成神经脉冲的过程。大脑受到听觉神经脉冲的刺激感知为确定的含义是一个非常复杂的过程,至今仍未完全清楚。2.3.1 听觉器官人的听觉器官分三个部分:外耳、中耳和内耳,如图2.4(张雪英,2012.7)所示。图2.4 听觉器官图2.4 听觉器官外耳由位于头颅两侧呈贝壳状和向内呈S状弯曲的外耳道组成,包括:耳廓、耳壳和外耳道。主要作用是收集声音、辨别声源,并对某些频率的声音有扩大作用。声音沿外耳道传送至鼓膜,外耳道有许多共振频率,恰好落在语音频率范围内。中耳主要由鼓膜和听骨链组成。听骨链由三块听小骨组成,分别为锤骨、砧骨和镫骨。其中锤骨柄与骨膜相连,镫骨底板与耳蜗的前庭窗相连。声音经骨膜至内耳的传输过程主要由听骨链来完成。由于鼓膜的面积比前庭窗大出许多倍(55:3.2),听骨链有类似杠杆的作用,所以人的声音从鼓膜到达内耳时,能量扩大了20多倍,补充声音在传播过程中的能量消耗。由于中耳将气体运动高效地转为液体运动,所以它实际上起到一种声阻抗匹配的作用,由此可以看出,整个中耳的主要生理功能是传音,即将声音由外耳道高效的传入耳蜗。从上述分析可以看出,中耳的主要功能是改变增益,还有就是对外耳和内耳进行匹配阻抗。内耳是颅骨腔内的一个小而复杂的体系,由前庭窗、圆窗和耳蜗构成,前庭窗在听觉机制中不起什么作用,圆窗可以为不可压缩液体缓解压力,耳蜗是内耳的主要器官,它是听觉的收纳器,形似蜗牛壳,为螺旋样骨管。蜗底面向内耳道,耳蜗神经穿过此处许多小孔进入耳蜗耳蜗中央有呈圆锥形骨质的蜗轴,从蜗轴有螺旋板伸入耳蜗管内,由耳蜗底盘旋上升,直到蜗顶。它由三个分割的部分组成:骨阶、中阶和前庭阶。骨阶与中耳通过圆窗相连,前庭阶与中耳的镫骨由前庭窗的膜相连,骨阶和前庭阶在耳蜗的顶端即蜗孔处是相通的。中阶的底膜称为基底膜(Basilar membrane),在基底膜之上是科蒂式器官(Oragan of Corti),它由耳蜗覆膜(Tectorial membrane)、外毛细胞(Outer hair cell)及内毛细胞(Inner hair cell)构成。如图2.5(张雪英,2012.7)所示。图2.5 内耳结构图2.3.2 耳蜗的信号处理原理当声音经外耳传入中耳时,镫骨的运动引起耳窝内流体压强的变化,从而引起行波沿基底膜的传播。如图2.6(张雪英,2012.7)所示的流体波的简单表示。在耳蜗的底部基底膜的硬度很高,流体波传播的很快。随着波的传播,膜的硬度变得越来越小,波的传播也逐渐变缓。不同频率的声音产生不同的行波,而峰值出现在基底膜的不同位置上。频率较低时,基底膜振动的幅度峰值出现在基底膜的顶部附近;相反,频率较高时,基底膜振动的幅度峰值出现在基底膜的基部附近(靠近镫骨)。如果信号是一个多频率信号,则产生的行波将沿着基底膜在不同的位置产生最大的幅度如图2.7(张雪英,2012.7)所示。从这个意义上讲,耳蜗就像一个频谱分析仪,将复杂的信号分解成各种频率分量。图2.6 耳蜗内流体波简单表示图2.7 基底膜上6个不同点的频率响应基底膜的振动引起毛细胞的运动,使得毛细胞上的绒毛发生弯曲。绒毛向一个方向的弯曲会使细胞产生去极化,即开启离子通道产生向内的离子流,从而使传入神经开放增加。而绒毛向另一个方向弯曲时,则会引起毛细胞的超极化,即增加细胞膜电位,从而导致抑制效应。因此,内毛细胞对于流体运动速度而言,就像一个自动回零的半波整流器。在基底膜不同部位的毛细胞具有不同的电学与力学特征。在耳蜗的基部,基底膜宽而柔和,毛细胞及其绒毛也较长而柔和。正是由于这种结构上的差异,因此它们具有不同的机械谐振特性和电谐振特性。外毛细胞可在中枢神经系统的控制下调节科尔蒂器官的力学特性,内毛细胞则负责声音检测并激励传入神经发放,而内外毛细胞通过将其绒毛插入共同的耳蜗覆膜而耦合。这样,外毛细胞性质的变化可以调节内毛细胞的调谐,使整个耳蜗的动态功能处于大脑控制之下。2.4 MATLAB中的语音信号模型前两节均详细解释了人的发音及听觉原理。可以看出,发音过程及收听语音的过程是及其复杂的。所以对于计算机而言,是难以找到一种完全接近的算法来诠释发音及收听过程。但是,在MATLAB R2011B中,有两个函数可以用来模拟人的发音及收集语音功能,即wavplay函数跟wavreord函数。2.4.1 wavrecord函数wavrecord的用法:y = wavrecord(n,Fs);y = wavrecord(n,Fs,ch);y = wavrecord(n,Fs,ch,dtype);y = wavrecord(n,Fs,ch,dtype);其中n为样本数,Fs为采样频率,默认值为11025,ch为通道数,默认为1,若为2,则表示采样为双声道立体声数据,该参数可以省略,dtype为采样数据的存储格式,用字符串指定,如表2.1:表2.1 字符串值为“dtype”以及相应的位/样品和可接受的数据范围ydtypeBits/sampley Data Rangedoublesingleint16uint816161681.0 = y +1.01.0 = y +1.032768 = y = +327670 = y = 255audiorecorder也可以用来录制音频,但是在操作上,因为通常采用的语音格式以wav格式为主,在保存语音上,wavrecord比audiorecorder能更好的与uiputfile相结合,所以用wavrecord比audiorecorder比较好。2.4.2 wavplay函数 wavplay函数的用法:wavplay(y,Fs)wavplay(y,Fs,mode)其中,y为输入信号,Fs为频率,其数据类型如表2.2所示表2.2 wavpaly的数据类型Data TypeQuantizationDouble-precision(default value)Single-precision16-bit signed integer8-bit unsigned integer16 bits/sample16 bits/sample16 bits/sample8 bits/sample在播放音频上,还有sound与soundsc也可以用来进行音频的回放,它们可以在任何操作系统平台上使用,而wavplay只支持Windows平台。但是因为在语音识别中,通常采用的语音格式为wav格式,而wavplay与wavrecord的配合能更好的操作运行起来,两者结合共同使用。举个例子:Fs=11025;y=wavrecord(5*Fs,Fs,int16);wavplay(y,Fs); 该段代码意思为:通过Windows的录音设备以11025Hz的采样频率录制5秒的数据,采样精度为16位,存储格式为int16;随后通过Windows的音频设备进行播放 在MATLAB中处理语音信号时,可以通过wavplay回放录制好了的语音,具有快速检验数据和计算的可靠性。但是在录音时候,wavrecord有很大的局限性,在录制语音的时候必须制定语音的时间。如果时间太短或者在指定的时间内用户没有说话,就会漏掉部分或全部的语音数据,这样操作起来不方便。另外,在一个语音识别系统中,程序必须自动判断当前是静音还是用户在说话,如果用户有发出过语音,那么应该保存该段语音,然后将头部和尾部的静音部分删除掉,这一功能被称为语音信号的端点检测。3 语音信号的端点检测3.1 概述在详解语音信号的端点检测之前,先来了解一下语音信号的特征,如图3.1可以看到,数字“1”信号在大致450011000之间的采样点属于发音状态,头部跟尾部的信号幅度都很低,属于静音或噪音。图3.1 数字“1”的时域图图3.2是数字“1”的头部放大图,从图中可以看出,在4400之前的信号幅度很低,明显属于静音,而从4400开始,幅度开始增强,并且有明显的周期性,两个尖峰之间的距离就是所谓的基音周期,也就是人的声带振动的周期。这样的话,我们可以用信号的幅度作为特征,区分静音和语音。只要设定一个门限,当信号幅度超过这个门限的时候,就当作语音开始,当幅度降低到门限以下的时候就认为语音结束。图3.2 数字“1”头部放大图 因此,我们可以采用短时能量来描述语音信号的幅度。比如,对于一个读取到的语音信号x(n),其中n为采样点,首先进行分帧,将语音信号分为每2030ms一段,相邻两帧起始点之间间隔为10ms,也就是说两帧之间有1020ms的交叠。由于采样频率的差异,帧长和帧移所对应的实际采样点数都不一样。举个例子:一个8kHz的采样频率,30ms的帧长对应240点,记为N,而10ms的帧移对应为80点,记为M。 对应第i帧,第n个样本,它与原始语音信号的关系为:xi(n)=x(i-1)M+n 第i帧的语音信号的短时能量就可以用下面几种算法得到: 分别为绝对值的累加、平方累加和平方的对数的累加,选择其中一种就可以了。计算完每帧的短时能量,然后再设定一个门限,就可以实现一个简单的检测算法了。但是这种算法不可靠,因为人的发音有清音和浊音之分,浊音为声带振动发出,对应的幅度高,周期性明显,而清音则不会有声带的震动,只是靠空气在口腔中的摩擦、冲击或爆破而发音,其短时能量一般比较小。如声母“s”、“c”等的幅度就很低,往往会被漏掉。图3.3 数字“3”的头部放大图比如图3.3显示的数字“3”开始部分的波形,可以看到声母“s”的范围大概为64007100。幅度明显比后面的低很多,以至于有时用肉眼都难以区分跟静音的区别,所以基于短时能量的算法对这些语音信号几乎无能为力。 不过虽然不能用短时能量可靠的区分开,但是可以发现在静音段信号的波形变化相对比较缓慢,而在清音段,因为口腔空气摩擦的效果,造成的波形在幅度上相对变化比较剧烈,这时,可以通过用一帧信号中波形穿越零电平的次数来描述这种变化的剧烈程度,成为过零率,公式为: 实际上,为了避免静音段的随机噪声产生过高的过零率,通常都会先设定一个门限,当前后两个采样的符号不同时,而且差值大于该门限的时候,就将过零率的数值加1。3.2 MATLAB的语音端点检测算法 该算法不是实时运行的,而是读取一个wav文件获得语音采样,然后将其分帧计算短时能量和过零率参数,再进行端点检测。这种方式称为离线处理方法。3.2.1 短时能量的计算 基于前面讲过的三种定义的短时能量分别可以用下面三条命令实现:amp1=sum(abs(y),2);amp1=sum(y.*y,2);amp1=sum(log(y.*y+eps),2);在计算短时能量时,一般都要将语音信号通过一个一阶高通滤波器,称为预加重滤波器,它的目的在于滤除掉低频干扰,尤其是50Hz或60Hz的工频干扰,提升更为有用的高频部分的频谱。在计算短时能量之前应用该滤波器,还可以起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。公式为:amp = sum(abs(enframe(filter(1 -0.9375, 1, x), FrameLen, FrameInc), 2); 在公式中用的虽是绝对值能量,实际上就是平均幅度。3.2.2 过零率的计算 过零率的计算则没有那么简单。其计算过程如图3.4所示。 否zcr(i)=zcr(i)+1j=j+1输入语音信号设定一个门限deltax(j)+x(j+1)delta?是 图3.4 短时过零率流程图在计算流程中,可以设置门限delta=0.02。这个门限可以进行细微的调整,通过该流程并编写相应的代码可以得到图3.5波形。 与原始语音信号波形一起可以看到,语音信号声母部分的幅度虽然比较低,但是其过零率的数值却很高,峰值将近50,而在其后面的韵母部分过零率则比较低,在20左右。图3.5 过零率波形图因此,在实际应用中,一般都是利用过零率来监测清音,利用短时能量来监测浊音,两者配合起来则实现可靠的端点检测。用得比较多的是一种双门限的算法。在过零率的程序中,为了后面处理方便,通常将读取的语音信号进行归一化,即:x=x./max(abs(x);然后再计算语音信号的短时能量和过零率,而该程序用了两重循环,影响了运算速度,为了提高算法的效率,通常采用一种矢量化的计算方法,如下:tmp1= enframe(x(1:end-1), FrameLen, FrameInc);tmp2= enframe(x(2:end), FrameLen, FrameInc);signs = (tmp1.*tmp2)0.02;zcr = sum(signs.*diffs, 2);以上代码中,tmp1和tmp2都是由x得到,但是相互之间相差一个采样点,signs为符号数组,用于存储相邻两个采样点的符号是否相同,也就是说是否穿越零电平。diffs用来度量相邻两个采样点之间的距离,如果距离大于所设置的门限即0.02,则为1,否则为0。最后将两个矩阵点相乘就可以得到满足两个条件的采样点矩阵。然后将其按帧求和,就可以得到过零率。3.2.3 端点检测的流程前两小节均介绍了语音端点检测两点主要算法,其检测流程如图3.6所示。语音信号输入设置短时能量高、低门限设置短时过零率高、低门限计算过零率计算短时能量进入状态status开始检测调整能量门限归一化图3.6 端点检测算法流程图检测之前,先为短时能量和过零率分别确定两个门限。一个是比较低的门限,其数值比较小,对信号的变化能够敏感,很容易就会被超过;而另一个是比较高的门限,数值要求比较大,信号要达到一定的强度,该门限才可能被超过。不过,低门限被超过未必就是语音的开始,有可能是时间很短的噪声引起的。高门限被超过的话则可以基本确定是由于语音信号引起的。然后计算短时能量及过零率,并调整好能量门限,接下里进入到最关键的一步,即变量status分析,status可以分为四种状态,如图3.7所示。status0,132图3.7 status分析(1)在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。即status 0,1状态;(2)在过渡段,由于参数的数值小,不能确定是否处于真正的语音段,所以只要当两个参数的数值都回落到低门限以下,就要将当前状态恢复到静音状态,但是如果在过渡段中两个参数中的任何一个超过了高门限,那么就可以确定进入语音段了。即status 2状态;(3)结束段,即status 3状态。注意:一些突发性的噪声也会引起短时能量或过零率的数值变高,但是往往不能维持足够长的时间,比如门窗的开关、物体的碰撞等引起的噪声。这些都可以通过设置最短时间门限来判定。即当前状态如果处于语音段时,若两个参数的数值降低到最低门限以下,而且总的记时长度小于最短时间门限,那么认为这一段为噪声,然后继续扫描接下来的语音数据,否则就标记好结束端点并且返回。4 语音信号非线性预测分析4.1 概述随着语音识别技术在各个国家的科学界受到重视,寻找一种与人耳相近的参数是每个科学家的目标,而近年来,一种能够比较充分利用人耳这种特殊的感知特性的参数得到广泛应用,这种参数就是Mel尺度倒谱参数(Mel-scaled Cepstrum Coefficients),或称Mel频率倒谱参数,简称MFCC。同时,有一种与MFCC系数类似也是基于发音模型的LPCC系数,不过,LPCC参数没有充分利用到人耳的听觉特性,是一种线性系统。所以MFCC参数比LPCC参数更好地提高系统的识别性能。本章主要介绍语音信号非线性预测分析(MFCC参数)的基本原理,算法流程及所涉及的参数。4.2 MFCC的基本原理在语音识别处理信号过程中,MFCC参数是按照帧计算的。其特征提取及计算过程如图4.1所示。x(n)预加重、分帧、加窗端点检测DFT/FFTMel频率滤波器组log对数能量DCT求倒谱图4.1 MFCC特征提取及计算流程(1)预加重、分帧及加窗 在语音参数计算之前,一般要将其通过一个预加重滤波器,预加重目的是为了对语音的高频部分进行加重增加其高频分辨率,其函数为:x=filter(1 -0.9375,1,x);分帧操作主要是提取语音短时特性便于建模,一般取帧长30ms,帧移10ms;对于语音信号时域分析来说,窗函数的选择很重要,虽说矩形窗平滑比较好,但是容易丢失波形细节,并有可能造成泄漏现象。而Hamming窗可以有效的客服泄漏现象。所以在加窗方面常以Hamming窗为主,即:(2)端点检测端点检测是语音识别中的一个重要环节,有效的端点检测方法不仅可以减少数据的存储量和处理时间,还可以排除无声段的噪声干扰。而在第三章就详细介绍了基于短时能量和短时过零率的端点检测算法过程。可以参考下第三章的端点检测算法。(3)FFT算法计算:在序列后补零以构成N=512点在进行离散FFT变换,第i帧语言的频谱为:。(4)将上述线性频谱X(k,i)通过在频率范围内设置的若干个具有三角滤波特性的带同滤波器的Mel滤波器组得到Mel频谱。总传递函数为: (5)将对数能量谱S(k,i)经过离散余弦变换(DTC)即可得到Mel倒谱系数,M为滤波器的个数:。4.3 实验结果经过MFCC的基本原理分析编写相应的代码,然后通过MATLAB R011B运行附录中的代码。可以得到每一组数据的时域图、短时能量图及MFCC分析图,如图4.2所示。 从图中可以看出,在计算数字“1”的MFCC系数时,经
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深圳护师考试试题及答案
- 基础拼音试题及答案
- 门窗培训考试题及答案
- 中医临床三基(医技)临床基础知识考试题库 (含答案)
- 树洞秘密课件
- 数字化物流商业运营 习题答案-模块2
- 2025年夹具厂家供货合同范文大全
- 2025年材料员网络培训考试题库及答案
- 北京安全应急知识培训中心课件
- 北京医院看病知识培训班课件
- 2025四川绵阳市建设工程质量检测中心有限责任公司市场部业务拓展员岗招聘1人笔试备考试题及答案解析
- 2025年秋季开学全体教师大会校长讲话:践行“六个学会”做学生生命中的那束光
- 项目成本预算管理制度
- 2025年成都教师招聘考试教育公共基础知识真题及答案
- 中学语文教学资源开发与利用指南
- 《幼儿园工作规程》知识测试卷(含答案)
- 2025年材料管理岗位考试题库
- 年级主任职责详解及管理要点
- 储能项目投资测算方案
- 2025至2030中国乙烯醋酸乙烯酯(EVA)树脂行业产业运行态势及投资规划深度研究报告
- 【25秋】统编版小学语文二年级上册-《第八单元大单元设计》课件
评论
0/150
提交评论