
TTS就是Text To Speech,即文本转语音。在语音系统开发中经常要用到。它可以将输入的中英文文本转化成语音实时播放出来。
市场上的TTS很多,实现方式也各式各样,有的很昂贵,也有的是免费使用的。市场上目前主要有科大讯飞、捷通华声、InfoTalk、微软的TTS等产品。今天介绍的就是使用Labview调用微软的TTS实现的一个文字转语音的系统。
前面板界面如下所示,个人可根据实际需求进行改进。

主要实现的功能
支持中英文语音输出
可持续播放文本内容
支持语速和音量的调节

程序框图如下所示

关键控件--ActiveX
ActiveX控件是可以在应用程序和网络中计算机上重复使用的程序对象。创建它的主要技术是Microsoft的ActiveX技术,通过使用这些控件,我们可以很容易地使用Windows的一些系统的应用程序(如web、语音识别、excel、媒体等应用)。今天介绍的TTS就是用这几个控件实现的。

这里主要讲解4个控件,打开、关闭、调用节点、属性节点。
2.1 打开自动化:

对于这个控件,我们只需要在前面板添加一个自动化引用句柄,然后设置下这个自动化引用句柄的类为SpeechLib.ISpeechVoice。然后传给打开自动化函数。这样我们就可以使用该应用了,但是我们到这一步只是完成了第一步,打开,我们需要获取这个对象的一些属性和方法,就需要用到调用节点和和属性节点这两个函数了。
2.2 调用节点---涉及到该对象的方法

当连接好引用对象后,我们就可以得到这些对象的所有方法,可以根据自己的需求来选择要使用的方法。下图是添加了ISpeechVoice得到方法。我们这里只用到了Speak的方法,当我们选择了Speak的方法之后,会自动扩展该方法的参数Text和Flags。(Text即要转换成语音输出的文本,Flag:使用默认,自动获取就可以了)

2.3 属性节点---涉及到该对象的属性

当连接好引用对象后,我们就可以得到这些对象的所有属性,可以根据自己的需求来选择来获取或者是设置这些属性。下图是添加了ISpeechVoice得到属性。在该程序中,只使用了速率和音量两个参数设置属性。

2.4 关闭函数:
有打开,那肯定少不了关闭了。在使用完之后,我们需要将其进行关闭。这个思想在任何编程语言都是极其重要的。

直接传入打开的引用对象,即可释放该对象。

首先呢,这只是一个简单的小Demo。但是你可以将其做成一个控件,然后集成到你想让其发出声音的系统上,比如设计一个语音报警系统、天气预报啥的。如果想听电子书也可以可以用网络的方式去获取文字,然后播放就行了(只要你不嫌弃声音难听就行~~~~)
~~~~关于该项目的完整源码获取方式,可关注公众号:玩转IoT物联网 回复关键字:labview_TTS 进行获取~~~~
