使用LabVIEW实现语音播报系统设计_第1页
使用LabVIEW实现语音播报系统设计_第2页
使用LabVIEW实现语音播报系统设计_第3页
使用LabVIEW实现语音播报系统设计_第4页
使用LabVIEW实现语音播报系统设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、使用LabVIEW实现语音播报系统设计摘 要近年来,多媒体技术得到迅速开展, HYPERLINK :/baike.baidu /view/37904.htm t _blank 多媒体系统的应用更以极强的渗透力进入人类生活的各个领域。其中文语转换技术作为信息处理领域的前沿技术,以其特有的优势在音频输出中占据重要地位。虚拟仪器是基于计算机的自动化测试仪器系统。它通过软件将计算机硬件资源与仪器硬件有机的融合为一体,从而把计算机强大的计算处理能力和仪器硬件的测量,控制能力结合在一起,大大缩小了仪器硬件的本钱和体积,并通过软件实现对数据的显示、存储以及分析处理。LabVIEW是NI推出的虚拟仪器开发平台

2、软件,它能够以其直观简便的编程方式、众多的的设备驱动程序、多种多样的分析和表达功能支持,为用户快捷地构筑自己在实际生产中所需要的仪器系统创造了根底条件。本设计以NI公司的LabVIEW软件为开发平台,通过安装Microsoft中英文语音引擎SDK包,设计播报系统界面和调节按钮,然后配置声音属性,选择声音样式、语速、音量大小等,最后通过调用语音引擎完成文本到语音的朗读。关键词:LabVIEW,文本朗读,SAPIThe Design of Voice Broadcast Systems Using LabVIEW Abstract In recent years, with the rapid d

3、evelopment of multimedia technology, multimedia system applications but also to strong penetration into all areas of human life, including TTS technology as the frontier of information processing technology, its unique advantages in the audio output to occupy an important position. Virtual instrumen

4、ts are computer-based automated test equipment system. It organic the hardware resources and equipment for the integrated by hardware, to together the powerful computer processing and the hardware control of the measuring instruments, greatly reducing cost and size of hardware devices and achieve di

5、splay, storage and analysis and processing for data. NI LabVIEW is the introduction of virtual instrument software development platform, it can with its intuitive and easy programming, a large number of the device driver, a wide variety of analysis and features expression of support for users to qui

6、ckly and easily build the instrument system their own needs in production to create basic conditions.The design use NIs LabVIEW software as development platform, by installing the Microsoft Speech Engine SDK package in English and Chinese, design the regulation buttons and interface of broadcast sys

7、tem, and then configure the sound properties, select the sound style, speed, volume, size, and finally by calling the Voice complete text to speech engine to read.Key words: LabVIEW, text to speech, SAPI目 录 TOC o 1-3 h z u HYPERLINK l _Toc296002866 摘要 PAGEREF _Toc296002866 h I HYPERLINK l _Toc296002

8、867 Abstract PAGEREF _Toc296002867 h II HYPERLINK l _Toc296002868 1 引言 PAGEREF _Toc296002868 h 1 HYPERLINK l _Toc296002869 1.1 课题背景和意义 PAGEREF _Toc296002869 h 1 HYPERLINK l _Toc296002870 1.2 本课题研究内容与主要工作 PAGEREF _Toc296002870 h 1 HYPERLINK l _Toc296002871 1.3 本课题的研究预期成果 PAGEREF _Toc296002871 h 2 HYP

9、ERLINK l _Toc296002872 2 总体系统概述 PAGEREF _Toc296002872 h 3 HYPERLINK l _Toc296002873 2.1 系统思路 PAGEREF _Toc296002873 h 3 HYPERLINK l _Toc296002874 2.2 功能与界面设计 PAGEREF _Toc296002874 h 3 HYPERLINK l _Toc296002875 2.3 运行设计 PAGEREF _Toc296002875 h 3 HYPERLINK l _Toc296002876 3 引擎与平台 PAGEREF _Toc296002876

10、h 4 HYPERLINK l _Toc296002877 3.1 Microsoft Speech SDK PAGEREF _Toc296002877 h 4 HYPERLINK l _Toc296002878 3.1.1 语音应用程序编程接口SAPI PAGEREF _Toc296002878 h 4 HYPERLINK l _Toc296002879 3.1.2 语音识别 Speech Recognition PAGEREF _Toc296002879 h 5 HYPERLINK l _Toc296002880 3.1.3 语音合成 Speech Synthesis PAGEREF _T

11、oc296002880 h 5 HYPERLINK l _Toc296002881 3.2 LabVIEW平台 PAGEREF _Toc296002881 h 7 HYPERLINK l _Toc296002882 3.2.1 虚拟仪器程序VI PAGEREF _Toc296002882 h 7 HYPERLINK l _Toc296002883 3.2.2 属性节点与调用节点 PAGEREF _Toc296002883 h 9 HYPERLINK l _Toc296002884 3.2.3 子VI调用 PAGEREF _Toc296002884 h 10 HYPERLINK l _Toc29

