WIN7下使用Qt调用微软TTS进行文本朗读

最近研究了下调用微软TTS引擎进行朗读的相关资料,发现其实很简单,特发文与众位博友共享。

首先看看微软MSDN官方文档是如何调用TTS的

Microsoft TTS simple sample

可以发现其实很简单,就是初始化COM后,创建ISpVoice的实例调用Speak方法即可,如果想更加深入的了解这方面的知识,可以查阅MSDN,http://msdn.microsoft.com/en-us/library/ee125082(v=VS.85).aspx

 

Qt上使用COM非常简单,ActivityQt是Qt上用了和COM打交道,由于是调用COM,我们使用QAxObject即可满足要求。

首先设计一个接口

ITTS

虽然我们是再Win7上使用,由于以后可能还有开发XP上的、Linux上的TTS,所以我们定义一个接口,在我们的调用类中只需要定义一个接口的指针就可以,然后根据实际的环境在初始化中初始化不同环境上的TTS实例,这个我们以后再来演示

根据Win7上的TTS,我们来创建Win7TTS类,继承于我们上面定义的ITTS

Win7TS

_voice 就是我们用来创建ISpVoice Com对象的成员

 

 

Win7TTS

TTS的框架已经搭好了,现在让我们试试TTS的魅力吧,稍后上传一个TTS的SAMPLE,可以下载下来玩玩!

 

0BFR2ZM{]3H9]GA9ZOQ}~82

 

Win7 TTS 示例 

posted @ 2011-09-02 17:32  风雷云雪电  Views(10167)  Comments(7Edit  收藏  举报