基于HMM的语音合成技术研究_第1页
基于HMM的语音合成技术研究_第2页
基于HMM的语音合成技术研究_第3页
基于HMM的语音合成技术研究_第4页
基于HMM的语音合成技术研究_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

-PAGE35-基于HMM的语音合成技术研究ResearchonSpeechSynthesisTechnologyBasedonHMM注:页眉,居中,楷体,五号。阅后删除此文本框。摘要注:页眉,居中,楷体,五号。阅后删除此文本框。语音合成技术是一种将计算机等电子设备中存储或输入的文本信息转换为对应音频的一种技术,是机器与人类交互的一种方法,语言是人类最习惯的沟通方式,所以语音交互相比于其他交互方式如文字交互,动作交互更加方便,自然。语音合成技术发展历史有二百年之久,语音合成的方法也不断地更新和发展,由最初的机械合成器,到后来的电子合成器,共振峰合成器,语音合成技术也慢慢的趋于成熟而更加智能化。本文介绍了一种基于统计模型的语音合成方法,这是近年来随着人工智能领域的迅速发展而成为主要研究热点的一种合成方法,同其他合成方法相比,基于统计模型的语音合成具有智能化、合成语音稳定等优点。隐马尔科夫模型(HidenMarkovModel,HMM)是其中最常用的统计模型,是语音识别,模式识别相关领域中的主流模型。本文采用的硬件平台是EAIDK610-P0,该平台是EAIDK的第一款智能硬件平台,专为人工智能开发者精心打造的面向边缘计算的开发套件,主芯片采用ArmChina和瑞芯微公司共同研发的RK3399,为人工智能开发提供简洁高效、统一的API接口。本文首先对语音合成的发展历史和关键技术进行了总结,然后对HMM模型的原理以及相关算法进行了研究,并对其三个经典的三个问题的解决算法进行研究,在一定的理论基础上,对基于HMM的语音合成原理进行了解,最终实现在嵌入式平台上进行HMM模型训练,并基于Flite开源框架在嵌入式平台上实现了语音合成功能,最后对不同音素库合成的语音质量进行了评估。关键词:隐马尔可夫模型;嵌入式系统;交叉编译;语音合成