12、6002885 4 程序设计 PAGEREF _Toc296002885 h 12 HYPERLINK l _Toc296002886 4.1 自定义控件 PAGEREF _Toc296002886 h 12 HYPERLINK l _Toc296002887 4.2 子VI设计 PAGEREF _Toc296002887 h 13 HYPERLINK l _Toc296002888 4.2.1 PC上可用Voice和Audio Output收集子VI设计 PAGEREF _Toc296002888 h 13 HYPERLINK l _Toc296002889 4.2.2 Voice和Audi

13、o Output选择子VI设计 PAGEREF _Toc296002889 h 17 HYPERLINK l _Toc296002890 4.2.3 Rate和Volume设置子VI设计 PAGEREF _Toc296002890 h 18 HYPERLINK l _Toc296002891 4.2.4 Speak子VI设计 PAGEREF _Toc296002891 h 19 HYPERLINK l _Toc296002892 4.2.5 Speak Status匹配子VI设计 PAGEREF _Toc296002892 h 21 HYPERLINK l _Toc296002893 4.2.

14、6 Close引用对象子VI设计 PAGEREF _Toc296002893 h 21 HYPERLINK l _Toc296002894 4.3 Text To Speech主程序 PAGEREF _Toc296002894 h 23 HYPERLINK l _Toc296002895 5总结 PAGEREF _Toc296002895 h 26 HYPERLINK l _Toc296002896 致 谢 PAGEREF _Toc296002896 h 27 HYPERLINK l _Toc296002897 参考文献 PAGEREF _Toc296002897 h 281 引言1.1 课题

15、背景和意义目前,微电子领域和计算机技术的飞速开展,测试技术与计算机深层次的结合正引起测试仪器领域里一场新的革命,一种全新的仪器结构概念导致了新一代仪器虚拟仪器的出现,它是现代计算机技术、通信技术和测量技术相结合的产物,是传统仪器概念的一次巨大变革,是仪器产业开展的一个重要方向。自从 National Instruments 公司率先提出虚拟仪器概念至今已有15年。在这15年里,NI 逐步改革了全世界工程师和科学家们测量和自动化的方法。今天,全世界的工程师和科学家们正在成千上万个应用系统中使用“虚拟仪器,从而到达了缩短开发时间、提高产品品质并降低生产本钱的共同目的。同时,虚拟仪器技术也正在趋于成

16、熟和完善。未来的这种连通水平将会更高,届时将赋予模块化新的定义。随着互联网和无线技术的不断开展,工程师们不仅能够重新使用模块化的组成局部,还可以更方便地在全球范围内共享知识和经验稳固开发过程每个阶段工程师们的努力成果。商业科技的开展浪潮将会继续,同时也会将虚拟仪器技术推向新的水平。因此,性能的提高将会更容易实现,从而节省珍贵的开发及系统集成时间,同时又比传统仪器测量方案成倍降低本钱。没有人能够准确地预测未来的虚拟仪器将会开展到怎样的程度,但是有一点可以肯定PC机与其相关的科技将会是虚拟仪器技术的核心,而有了它的帮助将会更成功。“未来的十年是语音技术的时代,语音技术分为语音合成技术和语音识别技术

17、。作为智能计算机研究的主导方向和人机智能交互的关键技术“语音合成技术更为实用。语音合成技术学名称为文语转换系统,目前国外几种主要的语音合成水平均已进入实用阶段,其应用领域十分广泛,技术也日趋成熟,中文语音合成近几年来也有突飞猛进的开展,实验系统正在运行,其广阔的应用前景使之一直成为研究的热点。国内外有许多高科技公司和科研机构致力于TTS技术的开发和研究,如微软公司、IBM公司、Nuance以及国内的科大迅飞公司。经过多年研究和开展,他们都有较成熟的语音产品或者语音软件开发包。Nuance公司成功开发了美国航空公司的航班信息系统、股票投资和报价语音查询的VoiceBroker系统等;科大迅飞公司

18、的ViviVoice,InterPhonic语音合成系统很有中国特色,在中文语音合成方面不仅可以进行普通话的语音合成,还可以进行四川话等方言语音合成;IBM公司的ViaVoice TTS也非常著名,它还有在Linix上使用的版本。目前只有微软公司提供的语音软件开发包Microsoft Speech SDK可以从微软的网站上免费下载和使用,其他产品都需要购置SDK开发包才能进行语音程序开发。1.2 本课题研究内容与主要工作程序语言的学习与应用一直是热议的话题。BASIC语言的简便易学,C语言的简洁高效,C+语言的功能强大,Pascal语言的结构严谨,且大都是使用文本语言来编写程序的。而LabVI

