使用LabVIEW实现语音播报系统设计.docx
《使用LabVIEW实现语音播报系统设计.docx》由会员分享,可在线阅读,更多相关《使用LabVIEW实现语音播报系统设计.docx(33页珍藏版)》请在冰豆网上搜索。
![使用LabVIEW实现语音播报系统设计.docx](https://file1.bdocx.com/fileroot1/2023-2/4/02fe1ebc-8b7d-474b-8e24-68f281f2641e/02fe1ebc-8b7d-474b-8e24-68f281f2641e1.gif)
使用LabVIEW实现语音播报系统设计
使用LabVIEW实现语音播报系统设计
摘要
近年来,多媒体技术得到迅速发展,多媒体系统的应用更以极强的渗透力进入人类生活的各个领域。
其中文语转换技术作为信息处理领域的前沿技术,以其特有的优势在音频输出中占据重要地位。
虚拟仪器是基于计算机的自动化测试仪器系统。
它通过软件将计算机硬件资源与仪器硬件有机的融合为一体,从而把计算机强大的计算处理能力和仪器硬件的测量,控制能力结合在一起,大大缩小了仪器硬件的成本和体积,并通过软件实现对数据的显示、存储以及分析处理。
LabVIEW是NI推出的虚拟仪器开发平台软件,它能够以其直观简便的编程方式、众多的的设备驱动程序、多种多样的分析和表达功能支持,为用户快捷地构筑自己在实际生产中所需要的仪器系统创造了基础条件。
本设计以NI公司的LabVIEW软件为开发平台,通过安装Microsoft中英文语音引擎SDK包,设计播报系统界面和调节按钮,然后配置声音属性,选择声音样式、语速、音量大小等,最后通过调用语音引擎完成文本到语音的朗读。
关键词:
LabVIEW,文本朗读,SAPI
TheDesignofVoiceBroadcastSystemsUsingLabVIEW
Abstract
Inrecentyears,withtherapiddevelopmentofmultimediatechnology,multimediasystemapplicationsbutalsotostrongpenetrationintoallareasofhumanlife,includingTTStechnologyasthefrontierofinformationprocessingtechnology,itsuniqueadvantagesintheaudiooutputtooccupyanimportantposition.
Virtualinstrumentsarecomputer-basedautomatedtestequipmentsystem.Itorganicthehardwareresourcesandequipmentfortheintegratedbyhardware,totogetherthepowerfulcomputerprocessingandthehardwarecontrolofthemeasuringinstruments,greatlyreducingcostandsizeofhardwaredevicesandachievedisplay,storageandanalysisandprocessingfordata.NILabVIEWistheintroductionofvirtualinstrumentsoftwaredevelopmentplatform,itcanwithitsintuitiveandeasyprogramming,alargenumberofthedevicedriver,awidevarietyofanalysisandfeaturesexpressionofsupportforuserstoquicklyandeasilybuildtheinstrumentsystemtheirownneedsinproductiontocreatebasicconditions.
ThedesignuseNI'sLabVIEWsoftwareasdevelopmentplatform,byinstallingtheMicrosoftSpeechEngineSDKpackageinEnglishandChinese,designtheregulationbuttonsandinterfaceofbroadcastsystem,andthenconfigurethesoundproperties,selectthesoundstyle,speed,volume,size,andfinallybycallingtheVoicecompletetexttospeechenginetoread.
Keywords:
LabVIEW,texttospeech,SAPI
1引言
1.1课题背景和意义
目前,微电子领域和计算机技术的飞速发展,测试技术与计算机深层次的结合正引起测试仪器领域里一场新的革命,一种全新的仪器结构概念导致了新一代仪器——虚拟仪器的出现,它是现代计算机技术、通信技术和测量技术相结合的产物,是传统仪器概念的一次巨大变革,是仪器产业发展的一个重要方向。
自从NationalInstruments公司率先提出虚拟仪器概念至今已有15年。
在这15年里,NI逐步改革了全世界工程师和科学家们测量和自动化的方法。
今天,全世界的工程师和科学家们正在成千上万个应用系统中使用“虚拟仪器”,从而达到了缩短开发时间、提高产品品质并降低生产成本的共同目的。
同时,虚拟仪器技术也正在趋于成熟和完善。
未来的这种连通水平将会更高,届时将赋予模块化新的定义。
随着互联网和无线技术的不断发展,工程师们不仅能够重新使用模块化的组成部分,还可以更方便地在全球范围内共享知识和经验——巩固开发过程每个阶段工程师们的努力成果。
商业科技的发展浪潮将会继续,同时也会将虚拟仪器技术推向新的水平。
因此,性能的提高将会更容易实现,从而节省宝贵的开发及系统集成时间,同时又比传统仪器测量方案成倍降低成本。
没有人能够准确地预测未来的虚拟仪器将会发展到怎样的程度,但是有一点可以肯定——PC机与其相关的科技将会是虚拟仪器技术的核心,而有了它的帮助将会更成功。
“未来的十年是语音技术的时代”,语音技术分为语音合成技术和语音识别技术。
作为智能计算机研究的主导方向和人机智能交互的关键技术——“语音合成技术”更为实用。
语音合成技术学名称为文语转换系统,目前国外几种主要的语音合成水平均已进入实用阶段,其应用领域十分广泛,技术也日趋成熟,中文语音合成近几年来也有突飞猛进的发展,实验系统正在运行,其广阔的应用前景使之一直成为研究的热点。
国内外有许多高科技公司和科研机构致力于TTS技术的开发和研究,如微软公司、IBM公司、Nuance以及国内的科大迅飞公司。
经过多年研究和发展,他们都有较成熟的语音产品或者语音软件开发包。
Nuance公司成功开发了美国航空公司的航班信息系统、股票投资和报价语音查询的VoiceBroker系统等;科大迅飞公司的ViviVoice,InterPhonic语音合成系统很有中国特色,在中文语音合成方面不仅可以进行普通话的语音合成,还可以进行四川话等方言语音合成;IBM公司的ViaVoiceTTS也非常著名,它还有在Linix上使用的版本。
目前只有微软公司提供的语音软件开发包MicrosoftSpeechSDK5.1可以从微软的网站上免费下载和使用,其他产品都需要购买SDK开发包才能进行语音程序开发。
1.2本课题研究内容与主要工作
程序语言的学习与应用一直是热议的话题。
BASIC语言的简便易学,C语言的简洁高效,C++语言的功能强大,Pascal语言的结构严谨,且大都是使用文本语言来编写程序的。
而LabVIEW这种图形程序设计软件,它使用图形化程序设计语言G在方框图里编制程序,通过图形用户界面这种独特的方式即可建立一个直观的用户界面,组成虚似仪器或组建一个数据采集系统。
能够为用户提供简明、直观、易用的图形化编程方式,能够将繁琐复杂的语言编程简化成为以菜单提示方式的选择功能,并且用线条将各种功能连接起来,十分省时简单。
语音合成技术,涉及声学、语言学、数字信号处理技术、多媒体技术等多个学科技术,是中文信息处理领域的一项前沿技术。
语音合成就是一个将文本转化为语音输出的过程,这个过程的工作主要是将输入的文本按字或词分解为音素,并且对文本中的数字、货币单位、单词变形以及标点等要特殊处理的符号进行分析,以及将音素生成数字音频然后用扬声器播放出来或者存为声音文件以后用多媒体软件播放。
与一些用预先录制的声音文件实现发声的应用程序相比,语音合成的发声引擎只有几兆大小,不需要大量的声音文件支持,因此可以节省很大的储存空间,并且可以朗读预先未知的任何语句。
现在已经有许多应用软件应用TTS技术实现语音功能,例如一些播音软件可以用来读小说或作校对工作,还可以朗读电子邮件,一些电子词典可以读出单词,还可以用于查询中心自动播放服务信息等。
本设计利用LabVIEW软件开发平台,设计文语转换系统界面,调用安装的语音引擎,将文本内容转换成语音朗读。
要经过以下几部分的设计来完成:
(a)PC上可用Voice和AudioOutput收集子VI设计
(b)Voice和AudioOutput选择子VI设计
(c)Rate和Volume设置子VI设计
(d)Speak子VI设计
(e)SpeakStatus匹配子VI设计
(f)Close引用对象子VI设计
(g)TexttoSpeechVI设计
从系统需要和研究内容可以看出,本设计需要做的主要工作有:
查阅LabVIEW软件相关资料,了解其编程方法。
查阅SAPI资料,掌握语音合成工作原理和实现方法。
利用电脑仿真,对设计的系统进行模拟检测。
1.3本课题的研究预期成果
使用NI的LabVIEW软件,利用调用API技术实现文本发声,能够完成男声、女声的发声,能够识别英文和中文的区别等功能。
2总体系统概述
2.1系统思路
实现语音播报系统必须先设计一个用户界面,在LabVIEW前面板放置输入和显示控件,布局好之后,设置程序控制。
打开自动化引用,选择ISpVoice类,然后配置其属性节点和方法节点。
系统要运行,先扫描PC机上能够使用的声音对象和音频输出设备,然后将获取的数据送到音频输出设备选择和声音选择控件中,接着将用户调节设置在一个可控的范围之内。
对用户调节的音频输出设备选择、声音选择、音量语速选择做一个强制性的校正,以使其在可控范围内运行。
再调用语音引擎将文本内容朗读,设置其具体属性,使文本内容能被正确识别并保持合适音调发音。
朗读中需要一个状态标志来显示工作状态,这里将标志送入指示灯显示即可。
最后完成朗读之后关闭引用对象。
2.2功能与界面设计
在PC机上安装语音引擎包MicrosoftSDK后LabVIEW软件就能够调用PC中的语音引擎。
SpVoice类是支持语音合成的核心类。
通过SpVoice对象调用TTS引擎,从而实现朗读功能。
SpVoice类主要属性Voice:
表示发音类型,相当于进行朗读的人,包括MicrosoftMary,MicrosoftMike,MicrosoftSam和MicrosoftSimplifiedChinese四种。
其中前三种只能读英文,最后一种可以读中文,也可以读英文,但对于英文单词只能将其包括的各个字母逐一朗读出来。
另外只有MicrosoftMary是女声,其他三种均为男声。
用户通过在输入控件中选择可实现识别中英文,男女声的区别。
前面板放置有供用户输入朗读文字的文本框,供选择声音和语音输出设备的下拉列表控件,供调整声音音量和语速的滑动杆控件,以及提供朗读状态的显示灯控件。
调整布局,达到方便易用、简单明了的效果。
系统工作时,用户输入文字,调整好适当语速与音量,选择不同声音即可完成对文本的朗读。
2.3运行设计
在完成基本朗读功能后,系统对一些输入错误能有一定的校正能力。
在文本送入朗读前,加入一个预判断,输入不为空时,才会继续执行。
用户选择声音与输出设备时,也会将选择范围强制固定在已扫描获取的元素之中。
同样的在用户设置语速和音量时也会将输入强制转换在合理范围之中。
Rate:
语音朗读速度,取值范围为-10到+10。
数值越大,速度越快。
Volume:
音量,取值范围为0到100。
数值越大,音量越大。
在运行中,利用条件结构或是循环条件对错误输入和运行状态进行判别,一旦有异常则输出错误或者终止循环,以保证系统稳定。
3引擎与平台
3.1MicrosoftSpeechSDK
LabVIEW要调用语音引擎,得先安装微软公司提供的软件开发包MicrosoftSpeechSDK。
SDK,SoftwareDevelopmentKit的缩写,中文即“软件开发工具包”。
广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
MicrosoftSpeechSDK开发包是一个语音识别和合成的二次开发平台,它采用了COM标准开发,底层协议都以COM组件的形式独立于应用程序层。
因此,在实现特定语音应用系统时,只需考虑系统的功能实现和界面控制,不必考虑复杂的语音技术的实现算法,极大地降低了开发语音应用系统需要的代码量,从而为二次开发提供方便快捷的途径,并提供了系统的可扩展性和可维护性。
其中含有语音应用程序编程接口SAPI(SpeechAPI)、语音识别引擎(SR)和语音合成引擎(SS)。
3.1.1语音应用程序编程接口SAPI
API(ApplicationProgrammingInterface)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。
SpeechAPI结构在应用软件与语音引擎之间,隔离了应用软件与语音引擎之间的联系,使得语音引擎的更换不会影响到原有应用程序的运行。
SpeechAPI只提供了一系列接口,它本身并不能做任何事情,以此API编写的程序还需要语音引擎的支持才能运行。
SAPI提供了实现文字-语音转换(Text-To-Speech)和语音识别(SpeechRecognition)的方法,其功能结构如图3-1所示。
语音引擎通过DDI层(设备驱动接口)和SAPI进行交互,应用程序通过API层和SAPI通信。
通过使用这些API,用户可以快速开发在语音识别或语音合成方面应用程序。
图3-1SAPI功能结构图
SAPI包括以下组件对象(接口):
(1)VoiceCommandsAPI。
对应用程序进行控制,一般用于语音识别系统中。
识别某个命令后,会调用相关接口使应用程序完成对应的功能。
如果程序想实现语音控制,必须使用此组对象。
(2)VoiceDictationAPI。
听写输入,即语音识别接口。
(3)VoiceTextAPI。
完成从文字到语音的转换,即语音合成。
(4)VoiceTelephoneAPI。
语音识别和语音合成综合运用到电话系统之上,利用此接口可以建立一个电话应答系统,甚至可以通过电话控制计算机。
(5)AudioObjectsAPI。
封装了计算机发音系统。
3.1.2语音识别SpeechRecognition
与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。
语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高级技术。
语音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。
语音识别方法主要是模式匹配法。
在训练阶段,用户将词汇表中的每一词依次说一遍,并且将其特征矢量作为模板存入模板库。
在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。
语音识别是一门交叉学科。
近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。
人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。
语音识别听写机在一些领域的应用被美国新闻界评为1997年计算机发展十件大事之一。
很多专家都认为语音识别技术是2000年至2010年间信息技术领域十大重要的科技发展技术之一。
语音识别技术所涉及的领域包括:
信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。
3.1.3语音合成SpeechSynthesis
语音合成,又称文语转换(TexttoSpeech),能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。
它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是中文信息处理领域的一项前沿技术。
解决的主要问题是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。
我们所说的“让机器像人一样开口说话”与传统的声音回放设备(系统)有着本质的区别。
传统的声音回放设备(系统),如磁带录音机,是通过预先录制声音然后回放来实现“让机器说话”的。
这种方式无论是在内容、存储、传输或者方便性、及时性等方面都存在很大的限制。
而通过计算机语音合成则可以在任何时候将任意文本转换成具有高自然度的语音,从而真正实现让机器“像人一样开口说话”。
语音合成技术能把文本文件通过一定的软硬件转换后由计算机或其他语音系统输出语音,并尽量使合成的语音有较高的可理解度和自然度。
这个过程的主要工作是将输入的文本按字或词分解为音素,并且对文本中的数字、货币单位、单词变形以及标点等要处理的符号进行分析,以及将音素生成数字音频,然后用扬声器播放出来或者存为声音文件以后用多媒体软件播放。
语音合成技术的实现依赖于各种规则,包括语义学规则、词汇规则、语音学规则。
它首先接受键盘或者文件按照一定格式所输入的文本信息,然后按照所给定的语言学规则决定各字的发音基元序列以及基元组合时的韵律特性,从而决定了为合成整个文本所需要的言语码。
在用这些代码控制机器在语音库中取出相应的语音参数,进行合成运算,得到语音输出。
为了合成出高质量的语言,除了依赖于各种规则外,还必须对文字的内容有很好的理解,这也涉及到自然语言理解的问题。
文语转换过程是先将文字序列转换成音韵序列,再由系统根据音韵序列生成语音波形。
其中第一步涉及语言学处理,例如分词、字音转换等,以及一整套有效的韵律控制规则;第二步需要先进的语音合成技术,能按要求实时合成出高质量的语音流。
因此一般说来,文语转换系统都需要一套复杂的文字序列到音素序列的转换程序,也就是说,文语转换系统不仅要应用数字信号处理技术,而且必须有大量的语言学知识的支持。
TTS文语转换处理的内部过程比较复杂,其一般处理过程如图3-2所示
图3-2TTS文语转换内部处理过程
(1)语言学处理
语言学处理在文语转换系统中起着重要的作用。
主要功能是模拟人对自然语言的理解过程进行文本规整、词的切分、语法分析和语义分析,使计算机对输入的文本能完全理解,并给出韵律处理和声学处理所需要的各种发音提示。
(2)韵律处理
韵律处理的主要功能是为合成语音规划出音段特征,如音高、音长和音强等。
使得合成语音能正确表达语意,听起来更加自然。
(3)声学处理
根据前两部分处理结果的要求输出语音,即合成语音。
从一般处理过程可以看到TTS是基于语音合成技术实现的文语转换,它不只是文字到语音的简单映射,还包括了对文字的理解,以及对语音的韵律处理。
声音在计算机中以数字的形式存储,通过声音数字化的编码之后,声音就可以以文件的形式存储在计算机中。
声音数字化包括采样和量化。
语音波形有自己的特性,了解这些特性对声音数据的压缩编码、声音的识别、文本语音的转换都有很重要的意义。
当肺部中的空气沿着声道通过声门发出时,就产生了话音,压缩空气根据声门激励声道滤波器。
根据激励方式不同,发出的话音分成三种类型:
①浊音(voicedsounds)
浊音是一种准周期脉冲激励所发出的声音,这种准周期脉冲是在声门打开然后关闭时中断肺部到声道的气流所产生的脉冲,浊音表现在音节上有高度的周期性。
②清音(unvoicedsounds)
清音是由不稳定的气流激励所产生的,这种气流是在声门处在打开状态下强制空气在声道里高速收缩产生的。
③爆破音(plosivesounds)
爆破音是在声道关闭之后产生的压缩空气然后突然打开声道所发出的声音。
虽然各种各样的话音都有可能产生,但是声道的形状和激励方式的变化相对较慢,因此话音在短时间周期里可以被认为是准定态的,也就是基本不变的,这是由于声门的准周期性的震动和声道的谐振所引起的。
话音编码器就是企图揭示这种周期性,目的是为了减少数据率而又尽可能不牺牲声音的质量。
通常把已有的话音编码器分成以下三种类型:
波形编译码器,音源编译码器,混合编译码器。
一般来说,波形编译码器的话音质量高,但数据率也很高;音源编译码器的数据率很低,产生的合成话音的音质有待提高;混合编译码器使用音源编译码技术和波形编译码技术,数据率和音质介于它们之间。
3.2LabVIEW平台
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)"实验室虚拟仪器工程平台"是一种用图标代替文本行创建应用程序的编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。
LabVIEW是一种真正意义上的图形化编程语言。
与文本编程语言,如C、Basic等相比,它在编程过程中有更详细的提示信息,如函数的功能、参数类型等等,程序员再不需要去记忆这些枯燥的信息了。
编写风格良好的图形程序代码要比文本代码更加清晰直观,便于阅读。
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
前面板创建完毕后,便可使用图形化的函数添加源代码来控制前面板上的对象。
在程序框图上添加图形化代码,即G代码或程序框图代码,因此又被称作程序框图代码。
3.2.1虚拟仪器程序VI
使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI(VirtualInstrument)。
VI包括三个部分:
程序前面板、程序框图和图标/连接器。
程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。
在程序前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。
控制和显示是以各种图标形式出现在前面板上,如旋钮、开关、按钮、图表、图形等,这使这得前面板直观易懂。
(1)程序前面板
前面板由输入控件和显示控件组成。
这些控件是VI的输入输出端口。
输入控件是指旋钮、按钮、转盘等输入装置。
显示控件是指图表、指示灯等显示装置。
输入控件模拟仪器的输入装置,为VI的程序框图提供数据。
显示控件模拟仪器的输出装置,用以显示程序框图获取或生成的数据。
图3-3VI前面板
(2)程序框图
前面板创建完毕后,便可使用图形化的函数添加源代码来控制前面板上的对象。
程序框图是图形化源代码的集合,图形化源代码又称G代码或程序框图代码。
前面板上的对象在程序框图中显示为接线端。
图3-4VI程序框图
a)接线端:
接线端用以表示输入控件或显示控件的数据类型。
在程序框图中可将前面板的输入控件或显示控件显示为图标或数据类型接线端。
默认状态下,前面板对象显示为图标接线端。
接线端是在前面板和程序框图之间交换信息的输入输出端口。
在前面板输入控件中输入的数据通过输入控件接线端进入程序框图。
b)节点:
节点是程序框图上的对象,具有输入输出端,在VI运行时进行运算。
节点相当于文本编程语言中的语句、运算符、函数和子程序。
c)连线:
程序框图中对象的数据传输通过连线实现。
每根连线都只有一个数据源,但可以与多个读取该