AbstractSpeechsynthesistechnologyisatechnologyforconvertingtextinformationstoredorinputinelectronicdevicessuchascomputersintocorrespondingaudio.Itisamethodformachineandhumaninteraction.Languageisthemostcommoncommunicationmethodforhumanbeings,sovoiceinteractionComparedwithotherinteractionmethodssuchastextinteraction,actioninteractionismoreconvenientandnatural.Thehistoryofspeechsynthesistechnologyhasbeenaroundfor200years,andthemethodsofspeechsynthesishavebeencontinuouslyupdatedanddeveloped.Fromtheinitialmechanicalsynthesizerstothelaterelectronicsynthesizers,formantsynthesizers,speechsynthesistechnologyisalsoslowlyMatureandmoreintelligent.Thispaperintroducesaspeechsynthesismethodbasedonstatisticalmodel,whichisasyntheticmethodthathasbecomeamajorresearchhotspotinrecentyearswiththerapiddevelopmentofartificialintelligence.Comparedwithothersyntheticmethods,speechsynthesisbasedonstatisticalmodelhasIntelligent,syntheticvoicestabilityandotheradvantages.ThehiddenMarkovmodelmainlyintroducedinthispaperisthemostcommonlyusedstatisticalmodel,andisthemainstreammodelinthefieldofspeechrecognitionandpatternrecognition.ThehardwareplatformusedinthispaperisEAIDK610-P0,whichisthefirstintelligenthardwareplatformofEAIDK.Itisanedge-orienteddevelopmentkitspeciallydesignedforartificialintelligencedevelopers.ThemainchipisjointlydevelopedbyArmChinaandRuixinwei.RK3399providesasimple,efficientandunifiedAPIinterfaceforartificialintelligencedevelopment.ThroughtheHMMmodeltrainingontheplatform,andbasedontheFliteopensourceframeworktoachievethespeechsynthesisfunctionontheembeddedplatform,thispaperalsoevaluatesthespeechqualitysynthesizedbydifferentphonemes.Thispaperfirstsummarizesthedevelopmenthistoryandkeytechnologiesofspeechsynthesis,thenstudiestheprincipleofHMMmodelandrelatedalgorithms,andstudiesthesolutionsofthreeclassicthreeproblems,onacertaintheoreticalbasis.UnderstandtheprincipleofHMM-basedspeechsynthesis,andfinallyrealizetheHMMmodeltrainingontheembeddedplatform,andimplementthespeechsynthesisfunctionontheembeddedplatformbasedontheFliteopensourceframework.Finally,thespeechqualitysynthesizedbydifferentphonemeslibraryiscarriedout.Evaluation.KeyWords:HidenMarkovModel;EmbeddedSystems;Crosscompilation;Speechsynthesis.目录摘要 IIIAbstract IV第一章语音合成概述 11.1语音合成技术简介 11.1.1语音合成概念 11.1.2语音合成意义 21.2语音合成发展历史和现状 41.2.1发展历史 41.2.2语义合成研究现状 51.3语音合成主要方法 51.3.1参数合成方法 51.3.2波形拼接合成法 61.3.3基于统计模型的合成方法 71.4本章小结 7第二章基于HMM模型的语音合成 82.1马尔科夫过程 82.2隐马尔科夫模型 82.3HMM模型的三个问题 102.3.1评估问题 102.3.2解码问题 102.3.3学习问题 112.4基于HMM的语音合成 122.4.1TTS系统结构 122.4.3模型训练阶段 132.4.4语音合成阶段 162.5本章小结 17第三章基于嵌入式的语音合成实现 183.1ARM嵌入式平台简介 183.1.1EAIDK套件概述 183.1.2ARM开发板RK3399的概述 183.2Linux系统 203.3基于ARM嵌入式的Linux系统编译和移植 223.3.1安装交叉编译环境 233.3.2虚拟机和ARM开发板的链接介质 243.3.3编译Linux内核 243.3.4文件传输 243.4基于Linux系统的语音合成软件设计 243.5本章小结 26第四章语音合成性能测试结果与分析 274.1语音质量的主观评测 274.2语音质量的客观评测 284.3评测结果总结 30第五章总结和展望 315.1总结 315.2展望 31参考文献 32附录AFlite部分程序代码 错误!未定义书签。致谢 35第一章语音合成概述1.1语音合成技术简介1.1.1语音合成概念语音合成是通过模仿人类发声器官,用机器产生人类自然语音的技术。通俗来讲,就是用机器发出人类的声音,把机器自己产生的,或者外部输入的文字信息转换成清晰、流畅的语音,相当于是给机器安装了发声器官,赋予机器用语言表达自己的能力。它涉及到信号处理、声学、语音学、模式识别以及心理学等众多学科的理论和技术,是一门典型的交叉学科[1]。语音合成技术目前有三种类型:文字到语音的合成(Text-To-Speech,TTS)、概念到语音的合成(Concept-To-Speech,CTS)、意向到语音的合成(Intention-To-Speech,ITS)[2]。TTS、CTS、ITS分别代表了在不同的层次上合成语音的过程[3],其中,最浅显的也是目前研究最为热门的是TTS,即文字到语音的合成技术。本文主要研究的也是TTS技术。图1.1TTS系统结构图图1.1是TTS系统的结构框图。TTS技术由文本分析、韵律控制和语音生成三个核心模块组成[4]。文本分析指的是对系统要处理的文本内容进行分词,标音,把文本内容转化成单一的音标或组合,经过文本分析后输出与文本相对应的音标序列。韵律特征是对每个人声音的语气,语调,音长等参数的体现,每个人由于说话习惯以及声道构造不同,其语音参数也不尽相同,而影响这些区别的则是如基频,音强,音长等韵律参数,韵律控制就是对这些参数进行计算,从而合成更加生动的语音。语音生成就是TTS系统根据计算得出的音标序列和声音参数,利用声音合成器合成语音的过程。文本分析模块在TTS系统中有着至关重要的作用,作为语音合成的第一步,它的作用是对输入的文本信息进行理解和分析[5],并把发音信息传给后两个模块。文本分析模块的工作原理是结合发音词典、规则库、统计库等发音字典,对输入的文本信息进行分解单个音素,并进行音标标注,同时确定每一个词,每一个音节的重音等级。文本分析主要包括四个步骤:规范文本、分析语法、标音和确定重读,停顿和语气[6]。文本分析之后,将标注后的音标序列作为韵律控制模块的输入,进行对合成语音韵律的处理。声音的韵律特征是机器声音和自然语音差距最大的一个方面。自然语音传递信息不仅仅通过语音的内容,声音的语气,节奏,还有重音的不同,也是对信息的修饰,所以要想生成更加贴近自然语音的音频,对声音韵律特征的控制起到很重要的作用。一般常用声音的音强、音长和音色来对韵律特征进行描述[7],他们对应的是声学当中的幅度、基频和频谱的等参数。韵律控制就是对声音的这些参数进行收集和分析,然后语音生成模块根据这些参数特征用语音合成器进行语音合成。传统意义上来说,声音合成器有两种,一是基于规则的合成器,另一种是波形拼接的合成器[8]。基于规则的合成器是采用模拟人的生理发声规律的方法,先归纳出语音的产生规律,然后对信号进行控制,产生合成语义。波形拼接合成器则是把事先录制好的语音库按照一定顺序重新排序,从而生成符合文本内容的语音。随着技术的发展,现在越来越多的是两种合成方法组合使用,大大提高了合成语音的质量[9]。1.1.2语音合成意义语音合成技术和传统的声音播放系统有着根本上的区别。声音播放系统如录音机,是简单的把采集到的音频再播放出来,并不能自如的表达出人们想要传递的信息。而语音合成器是把机器产生或者人为输入的任何文字信息以音频的形式输出出来[10],并且输出的音频愈发趋近于人类自然语音,使人类和机器的交流成为了可能,同时,在信息的存储,传输和及时性等方面都较其他方式有很大的优势,所以在信息处理领域,它也正作为研究热点被热切关注,技术愈发成熟。语言是人类最习惯的交流方式,在人机交互方式中,语音交互也是人们使用最为方便的一种,语音识别、语义理解和语音合成是语音交互的两个重要技术,语音合成作为交互过程的最后一步其重要性可见一斑。虽然由于语义理解的技术发展水平有一定限制,但语音合成技术仍取得了很大的进步,目前已经成功应用在很多领域。自助服务领域随着科技发展,越来越多的服务行业愈发自动化,各种自助服务系统也随之走进我们的生活,而语音合成的存在,使我们在享受的服务的时候更加流畅和方便,比如银行的自助办理系统,医院的自助叫诊系统,股市查询系统。智能终端的人机交互近年来,随着人工智能概念的产生和发展,各种智能终端的交互方式也有了翻天覆地的变化,“声控”的智能手机、智能音响、智能家居等智能终端大大提高了我们的生活质量,省掉了很多不必要的动作,而且即使是不懂使用智能化终端的老人或者不认识文字的小孩也可以对机器进行控制,扩大了使用人群的范围。有声读物阅读对于任何人来说都是一个重要的学习途径,我们通过阅读接触跟多新鲜事物,也通过阅读找寻更真实的自己,但是节奏越来越快的生活使我们留给阅读的时间越来越少。现在人们更趋向于碎片化阅读,而这时有声读物提供了一种新的解决办法,当文字变成语音直接呈现给我们的的耳朵的时候,我们可以同时进行其他动作,比如在路上,或者是散步、锻炼时,给我们提供了一个新的机会去进行阅读和学习。导航系统语音合成技术和智能地图软件结合为我们的出行带来了很大的方便。语音导航使导航使我们在步行或者驾车的时候能更专注的前进,而不仅为我们提供了详细,准确的道路信息,而且还对路况也有智能化分析,并且通过语音的方式将信息传递给人类,保证了信息传递的及时性以及人类最舒适的交互体验。1.2语音合成发展历史和现状1.2.1发展历史人们早在十七世纪就开始了对语音合成的探索研究[11][12]。有记录的第一台机械发音设备是在1779年,俄罗斯人Kzenstein首先对五个长元音(/a/,/e/,/i/,/o/,/u/)的生理发声区别进行了解释,通过模仿人的声道,采用震动簧片做激励制作而成。不久之后,VonKempelen[13]成功发明出一种不近可以发出原因,还可以发出短语和句子的“发音器官”。该装置是用一个压力腔体模仿人体的肺器官,用一个皮革的管道来对人体声带进行模拟,通过改变声道的形状可以发出不同的声音,用一个弹簧振片作为激励[14],除此之外,还可以通过改变四个分离的受限通路发出相应的辅音,在当时是比较先进的机械发声器。随着电子元器件的发展,语音合成技术也和电子器件结合起来。1922年第一个电子语音合成器成功问世,发明者是Stewart[15],虽然这个发生器只能发出两个元音。不久之后的1939年贝尔实验室的Dudley[16]就成功发明了第一个完整的电子语音合成器,该合成器可对基因和浊音参数进行控制,能够产生连续的语音,通过和电子模拟器件的结合实现对声音的放大和共振。二十世纪后期,共振峰合成器逐渐开始发展起来[17]。1953年由WalterLawrence[18]设计制作了第一个共振峰合成器,通过一个可以移动的玻璃片对共振峰的频率进行控制。1962年瑞典的GunnarFant设计制作出级联共振峰合成器,随后更加复杂的共振峰合成器也随之问世,1981年,Klatt开发的KlattTalk就采用了串/并联混合型声源[19],能够合成相对清晰的语音,并通过对声源的调整来模拟各种不同的声音。Klatt的语音学领域的卓越贡献使得语音合成技术有了很大的发展。对于近代语音合成技术来说,基因同步叠加方法的提出是一次历史性的进步,这是一种不仅可以保持语音的大部分韵律特征而且可以使合成语音同共振峰合成器相比更加自然的合成方法。[20]九十年以来,随着信号处理领域的快速发展,一种基于可训练统计模型的语音合成方法开始走进人们的视野,其原理是对语音信号的语音参数进行统计建模,训练好的声学模型进行语音合成。这种方法进行语音合成更加智能化,减少了人为的参与。其中,隐马尔科夫模型是比较常用的统计模型。1.2.2语义合成研究现状从最开始模拟发声器官的机械合成器,到后来电子器件参与的波形拼接合成方法,再到后来随着信号处理领域的发展产生的基因同步叠加方法,语音合成技术的发展总是会受到其他技术的引导或是影响。最近最为热门的基于统计模型的单元挑选方法,就是伴随着统计学以及大数据的发展,很显然,未来技术的发展将会打破不同领域之间的墙壁,更多的是融合或是依赖关系。语音合成技术的不断发展,在越来越多的领域都成为了不可或缺的角色,同时也同其他技术的不断更新而面临着巨大挑战和改革[21]。近年来人们对人工智能的不断探索和研究,使得相关的人工神经网络,深度学习[22],人机交互等关键技术也随之成为研究热点,而语音合成的发展也逐渐趋向智能化,自动化,从最开始的规则驱动转向现在的数据驱动,不仅节省了时间,而且可处理的文本数据数量也大大增加,同时,在各种统计模型的支持下,文本处理能力也在不断增强,生成的语音也更加流畅和人自然,慢慢趋近于符合人类交流需要的自然水平。1.3语音合成主要方法1.3.1参数合成方法发音器官参数合成法最早的合成发放采用模拟人体发声器官的参数合成方法对语音进行合成[23]。根据发声原理,声音的产生主要分为声源激励、声道滤波和口鼻辐射三个主要过程。这种方法就是根据这个原理,用声音参数模拟声道,直接用物理仪器对人体的发音器官进行模拟合成语音,而在当时由于技术的限制无法对声音参数进行准确测量,所以不能对发音复杂的语音进行合成。线性预测参数合成法线性预测参数合成方法属于源-滤波器模型[24],它和器官参数合成法的主要区别在于后者直接利用声音参数模拟声道,而源-滤波器模型用滤波器来模拟声道,声音参数则用来改变声道模型,使得合成语音具有不同的音色。线性预测的声道模型如下:(1.1)其中G为增益,ai共振峰合成法共振峰同样也是源-滤波器模型,但同线性预测参数合成的区别在于共振峰合成法侧重于模拟声道的谐振特性。共振峰是指声音频谱中能量相对密集的一些区域,反映了声道特性的重要特征,是声音信息最直接的来源。其主要原理是:首先用多个共振峰滤波器来对声道特性进行模拟,然后调制激励信号,再通过辐射效应输出语音。共振峰合成法通过对声音参数的控制可以合成不同发音人的声音,其优势在于强大的韵律调整能力,然而合成语音的自然度仍然不能满足大众要求。1.3.2波形拼接合成法以上的参数合成方法是基于规则的合成方法,其合成过程中人为因素起了很重要的作用,而波形拼接合成方法是基于数据的合成方法,顾名思义,是把波形进行拼接获得语音的一种方法,其原理主要是直接对事先采集好的语音信号进行波形贮存,在合成语音时直接挑选出合适的波形并拼接在一起,由于用于拼接的声音波形都是从语音库中挑选出来的,所以这种方法合成的语音自然度性能较好,合成语音的音质较高。上个世纪九十年代提出的PSOLA的提出为语音合成技术的发展带来了质的飞跃。基音同步叠加技术由Moulines和Charpentier提出[25],可以对语音信号中基频和时长进行相关修改,以保证合成语音的原有声音特性。其具体的实施步骤有三个:分析语音信号的分析是指对源语音信号进行加窗处理[26],其中采用的的窗函数是基音同步的函数,生成一组短时分析信号,基音信息的准确度对于后续的合成步骤有很大影响。调整对分析生成的短时语音信号进行转换和调整,他这个过程分为三个步骤:对短时语音信号的数量的调整、对基音同步标志的间隔的调整以及对短时语音信号的波形进行调整。叠加叠加是指对调整之后的短时语音信号进行叠加处理,最终得到合成的语音信号,基频的叠加通常通过改变基音标记序列的间隔来实现[27],而语音时长的修改通过删除或者增加基因标记序列来实现,常用的叠加处理方法如最小均方差法。1.3.3基于统计模型的合成方法近年来随着统计学,模式识别的发展走入人们视野的统计模型的合成方法越来越为热门,其中最为常用的便是基于隐马尔科夫模型。基于模型的合成方法的原理是通过训练的方式对声学参数和标注信息进行建模,再结合之前的参数合成或是波形拼接方式,合成的语音既具有高自然度的有点,同时又能减少人工的参与,实现自动化。本文的第二章将详细介绍基于隐马尔科夫模型的语音合成方法的原理以及流程。1.4本章小结本章主要介绍了语音合成的概念和意义,目前人工智能的迅速发展使得语音交互成为最主要的人机交互手段,而语音合成也正是因此而受到重视,目前已经应用到很多领域,如智能终端、语音导航和有声读物等。还简单介绍了语音合成的发展历史以及发展现状,最后介绍了语音合成的几种主要的合成方法,其中基于统计模型的合成方法是本文主要研究的一种合成方法。