19、EW这种图形程序设计软件,它使用图形化程序设计语言G在方框图里编制程序,通过图形用户界面这种独特的方式即可建立一个直观的用户界面,组成虚似仪器或组建一个数据采集系统。能够为用户提供简明、直观、易用的图形化编程方式,能够将繁琐复杂的语言编程简化成为以菜单提示方式的选择功能,并且用线条将各种功能连接起来,十分省时简单。语音合成技术,涉及声学、语言学、数字信号处理技术、多媒体技术等多个学科技术,是中文信息处理领域的一项前沿技术。语音合成就是一个将文本转化为语音输出的过程,这个过程的工作主要是将输入的文本按字或词分解为音素,并且对文本中的数字、货币单位、单词变形以及标点等要特殊处理的符号进行分析,以及

20、将音素生成数字音频然后用扬声器播放出来或者存为声音文件以后用多媒体软件播放。与一些用预先录制的声音文件实现发声的应用程序相比,语音合成的发声引擎只有几兆大小,不需要大量的声音文件支持,因此可以节省很大的储存空间,并且可以朗读预先未知的任何语句。现在已经有许多应用软件应用TTS技术实现语音功能,例如一些播音软件可以用来读小说或作校对工作,还可以朗读电子邮件,一些电子词典可以读出单词,还可以用于查询中心自动播放效劳信息等。本设计利用LabVIEW软件开发平台,设计文语转换系统界面,调用安装的语音引擎,将文本内容转换成语音朗读。要经过以下几局部的设计来完成:aPC上可用Voice和Audio Out

21、put收集子VI设计 bVoice和Audio Output选择子VI设计cRate和Volume设置子VI设计dSpeak子VI设计eSpeak Status匹配子VI设计fClose引用对象子VI设计gText to Speech VI设计从系统需要和研究内容可以看出,本设计需要做的主要工作有:查阅LabVIEW软件相关资料,了解其编程方法。查阅SAPI资料,掌握语音合成工作原理和实现方法。利用电脑仿真,对设计的系统进行模拟检测。1.3 本课题的研究预期成果使用NI 的LabVIEW软件,利用调用API技术实现文本发声,能够完成男声、女声的发声,能够识别英文和中文的区别等功能。2 总体系统

22、概述2.1 系统思路实现语音播报系统必须先设计一个用户界面,在LabVIEW前面板放置输入和显示控件,布局好之后,设置程序控制。翻开自动化引用,选择ISpVoice类,然后配置其属性节点和方法节点。系统要运行,先扫描PC机上能够使用的声音对象和音频输出设备,然后将获取的数据送到音频输出设备选择和声音选择控件中,接着将用户调节设置在一个可控的范围之内。对用户调节的音频输出设备选择、声音选择、音量语速选择做一个强制性的校正,以使其在可控范围内运行。再调用语音引擎将文本内容朗读,设置其具体属性,使文本内容能被正确识别并保持适宜音调发音。朗读中需要一个状态标志来显示工作状态,这里将标志送入指示灯显示即

23、可。最后完成朗读之后关闭引用对象。2.2 功能与界面设计在PC机上安装语音引擎包Microsoft SDK后LabVIEW软件就能够调用PC中的语音引擎。SpVoice类是支持语音合成的核心类。通过SpVoice对象调用TTS引擎,从而实现朗读功能。SpVoice类主要属性Voice:表示发音类型,相当于进行朗读的人,包括Microsoft Mary,Microsoft Mike,Microsoft Sam和Microsoft Simplified Chinese四种。其中前三种只能读英文,最后一种可以读中文,也可以读英文,但对于英文单词只能将其包括的各个字母逐一朗读出来。另外只有Micros

24、oft Mary是女声,其他三种均为男声。用户通过在输入控件中选择可实现识别中英文,男女声的区别。前面板放置有供用户输入朗读文字的文本框,供选择声音和语音输出设备的下拉列表控件,供调整声音音量和语速的滑动杆控件,以及提供朗读状态的显示灯控件。调整布局,到达方便易用、简单明了的效果。系统工作时,用户输入文字,调整好适当语速与音量,选择不同声音即可完成对文本的朗读。2.3 运行设计在完成根本朗读功能后,系统对一些输入错误能有一定的校正能力。在文本送入朗读前,参加一个预判断,输入不为空时,才会继续执行。用户选择声音与输出设备时,也会将选择范围强制固定在已扫描获取的元素之中。同样的在用户设置语速和音量

25、时也会将输入强制转换在合理范围之中。Rate:语音朗读速度,取值范围为-10到+10。数值越大,速度越快。Volume:音量,取值范围为0到100。数值越大,音量越大。在运行中,利用条件结构或是循环条件对错误输入和运行状态进行判别,一旦有异常那么输出错误或者终止循环,以保证系统稳定。3 引擎与平台 Microsoft Speech SDKLabVIEW要调用语音引擎,得先安装微软公司提供的软件开发包Microsoft Speech SDK。SDK,Software Development Kit 的缩写,中文即“软件开发工具包。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。Micro

26、soft Speech SDK开发包是一个语音识别和合成的二次开发平台,它采用了COM标准开发,底层协议都以COM组件的形式独立于应用程序层。因此,在实现特定语音应用系统时,只需考虑系统的功能实现和界面控制,不必考虑复杂的语音技术的实现算法,极大地降低了开发语音应用系统需要的代码量,从而为二次开发提供方便快捷的途径,并提供了系统的可扩展性和可维护性。其中含有语音应用程序编程接口SAPISpeech API、语音识别引擎(SR)和语音合成引擎(SS)。3.1.1 语音应用程序编程接口SAPIAPIApplication Programming Interface其实就是操作系统留给应用程序的一个

27、调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令动作。Speech API结构在应用软件与语音引擎之间,隔离了应用软件与语音引擎之间的联系,使得语音引擎的更换不会影响到原有应用程序的运行。Speech API只提供了一系列接口,它本身并不能做任何事情,以此API编写的程序还需要语音引擎的支持才能运行。SAPI提供了实现文字-语音转换Text-To-Speech和语音识别Speech Recognition的方法,其功能结构如图3-1所示。语音引擎通过DDI层设备驱动接口和SAPI进行交互,应用程序通过API层和SAPI通信。通过使用这些API,用户可以快速开发在语音识

28、别或语音合成方面应用程序。图3-1 SAPI功能结构图SAPI包括以下组件对象接口: 1Voice Commands API。对应用程序进行控制,一般用于语音识别系统中。识别某个命令后,会调用相关接口使应用程序完成对应的功能。如果程序想实现语音控制,必须使用此组对象。 2Voice Dictation API。听写输入,即语音识别接口。 3Voice Text API。完成从文字到语音的转换,即语音合成。 4Voice Telephone API。语音识别和语音合成综合运用到 系统之上,利用此接口可以建立一个 应答系统,甚至可以通过 控制计算机。 5Audio Objects API。封装了计

29、算机发音系统。3.1.2 语音识别 Speech Recognition 与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高级技术。语音识别技术主要包括特征提取技术、模式匹配准那么及模型训练技术三个方面。语音识别方法主要是模式匹配法。在训练阶段,用户将词汇表中的每一词依次说一遍,并且将其特征矢量作为模板存入模板库。在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比拟,将相似度最高者作为识别结果输出。语音识别是一门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场

30、。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭效劳、 HYPERLINK :/baike.baidu /view/3300539.htm t _blank 消费电子产品等各个领域。语音识别听写机在一些领域的应用被 HYPERLINK :/baike.baidu /view/2398.htm t _blank 美国新闻界评为1997年计算机开展十件大事之一。很多专家都认为语音识别技术是2000年至2021年间 HYPERLINK :/baike.baidu /view/3226.htm t _blank 信息技术领域十大重要的科技开展技术之一。语音识别技术所涉

31、及的领域包括:信号处理、 HYPERLINK :/baike.baidu /view/14685.htm t _blank 模式识别、概率论和信息论、发声机理和听觉机理、 HYPERLINK :/baike.baidu /view/2949.htm t _blank 人工智能等等。3.1.3 语音合成 Speech Synthesis语音合成,又称文语转换Text to Speech,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。它涉及声学、 HYPERLINK :/baike.baidu /view/9995.htm t _blank 语言学、数字信号处理、

32、HYPERLINK :/baike.baidu /view/92404.htm t _blank 计算机科学等多个学科技术,是 HYPERLINK :/baike.baidu /view/638201.htm t _blank 中文信息处理领域的一项前沿技术。解决的主要问题是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。我们所说的“让机器像人一样开口说话与传统的声音回放设备系统有着本质的区别。传统的声音回放设备系统,如磁带 HYPERLINK :/baike.baidu /view/29010.htm t _blank 录音机,是通过预先录制声音然后回放来实现“让机器说话的。

33、这种方式无论是在内容、存储、传输或者方便性、及时性等方面都存在很大的限制。而通过计算机语音合成那么可以在任何时候将任意文本转换成具有高自然度的语音,从而真正实现让机器“像人一样开口说话。语音合成技术能把文本文件通过一定的软硬件转换后由计算机或其他语音系统输出语音,并尽量使合成的语音有较高的可理解度和自然度。这个过程的主要工作是将输入的文本按字或词分解为音素,并且对文本中的数字、货币单位、单词变形以及标点等要处理的符号进行分析,以及将音素生成数字音频,然后用扬声器播放出来或者存为声音文件以后用多媒体软件播放。语音合成技术的实现依赖于各种规那么,包括语义学规那么、词汇规那么、语音学规那么。它首先接