第二章基于HMM模型的语音合成2.1马尔科夫过程要了解马尔科夫过程首先要明确什么是马尔科夫性质,假设随机过程中某一时刻的状态st(2.1)即随机过程中某一时刻的状态st,只与它前一时刻的状态st−1若为一条马尔科夫链,则有:(2.2)其中,此时,若不考虑时间序列,该马尔科夫链可以描述一个具有限个状态的过程.2.2隐马尔科夫模型如果马尔科夫链中任意时刻的状态变量不可见,也就是说无法直接观测到,而每一个时刻都有一个可见的观测值ot与之对应,而且每一个ot与当前时刻的隐含状态一一对应,这时我们称该模型为隐马尔科夫模型,所以,隐马尔科夫模型中的马尔科夫链实际上指的是隐含的状态序列序列。HMM模型的关键是从可观察序列中确定该过程的隐含状态,并通过这些参数来做进一步的分析,如模式识别、语音识别[29]等。图2.1HMM模型示意图如图2.1所示为隐马尔科夫模型的示意图,HMM基本模型具有如下参数:观察序列观察序列为我们可以观测到的这个随机过程的输出符号集合,我们用O表示,O={O1状态序列状态序列是该模型输出的所有状态的合集,我们用q来表示,q={1,2,…,N},N为系统的状态总数,qt状态转移概率状态转移概率指的是从当前状态转移到另一个状态的概率[30],我们用A表示,A={aij}(2.3)输出概率矩阵输出概率矩阵指的是在状态i时输出对应的状态O时的概率的聚合,我们用B表示输出概率矩阵,,这个概率的定义如下:(2.4)其中Xt初始状态序列HMM模型一般用于对数据的估计,所以除了以上四个参数,我们还会已知一部分的可观察序列的状态,称为初始状态序列,用∏表示,={πj},这时我们用φ2.3HMM模型的三个问题评估问题,解码问题和学习问题是HMM模型的三个主要应用。2.3.1评估问题即已知一个HMM模型=(A,B,∏),和一个已知的观测序列前向算法是为了解决动态规划问题而发明出来的算法,应用前向算法时,我们首先列举出局部状态的递推关系,然后一步步进行迭代,最终得到整个问题的最优解。定义前向概率αti为观测状态为o={o1,(2.5)则时刻t+1对应的的隐藏状态i的前向概率为:(2.6)其中N为状态数总量,一次递推后得到计算的最终结果为:(2.7)2.3.2解码问题即已知HMM模型φ=(A,B,∏)和一个已知的观测序列将要求得的最佳状态序列定义为在给定观测序列O的前提下,概率P=(S|O,φ)最大的状态序列S=(2.8)它是在时刻t产生观测序列X1t[(2.9)为了得到完整的最佳状态序列,需要遍历每个状态。定义Bt(j)为t时刻状态为j的最佳序列中,前一个时刻所处的状态序号,这时能够简化利用Viterbi算法求解最佳状态序列的步骤[第一步:初始化(2.10)第二步:迭代(2.11)(2.11)第三步:终止全局的最佳状态序列概率(2.13)(2.14)第四步:路径回溯st∗=Bt+1s2.3.3学习问题即已知观测序列o={o1,o2,…,EM算法是一种基于最大似然估计的的优化算法,该算法一般分为两个步骤:E-step:根据参数计算每个样本属于某个状态的概率这个概率一般用Q表示。M-step:根据上一步计算得出的概率Q,求解出含有该参数的最大似然函数,并且更新该参数的值在应用EM算法求解HMM模型参数的问题中,我们需要在E步求出联合分布P=(Q|φ)基于条件概率P(Q|O,Φ)的期望,其中EΦ,Φ=Q在M步,我们对上述式子做极大化处理,得到更新后的模型参数:Φ=argmaxΦQP接下来就是E步和M步的重复迭代,一直到Φ收敛,便可依次求解模型参数A,B,∏。2.4基于HMM的语音合成2.4.1TTS系统结构如图2.2所示为基于HMM模型的TTS系统的结构图。一个完整的TTS系统包括训练部分和合成部分。训练部分主要包括对语料的预处理和HMM模型的训练两个步骤。其中对语料的预处理就是将语料库中的音频文件进行文本标注,进而得到训练语音的单音节文本的标注文件和上下文相关的标注文件,得到的这些标注文件可为HMM模型训练提供输入的文本信息。在HMM模型训练之前,还需对语音信号进行声学参数提取,主要包括激励参数提取和谱参数提取,然后对以上参数进行建模。在HMM的模型训练中,得到含有激励参数、谱参数以及上下文信息的HMM模型库。在TTS系统的合成部分,首先利用文本分析工具对目标文本进行预处理,即文本分析处理,这一过程主要是将输入的目标文本转换成计算机可以理解的数据文件,分析结果主要是标注音素后的文本的发音序列,其中还包含了上下文的信息,将这些标注文件根据聚类策树进行预测,预测结束后便可获得包含上下文信息的HMM模型,再根据HMM模型的参数学习算法得到声音的基频参数F0和Mel倒谱系数等声学参数,最后把这些参数输入到合成滤波器中便可得到合成的语音信号。图2.2HMM语音合成流程图2.4.3模型训练阶段基于HMM模型的语音合成方法的训练主要包括:准备语料库、提取声学参数和决策树聚类等步骤。语料库的设计目标是用尽可能少的语料句子包含尽可能多的自然语音和用法,要尽可能选取涵盖语音学特征的文本作为选取语料的基础,即要包含所有的元音、辅音,也要包含常用的动词、名词、形容词和副词等。对声学参数的提取一般包括Mel倒谱系数和基频参数F0等,这些参数就代表了语音的内容,发音规则和说话人声音的韵律特征等,参数越多对合成语音的还原度就越高。基频参数无法应用用连续或者离散的分布进行建模,因此这里我们选择多空间概率分布的HMM(MSD-HMM)建模方法。在MSD-HMM模型中,每一种状态都有至少两种概率分布,如图2.3所示。基频F0的输出状态概率如图2.4所示。图2.3基频F0的MSD-HMM建模图2.4基频F0的状态输出对Mel倒谱系数的建模同基频F0的建模方法一样,都是MSD-HMM建模。具体建模方法见图2.5。图2.5Mel的MSD-HMM的建模为了保证合成语音的流畅性,除了对以上声学参数建模之外还要对文本的上下文属性也进行建模,这样一来就会限制训练数据总量,而采用聚类分析法可以根据数据之间的相似性将数据分类,分成互不相同的类别,用这种方法构造决策树法进行聚类。如图2.6是一个自顶向下的递归构造决策树,从顶点开始,根据节点的问题进行分叉,一直到满足所有的条件为之。通过这种方法可以大大减少建模的数量。图2.6聚类决策树2.4.4语音合成阶段本文中的基于HMM的参数合成模型是模仿人体发音系统采用激励-合成的算法模型。如图2.7为人类发声系统的原理示意图。人的发声就是由气流激励声带振动激励声道中空气发声振动,并从口鼻两处向外辐射而成[34]。图2.7人体发声流程图语音按照激励形式不同大致可以分为三种:清音、浊音和摩擦音。而在激励-合成模型中激励信号一般只分清音和浊音两种,清音一般是指气流使声带振动产生周期脉冲气流,而浊音是指气流并没有使声带振动,二是在某处收缩,这时气流高速通过声带收缩部分。激励-合成模型的基本原理如图2.8所示。图2.8激励-合成算法该模型对上述人体器官进行模仿,其中,脉冲序列对应语音信号中的浊音,而白噪声对应语音信号中的清音,ℎ(n)是一个线性时不变系统,用来模拟声带等口腔器官,最终生成的语音对应的就是人体正常发出的声音。在频域上,H(2.5本章小结本章首先对HMM模型及其原理进行研究,主要研究了HMM模型的三种经典问题以及它们各自的解决算法,主要介绍了学习问题和解码问题因为它们分别对应了语音合成中的训练阶段和合成阶段。最后介绍了基于HMM的语音合成流程和具体步骤,为下一章的嵌入式实现做理论基础。第三章基于嵌入式的语音合成实现3.1ARM嵌入式平台简介3.1.1EAIDK套件概述EAIDK是OPENAILAB携手ARMChina专为人工智能开发者打造的一款嵌入式人工智能开发套件,面向边缘计算的人工智能研究,该平台不仅具备语音、视觉等传感器数据采集能力,而且适用于多场景的运动控制接口;满足AI教育、算法应用开发、产品原型开发验证等需求,并且支持视觉分析处理、语音识别、语义分析、语音合成、SLAM等应用。EAIDK610-P0主芯片采用瑞芯微的RK3399,同时搭载OPENAILAB嵌入式AI开发平台AID(包含支持异构计算库HCL、嵌入式深度学习框架Tengine以及轻量级嵌入式计算机视觉加速库BladeCV)。为AI应用提供高效、统一、简洁的API接口。3.1.2ARM开发板RK3399的概述RK3399是瑞芯微公司的一款六核ARM64位处理器,主频高达2.0GHz,配置4GBLPDDR4双通道64位ARM高性能内存。具有多种供电方式,可接入扩展板。拥有Type-CPD2.0电源控制芯片、支持宽电压(5V-15V)输入,另外还可以采用POE+(802.3AT,输出功率30W)增强型以太网充电方式,或双节电池供电,满足用户不同场景的应用选择。下图3.1和3.2分别为RK3399的正反面实物图。图3.1RK3399正面图3.2RK3399反面3.2Linux系统Linux是一种免费使用和自由传播的类Unix操作系统[35],该操作系统基于POSIX和UNIX的多用户、多任务,并且支持多线程以及多CPU。本文中使用的操作系统版本为Ubuntu18.04LTS,Ubuntu18.04LTS为Ubuntu2018年4月份发布的最新版本系统,该系统对JDK和系统安全性等做了相关改进。在Linux环境下我们一般通过命令来进行对文件的操作,软件的更新和安装以及程序的书写及编译,刚接触Linux的人可能会不习惯这种陌生的操作方式,但是熟练了之后便可以发现其中的方便之处,表3.1中列举了一些Linux环境下的常用指令。表3.1Linux常用指令Linux命令描述cd/home进入“/home”目录cd..返回上一级目录ls查看目录中的文件ls-l显示文件和目录的详细信息mkdirdir1新建名为“dir1”的文件rmfile1删除名为“file1”的文件rm-rfdir1删除名为“dir1”的文件夹tar-xzvfachieve.tar.gz解压achieve.tar.gzsudoyuminstallpackage下载并安装package安装包vifile编辑“file”make编译makeclean编译安装在Linux环境下代码的编写在vim编辑器中进行,该编辑器功能强大并且十分智能,可以通过字体颜色辨别语法的正确性[36],便于程序编写。Vim会根据文件的开头信息自动判断文件内容而执行改程序的语法判断,除此之外,编辑器内还支持如搜索、多文件编辑、模块复制等额外的功能,使我们代码的编写十分便捷。Vim的使用也非常简单,刚启动时对应的是命令模式,这时可以输入对编辑器的相关指令如保存、退出。在命令模式下按i进入输入模式[37],也可以说是编辑模式,这时可以对文件进行编辑。在输入模式下按Esc键进入命令模式,这时再按:之后便可以输入相关指令如保存、退出。表3.2所示为vim编辑器的常用指令。表3.2vim编辑器常用指令vim指令作用w保存文件q退出编辑器wq保存文件并退出编辑器q!退出编辑器但不保存u撤销上一步操作setnember显示行号3.3基于ARM嵌入式的Linux系统编译和移植图3.5嵌入式Linux开发流程图在RK3399开发板上实现Linux系统的编译和移植需要首先在PC端windows系统下安装运行虚拟机VMwareWorkstation,创建系统平台。如图3.5是嵌入式Linux开发的操作流程图。3.3.1安装交叉编译环境交叉编译指的是在PC端对源代码进行编译生成在ARM开发板上可以直接运行的可执行程序。交叉编译需要依赖交叉编译工具链,工具链可以在官网进行下载,本文使用的是64位的arm-linux-gnu-4.5.1.tar.gz。将该压缩包拷贝到Linux系统的目录/usr/local/arm下进行解压并安装。安装的主要步骤为:解压工具链压缩包:sudotar-xzvfrk3399-gcc-linux-gnu.tar.gz更改环境变量:sudonano/etc/profile在最后一行加入编译链/bin文件夹路径,保存并退出使环境变量生效:source/etc/profile[38]查看环境变量是否成功添加:echo/etc/profile若有路径中有编译链的路径则表示成功查看是否安装成功:aarch64-linux-gnu-gcc-v若出现版本信息则成功,如图3.6所示。图3.6交叉编译环境安装成功3.3.2虚拟机和ARM开发板的链接介质常见的链接方式有三种:串口方式,USB连接和网线连接[39]。不同的连接方式有各自的软件支持,本文使用的是网线连接方式,常见的网络连接服务主要有两个:tftp服务和nfs服务。本文选择的是前者,通过tftp可以直接将文件在内存中运行,可以减少Flash的烧录次数,提高了开发效率。3.3.3编译Linux内核Linux内核使系统中起控制作用的核心部分,对系统的网络和文件系统以及进程和设备驱动等反面进行控制。Linux内核的配置主要目的是精简其自身的框架结构[40][41]。Linux内核的编译配置和移植的主要步骤为:首先从官网下载Linux内核的压缩包,然后拷贝到工作目录/usr/local/arm中并解压,进入目录利用#./configure进行配置,再利用#make命令来编译Linux内核。最后把生成的uImage内核进行重新命名之后放入网络文件系统中,通网线的方式传输到ARM开发板上。3.3.4文件传输在windows系统下载安装Xshell软件可通过SSH方式对虚拟机Linux系统进行远程控制,首先要在主机和虚拟机中开启SSH服务,Linux指令为sudoapt-getinstallopenssh-server。然后通过ifconfig指令查询虚拟机的IP地址,如图n所示。然后在Xshell中新建连接并填入虚拟机IP地址便可进行连接,连接成功后可实现远程控制和互传文件等操作。Xshell中可以通过ZMODEM直接进行互传文件,只需要安装rz和sz指令,通过命令:#sudoapt-getinstalllrzsz,就可以使用。这种方式简化了挂载的过程并且也可以实现网络文件共享的功能。3.4基于Linux系统的语音合成软件设计本文的软件设计基于Flite框架实现嵌入式平台的TTS,Flite是为了解决Festival语音合成系统由于过于臃肿而无法在嵌入式平台中应用的问题而被开发出来的,因此,Flite具有短小精悍,快速实时[42]等优势,采用的程序语言为标准C。Flite源代码可以在其开源官网进行下载,本文中使用的是第四版,即flite-1.4-release,该版本完全采用C语言,便携性更好,速度更快,同时重新演绎了Festival架构的核心部分,使每个系统的声音之间具有紧密的兼容性。除此之外,还支持将FestVox语音编译为Flite语音,能够很好的实现合成功能。图3.7Flite主函数流程图Flite主函数中先对运行flite_init()函数对合成进行初始化,然后进行音素库的选择,Flite框架中包含了5种可以选择的音素库,即训练好参数模型的HMM,名字分别是awb,kal,kal16,slt,rms,其中kal为默认音素库,可以通过更改相关变量对默认音素库进行修改。在选择音素库之后便开始对语音进行合成。主函数的程序流程框图如图3.7所示。将Flite在PC端虚拟机内调试完成后,进行交叉编译,生成可以在嵌入式ARM平台执行的可执行文件,然后将代码包通过ZMODEM方式拷贝到ARM平台,执行可执行文件后得到音频文件,并可以在ARM平台上进行音频播放,从而实现了语音合成的功能。Flite主程序见附录A。3.5本章小结本章主要介绍了在嵌入式平台上实现语音合成功能的流程。首先对嵌入式平台EAIDK和PC端的Linux系统进行简单介绍,然后对交叉编译相关概念进行陈述,最后详细介绍了基于Flite框架在嵌入式平台实现语音合成功能的过程和软件结构。

第四章语音合成性能测试结果与分析实现在嵌入式平台上语音合成功能后,为了进一步分析该语音合成实验的所合成的语音效果以及参数研究,进行了对合成语音的质量评测和对比[43],本文主要对比了不同音素库的合成参数以及合成语音的质量,为更好的应用基于HMM语音合成技术以及嵌入式Flite框架提供数据支持。评测包括两部分,一种是主观评测,一种是客观评测,先对五种音素库合成的语音进行比较,继而将五种音素库合成的语音同人声作对比,然后总结出合成语音质量相对较好的语音参数。4.1语音质量的主观评测该实验首先为语音质量设置好五个等级,也就是将人声作为参照,根据语音的准确度、自然度和清晰度等进行划分五个等级[44],也即五分制。主观评测的方法为MOS评测也成为平均意见得分,是一种常用的评分标准,用该评测方法对声音的自然度进行打分。参加测评的志愿者选用了五位本专业对语音有所了解的同学以及五位其他专业的同学,评测的环境是安静的室内通过立体声音响对语音进行播放,志愿者分别为五种不同的合成声音进行打分。其中MOS的打分机制如表4.1所示。表4.1MOS评分机制得分质量等级自然度5优感觉不到失真4良感觉出失真但是听着舒服3中感觉到失真且听着不舒服2差不舒服的感觉很明显但是可以忍受1劣不舒服的感觉很强烈且无法忍受对于MOS测评的结果,我们用公式5.1来进行计算:MOS=1Mi=1其中M表示总票数,mi表示得到其中某一类具体分的票数,score我们对五种音素库合成的语音分别进行打分,十个人在试听后根据听到第一感觉按照打分制的标准进行打分,打分结果如表4.2所示,可以看出,rms音素库的平均得分最高,也就是说其合成语音更加符合人类听觉习惯,其他几种音素库的合成语音也都达到了合成语音的质量标准。表4.2MOS评分结果五种音素库质量MOS评分音素库awbkalkal16sltrms分数143354分数244445分数353344分数443354分数534434分数644445分数745544分数854444分数943344分数1054435平均分44.34.2语音质量的客观评测语音质量的客观测试是指将用嵌入式系统合成的语音和人类发出的语音进行参数对比,本文采用国际电信联盟建议书提供的语音质量客观评测方法PESQ。PESQ的测试得分规定在0.5-4.5之间,分数越低,质量越差,在失真严重的情况下也有可能会产生0.5分以下的分数[45]。PSEQ评分工具可以在ITUPESQ官方网站/rec/T-REC-P.862/en进行下载,然后再windows下的powershell找到文件路径运行。如图4.1为PESQ打开成功示意图。图4.1PESQ打开成功PESQ的使用指令为:./PESQ.exe[options]refdeg其中[options]为采样率的选择,一般为+8000Hz或者+16000Hz,ref为原始文件,deg为待评估文件,PESQ将待评估文件同原始文件进行比较,比较过程通过三个不同阶段使用很多的频谱值计算很多大数量的不同的对称和非对称的参数,最终给出客观评测分数。我们在该实验中对五种音素库合成的语音分别同人声语音进行评测,评测的文本为一段BBC新闻稿,原文如下:TheBBChaslearnedthattheBritishPrimeMinisterGordonBrownhasdecidedBBC,thattheBritishgeneralelectionwilltakeplaceonMay6th.MrBrownwillgotoBuckinghamPalacetomorrowTuesday,toaskQueenElizabethtodissolveparliament,andthenmakeaformalannouncementoftheelectiondate.Thatwillstarttheofficialelectioncampaign,which,aBBCcorrespondentsays,BBC,willbedominatedbyissuesoftaxation,andspendinginthewakeoftheglobalrecession.[46]评测的得分结果如下表4.3所示,可以看出其中合成质量最高的是awb音素库,该音素库的合成语音通原声的得分比达到98.1%,表明其合成语音准确且流畅,而其他几种音素库的合成语音也都远远超过及格标准并且同主观评测的结果相接近,都通过了PESQ评测。表4.3PESQ得分结果音素库Pesq得分rmssltawbkalkal16原声3.1553.2083.2112.2182.218合成语音3.0533.1323.1521.8261.826得分比0.967670.97630390.9816260.8232640.8232634.3评测结果总结为了对嵌入式平台合成的语音进行质量评估,采用主观评测和客观评测两种方式对五种音素库合成的语音进行了质量检验,根据两种评测的结果可以得出rms和awb两种音素库合成语音质量较其他几种音素库合成语音质量高,而其他几种音素库的合成语音也达到了合格的标准,可证明在嵌入式系统上实现语音合成功能成功。第五章总结和展望5.1总结本文是基于HMM的语音合成的嵌入式ARM平台实现,主要研究了HMM模型在嵌入式ARM平台上的应用,基于统计模型的语音合成目前已经大量应用于各种终端和服务器,其中HMM模型是最为常用的一种,用该方法合成的语音准确流畅并且可以通过训练语料库合成不同人的声音,生成的语音质量可以通过PESQ客观评测。本文硬件选用基于ARMRK3399的OPENAILABEAIDK610-P0人工智能开发平台,软件选择基于Flite的开源语音合成基本框架,最终在嵌入式平台上实现语音合成功能并播放合成语音,并且可以选择不同的音素库,基本完成了任务书上规定的相关要求。毕业设计过程中主要的工作内容如下:对语音合成技术的历史和发展历程进行研究,了解了当前语音合成的主要关键技术,尤其是基于HMM模型的语音合成技术。对该合成方法的重要算法和基本问题进行了研究。对本文使用的嵌入式开发平台进行研究学习,包括EAIDK610-P0的硬件电路,Linux系统,交叉编译等相关内容,实现将Flite框架在嵌入式系统的编译和移植,最终在嵌入式ARM平台实现语音合成功能,并可以通过嵌入式平台进行语音播放。对语音评测方案的设计,对嵌入式系统合成的语音进行了主观评测和客观评测,主要采用MOS主观评测方法和PESQ客观评测方法,最终选择出最佳的音素库。5.2展望在实现了语音合成功能的嵌入式平台实现以及对五种不同音素库的质量评测之后,下一步计划是根据评测结果进一步对语音参数进行分析和调整,达到该硬件和软件最高水平,在保证了准确度和清晰度之后,对情绪韵律做研究,使合成语音不仅能够准确传达信息,并且带有丰富多样的感情色彩,能够描述更多种声音和情绪,使人机交互过程更加流畅。参考文献[1]范会敏,何鑫.中文语音合成系统的设计与实现[J].计算机系统应用,2017,26(2):73-77.[2]胡亚军.基于神经网络的统计参数语音合成方法研究[J].《中国博士学位论文全文数据库》,2018,(10).[3]李娟,张雪莫,黄丽霞等.基于Hilbert-Huang变换的语音合成基音标注搜索新算法[J].2018,41(12):41-43.[4]包森成.基于统计模型的韵律结构预测研究[D].北京:北京邮电大学,2009.[5]王克会.基于WIFI和隐马尔可夫模型的室内定位算法研究[J].计算机时代,2018,1:9-12.[6]jinzeyu.SpeechSynthesisforText-BasedEditingofAudioNarration[D].PrincetonUniversity,2018.[7]孙晓辉,凌震华,戴礼容.融合自动检错的单元挑选语音合成方法[D].合肥:中国科学技术大学语音及语音信息处理国家实验室,2016.[8]孙晓辉.结合听感度量的语音合成方法研究[D].合肥:中国科学技术大学,2006.[9]康广玉,郭世泽,孙圣和.基于共振峰过度的协同发音语音合成算法[J].天津大学学报,2010,43(9):810-814.[10]张斌,全昌勤,任福继.语音合成的方法和发展综述[J].小型微型计算机系统,2016.1(37):186-192.[11]AlexanderKain,MichaelW.Macon.SpectralVoiceConversionforText-To-SpeechSynthesis[D].Eugene:CenterforSpokenLanguageUnderstandingOregonGraduateInstituteofScienceandTechnology,1998.[12]张雄伟,陈亮,杨吉斌.现代语音处理技术及应用[M].北京:高等教育出版社,2003:186-189.[13]何鑫.基于HMM的单元挑选语音合成方法研究[D].西安:西安工业大学,2017.[14]樊博.基于神经网络的语音合成与可视语音合成研究[D].西安:西北工业大学,2016.[15]卢恒.基于统计模型与发音错误检测的语音合成方法研究[D].合肥:中国科学技术大学,2011.[16]方健淳.语音合成技术与单片微机综合系统[M].北京:北京航空航天大学出版社,1995.[17]刘晓军,王东峰,张丽飞等.一种基于奇异值分解和隐马尔可夫模型的人脸识别方法[J].计算机学报,2003,26(3):341-344.[18]林亚平,刘云中,周顺先等.基于最大熵的隐马尔可夫模型文本信息抽取[J].电子学报,2005,3(2):237-240.[19]李士进,杨静宇,陆建峰等.基于奇异值特征和隐马尔可夫模型的人脸检测[J].中国图像图形学报,2001,6(7):682-687.[20]周顺先,林亚平,王耀南等.一种基于奇异值分解和隐马尔可夫模型的人脸识别方法[J].电子学报,2007,35(11):2227-2231.[21]ThomasDrugman,AlexisMoninet,ThierryDuioit.Usingapatch-syncheronousresidualcodebookforhybridHMM/frameselectionspeechsynt

温馨提示

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

评论

0/150

提交评论