34、受键盘或者文件按照一定格式所输入的文本信息,然后按照所给定的语言学规那么决定各字的发音基元序列以及基元组合时的韵律特性,从而决定了为合成整个文本所需要的言语码。在用这些代码控制机器在语音库中取出相应的语音参数,进行合成运算,得到语音输出。为了合成出高质量的语言,除了依赖于各种规那么外,还必须对文字的内容有很好的理解,这也涉及到自然语言理解的问题。文语转换过程是先将文字序列转换成音韵序列,再由系统根据音韵序列生成语音波形。其中第一步涉及语言学处理,例如分词、字音转换等,以及一整套有效的韵律控制规那么;第二步需要先进的语音合成技术,能按要求实时合成出高质量的语音流。因此一般说来,文语转换系统都需要

35、一套复杂的文字序列到音素序列的转换程序,也就是说,文语转换系统不仅要应用数字信号处理技术,而且必须有大量的语言学知识的支持。TTS文语转换处理的内部过程比拟复杂,其一般处理过程如图3-2所示图3-2 TTS文语转换内部处理过程(1)语言学处理语言学处理在文语转换系统中起着重要的作用。主要功能是模拟人对自然语言的理解过程进行文本规整、词的切分、语法分析和语义分析,使计算机对输入的文本能完全理解,并给出韵律处理和声学处理所需要的各种发音提示。(2)韵律处理韵律处理的主要功能是为合成语音规划出音段特征,如音高、音长和音强等。使得合成语音能正确表达语意,听起来更加自然。(3)声学处理根据前两局部处理结

36、果的要求输出语音,即合成语音。从一般处理过程可以看到TTS是基于语音合成技术实现的文语转换,它不只是文字到语音的简单映射,还包括了对文字的理解,以及对语音的韵律处理。声音在计算机中以数字的形式存储,通过声音数字化的编码之后,声音就可以以文件的形式存储在计算机中。声音数字化包括采样和量化。语音波形有自己的特性,了解这些特性对声音数据的压缩编码、声音的识别、文本语音的转换都有很重要的意义。当肺部中的空气沿着声道通过声门发出时,就产生了话音,压缩空气根据声门鼓励声道滤波器。根据鼓励方式不同,发出的话音分成三种类型: 浊音(voiced sounds)浊音是一种准周期脉冲鼓励所发出的声音,这种准周期脉

37、冲是在声门翻开然后关闭时中断肺部到声道的气流所产生的脉冲,浊音表现在音节上有高度的周期性。清音(unvoiced sounds)清音是由不稳定的气流鼓励所产生的,这种气流是在声门处在翻开状态下强制空气在声道里高速收缩产生的。爆破音(plosive sounds)爆破音是在声道关闭之后产生的压缩空气然后突然翻开声道所发出的声音。虽然各种各样的话音都有可能产生,但是声道的形状和鼓励方式的变化相对较慢,因此话音在短时间周期里可以被认为是准定态的,也就是根本不变的,这是由于声门的准周期性的震动和声道的谐振所引起的。话音编码器就是企图揭示这种周期性,目的是为了减少数据率而又尽可能不牺牲声音的质量。通常把

38、已有的话音编码器分成以下三种类型:波形编译码器,音源编译码器,混合编译码器。一般来说,波形编译码器的话音质量高,但数据率也很高;音源编译码器的数据率很低,产生的合成话音的音质有待提高;混合编译码器使用音源编译码技术和波形编译码技术,数据率和音质介于它们之间。3.2 LabVIEW平台LabVIEW(Laboratory Virtual Instrument Engineering Workbench) 实验室虚拟仪器工程平台是一种用图标代替文本行创立应用程序的编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW那么采用数据流编程方式,程序框图中节点之间的数据流向

39、决定了VI及函数的执行顺序。LabVIEW是一种真正意义上的图形化编程语言。与文本编程语言,如 C、Basic 等相比,它在编程过程中有更详细的提示信息,如函数的功能、参数类型等等,程序员再不需要去记忆这些枯燥的信息了。编写风格良好的图形程序代码要比文本代码更加清晰直观,便于阅读。LabVIEW提供很多外观与传统仪器如示波器、万用表类似的控件,可用来方便地创立用户界面。用户界面在LabVIEW中被称为前面板。前面板创立完毕后,便可使用图形化的函数添加源代码来控制前面板上的对象。在程序框图上添加图形化代码,即G代码或程序框图代码,因此又被称作程序框图代码。3.2.1 虚拟仪器程序VI使用LabV

40、IEW开发平台编制的程序称为虚拟仪器程序,简称为VIVirtual Instrument。VI包括三个局部:程序前面板、程序框图和图标/连接器。程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。在程序前面板上,输入量被称为控制Controls,输出量被称为显示Indicators。控制和显示是以各种图标形式出现在前面板上,如旋钮、开关、按钮、图表、图形等,这使这得前面板直观易懂。程序前面板 前面板由输入控件和显示控件组成。这些控件是VI的输入输出端口。输入控件是指旋钮、按钮、转盘等输入装置。显示控件是指图表、指示灯等显示装置。输入控件模拟仪器的输入装置,为VI的程序框图提供数据

41、。显示控件模拟仪器的输出装置,用以显示程序框图获取或生成的数据。图3-3 VI前面板程序框图 前面板创立完毕后,便可使用图形化的函数添加源代码来控制前面板上的对象。程序框图是图形化源代码的集合,图形化源代码又称G代码或程序框图代码。前面板上的对象在程序框图中显示为接线端。图3-4 VI程序框图接线端:接线端用以表示输入控件或显示控件的数据类型。在程序框图中可将前面板的输入控件或显示控件显示为图标或数据类型接线端。默认状态下,前面板对象显示为图标接线端。接线端是在前面板和程序框图之间交换信息的输入输出端口。在前面板输入控件中输入的数据通过输入控件接线端进入程序框图。节点:节点是程序框图上的对象,

42、具有输入输出端,在VI运行时进行运算。节点相当于文本编程语言中的语句、运算符、函数和子程序。连线:程序框图中对象的数据传输通过连线实现。每根连线都只有一个数据源,但可以与多个读取该数据的VI和函数连接。不同数据类型的连线有不同的颜色、粗细和样式。断开的连线显示为黑色的虚线,中间有个红色的X。出现断线的原因有很多,如试图连接数据类型不兼容的两个对象时就会产生断线。结构:结构是节点的一种,是文本编程语言中的循环和条件语句的图形化表示。使用程序框图中的结构可对代码块进行重复操作,有条件执行或按特定顺序执行代码。图标和连线板创立VI的前面板和程序框图后,要将VI做为子VI,得先为其创立图标和连线板。图

43、标和连线板相当于文本编程语言中的函数原型。每个VI都显示为一个图标,位于前面板和程序框图窗口的右上角。图标是VI的图形化表示,可包含文字、图形或图文组合。如果将一个VI当作子VI使用,程序框图上将显示代表该子VI的图标,如将VI添加至选板,VI图标也将出现在函数选板上。双击前面板或程序框图窗口的图标,可进行自定义或编辑。连线板用于显示VI中所有输入控件和显示控件接线端,类似于文本编程语言中调用函数时使用的参数列表。连线板标明了可与该VI连接的输入和输出端,以便将该VI作为子VI调用。连线板在其输入端接收数据,然后通过前面板的输入控件传输至程序框图的代码中,并从前面板的显示控件中接收运算结果传输

44、至其输出端。 3.2.2 属性节点与调用节点属性节点获取读取和/或设置写入引用的属性。通过属性节点对本地或远程应用程序实例、VI或对象获取或设置属性和方法,也可通过属性节点访问LabVIEW类的私有数据。属性节点可自动调整为用户所引用的对象的类。属性节点可翻开或返回引用某对象,使用关闭引用函数结束该引用。可使用一个节点读取或写入多个属性。但是,有的属性只能读不能写,有的属性只能写不能读。定位工具可增加新的接线端,改变属性节点的大小。属性节点右边的小方向箭头说明当前读取的属性。属性节点左边的小方向箭头说明当前可写的属性。右键单击属性,在快捷菜单中选择转换为读取或转换为写入,可进行改变属性的操作。

45、节点按从上到下的顺序执行。如属性节点执行前发生错误,那么属性节点不执行,因此有必要经常检查错误发生的可能性。如属性发生错误,LabVIEW可忽略其它属性,显示错误提示。右键单击属性节点,选择忽略节点内部错误,LabVIEW可执行节点内的其它属性。属性节点只返回第一个错误。错误输出簇包含引起错误的属性信息。右键单击属性节点,在快捷菜单中选择名称格式,可选择为属性使用长名称或短名称。无名称格式仅显示每个属性的数据类型。调用节点在引用上调用方法或动作。大多数方法有其相关参数。连线引用句柄至引用输入端,可指定执行该方法的类。例如,选择VI类、通用类或应用程序类,连线VI、VI对象或应用程序引用至引用输

46、入端,节点可自动调整为相应的类。也可右击节点,在快捷菜单中选择类。也可右键单击属性接线端,在快捷菜单中选择方法帮助,方法为属性的名称,可获取读和设置写方法参数的值。背景为白色的参数为必需输入端,背景为灰色的输入端为推荐输入端。如参数上的方向箭头位于右侧,说明正在获取参数值。如箭头位于左侧,说明正在设置参数值。右键单击调用节点,在快捷菜单中选择名称格式,可选择为方法使用长名称或短名称。无名称格式仅显示每个方法的数据类型。属性节点与调用节点区别属性是VI、对象或应用程序的特性。调用是在VI、对象或应用程序上进行的操作。属性节点用于获取及设置VI、对象或应用程序的属性。调用节点用于在VI、对象或应用

47、程序上执行操作方法。可为同一个前面板对象创立多个属性或方法。3.2.3 子VI调用LabVIEW中一个VI被其它VI在程序框图中调用,那么称该VI为子VI。子VI可重复调用。要创立一个子VI,需先为子VI创立连线板和图标。子VI的节点类似于文本编程语言中的子程序调用。一个程序中的子程序调用指令并不是子程序本身。同理,节点也不是子VI。一个程序框图含有相同子VI节点的数目与该子VI被调用的次数相等。子VI的控件和函数从调用该VI的程序框图中接收数据,并将数据返回至该程序框图。如需创立一个被调用的子VI,单击函数选板上的选择VI图标或文本,找到目标VI并双击,即可将该VI放置在程序框图上。用操作或

48、定位工具双击程序框图上的子VI,即可编辑该子VI。保存子VI时,子VI的改动将影响到所有调用该子VI的程序,而不只是当前程序。每个VI都在前面板和程序框图窗口的右上角有一个图标。图标是VI的图形化表示,可包含文字、图形或图文组合。如将VI当作子VI调用,程序框图上将显示该子VI的图标。默认图标中有一个数字,说明LabVIEW启动后翻开VI的个数。右键单击前面板或程序框图右上角的图标并从快捷菜单中选择编辑图标,或双击前面板右上角的图标可将默认图标替换为创立的自定义图标。也可从文件系统中拖动一个图形放置在前面板或程序框图的右上角。LabVIEW 会将该图形转换为 3232 像素的图标。要将一个VI

49、当作子VI使用,需创立连线板。连线板集合了VI各个接线端,与VI中的控件相互照应,类似文本编程语言中函数调用的参数列表。连线板标明了可与该VI连接的输入和输出端,以便将该 VI作为子VI调用。连线板在其输入端接收数据,然后通过前面板控件将数据传输至程序框图的代码中,从前面板的显示控件中接收运算结果并传递至其输出端。将前面板上的输入控件和显示控件分配至连线板的每个接线端,从而定义连接。如需定义连线板,右键单击前面板右上角的图标,并从快捷菜单中选择显示连线板。图标的位置上将出现连线板。第一次翻开连线板时,可看到连线板的模式。右键单击连线板,从快捷菜单中选择模式可为VI选择不同的接线端模式。连线板上

50、的每个单元格代表一个接线端,使用各个单元格分配输入和输出。4 程序设计4.1 自定义控件 本设计中多个子VI都要用到此自定义控件,它是包含引用的SAPI语音库对象的集群。在各个子VI中都要用到。在这里先介绍自定义控件的制作。翻开LabVIEW程序界面,文件菜单中翻开新建,会弹出引导对话框,如图4-1所示:图4-1 新建自定义控件引导对话框选择自定义控件,点击确定后弹出控件编辑面板。单击鼠标右键弹出控件选项板,在新式-数组、矩阵与簇中选择簇控件。添加簇元素。单击右键翻开控件选项卡,在新式-引用句柄中选择自动化引用句柄。放置在建好的簇中,效果如图4-2所示图4-2 放置成功的元素右击自动化引用句柄

51、,在Active类中点击浏览,弹出如图4-3对话框图4-3 类型库中选择对象对话框在类型库中选择,在对象中选择IspeechVoice对象。重复上述步骤,接着创立GetVoices和GetAudioOutputs元素,将Active类选为IspeechObjectToken。设置好后如图4-4所示图4-4 创立好的自定义控件保存后,子VI就可以使用这个自定义的控件。自定义这个簇控件目的有两个:一是可以保证所有的簇都完全一致,防止传递数据出错。二是一旦需要变动簇中的元素,只需在类型定义中更新就可以了,不必挨个VI修改。4.2 子VI设计 PC上可用Voice和Audio Output收集子VI设

52、计图4-5 PC上可用Voice和Audio Output收集子VI前面板图4-6 PC上可用Voice和Audio Output收集子VI程序框图在函数选项板-互连接口-ActiveX-翻开自动化,右击翻开自动化图标,在选择Active类中选择IspVoice对象。ActiveX控件:是组件或对象打包,别人编程功能。以便可以重用 Web页或其他程序中插入。IspVoice类:使用这个接口,应用程序可以添加语音合成支持例如朗读文字,修改语音特色,改变声音。右击IspeechVoice自动化引用,选择其GetVoice和GetAudioOutputs调用节点。GetVoice调用节点用来检索对象

53、令牌标识当前的声音。GetAudioOutputs调用节点用来检索对象令牌标识当前的音频输出设备。创立GetVoice对象,Count属性节点,Item调用节点,Getdescription调用节点,参加FOR循环。Count属性节点用来返回集合中对象的数量,Item调用节点作用是由其索引返回ISpeechObjectTokens聚集的成员,Getdescription调用节点用来返回对象令牌所代表的资源名称。FOR循环:使用连线至总数(N)接线端的值n作为执行次数的子程序框图。计数接线端(i)可提供当前的循环总数,取值范围是0到n-1。创立For循环后,可通过移位存放器使值由上一个循环传递到

54、下一个循环。工作原理:GetVoice对象的Count属性值送入FOR循环总数,扫描PC,找到可用Voice,循环计数送进Index中,这样循环一次,一个Index值对应一个Voice成员,如图4-7所示图4-7 Voice扫描局部框图同理,AudioOutput的获取也是如此,如图4-8所示图4-8 AudioOutput扫描局部框图将处理好的对象捆绑输出。捆绑(函数):使独立元素组合为簇。图4-9 捆绑 (函数)可使用该函数改变现有簇中独立元素的值,而无需为所有元素指定新值。如需实现上述操作,可连线该簇至该函数中间的簇接线端。连线簇至该函数时,函数可自动调整大小以显示簇中的各个元素输入。连

55、线板可显示该多态函数的默认数据类型。簇:是要改变值的簇。如该输入端没有连线,函数返回簇。连线簇接线端时,“捆绑函数使用元素0.n-1替换簇。输入接线端的数量必须匹配输入簇中元素的数量。元素0.n-1:可接收任意类型的数据。输出簇是作为结果的簇。输出簇中的元素顺序必须与输入元素一致。工作原理:捆绑使簇中IspeechVoice,Voice,AudioOutouts三元素有改变那么输出改变后的值,无改变那么原样输出。如图4-10所示图4-10 捆绑输出局部框图设置程序执行的条件结构。条件结构:包括一个或多个子程序框图、分支、结构执行时,仅有一个子程序框图或分支执行。连线至选择器接线端的值可以是布尔

56、、字符串、整数,或枚举类型,用于确定要执行的分支。右键单击结构边框,可添加或删除分支。通过标签工具可输入条件选择器标签的值,并配置每个分支处理的值。由子VI框图可以看出,无错误条件分支时,正常按结构中的程序流程执行。错误条件分支时,执行如图4-11所示图4-11 错误条件分支执行结构框图表示不执行任何程序,直接将错误输入送到错误输出,完成条件结构。后面子VI的条件结构处理也是如此。4.2.2 Voice和Audio Output选择子VI设计图4-12 Voice选择子VI前面板图4-13 Voice选择子VI程序框图对簇中元素进行解除捆绑。解除捆绑是捆绑的逆向运算,通过名称解除捆绑,将在此子

57、VI中要使用的对象元素IspeechVoice和GetVoice单独处理,其他对象没有变化。按名称解除捆绑(函数):返回指定名称的簇元素。不必在簇中记录元素的顺序。该函数不要求元素的个数和簇中元素个数匹配。连线簇至该函数后,可在函数中选择单独的元素。输入簇是要访问的元素所在的簇。元素0.m-1是输入簇中名称为0.m-1的元素。只能依据自带标签对元素进行访问。单击名称接线端,在快捷菜单中选择名称,可选择已经命名的元素。创立GetVoice对象,Count属性节点,Item调用节点。创立供用户选择的输入控件,将输入强制转换,将转换好的选择数字输出同时送入Index中,Index对应的编号条目送入V

58、oice对象,使其调取对应声音。工作原理:将用户选择的Voice编号与事先扫描的到的Voice总数做一个比拟,选择值在0-COUNT之间,正常输出。否那么进行强制转换。判定范围并强制转换(函数):依据上限和下限,确定x是否在指定的范围内,还可选择将值强制转换至范围内。图4-14 判定范围并强制转换 (函数)将设置好的对象再捆绑起来,准备送入下一个子VI中。Audio Output选择前面板与Voice选择前面板完全一致,选择程序与Voice选择程序框图也类似,原理是相同的,在此不详加描述。如图4-15所示图4-15 Audio Output选择程序框图4.2.3 Rate和Volume设置子V

59、I设计图4-16 Rate和Volume设置子VI前面板图4-17 Rate和Volume设置子VI程序框图工作原理:解除捆绑出IspeechVoice对象,对其Rate属性和Volume属性进行设置。语速调整范围是-10-10,音量调整范围是0-100,为防止用户输入出错,对这两个输入范围进行强制限定。Rate属性节点用来设置实时语速,Volume属性节点用来设置实时音量。4.2.4 Speak子VI设计图4-18 Speak子VI前面板图4-19 Speak子VI程序框图创立Speak调用节点来朗读字符串内容。对文本输入进行判断和错误状态进行判断,决定执行条件分支。Speak函数用于实现朗

60、读功能,它有两个参数,第一个参数向MSTTS引擎传递需要朗读的文字,第二个参数由指定朗读时使用的语气和优先级的两个符号合并而成。空字符串/路径?(函数):如果字符串/路径为空字符串或空路径,那么返回TRUE。否那么,函数返回FALSE。图4-20 空字符串/路径? (函数)复合运算(函数):对一个或多个数值、数组、簇或布尔输入执行算术运算。右键单击函数,在快捷菜单中选择运算加、乘、与、或、异或。图4-21 复合运算 (函数)由程序框图可以看出,要想执行条件结构假条件分支中的框图,复合运算必须输出为假。而复合运算是与运算,只要有一个为真,结果为真。对文本输入和错误输入进行判断,只有文本是空字符串

温馨提示

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

评论

0/150

提交评论