这个功能已经被qt封装好了,在不同的操作系上封装了不同的方法。
在win7上,qt调用的是微软讲述者(microsoft speech),这个功能在原版win中是自带的,在ghost或者阉割版win中是没有的。需要自己安装。在安装之前,先验证一下你的系统是否可用这个功能:
如上图所示,打开控制面板-->文本到语音设置-->语言选择-->预听语音。如果能够正常朗读中文文字,那就说明你的电脑的TTS功能是正常的。
如果不能没有声音,或者直接报错,你就必须得重新安装TTS。需要安装:
0、.netFramework4.0及以上
1、运行库:Microsoft Speech Platform - Server Runtime (Version 10.2) For x64或者x86
2、开发包:Microsoft Speech Platform - Software Development Kit (SDK) (Version 10.2) x64或者x86
3、语言包: Microsoft Speech Platform - Server Runtime Languages (Version 10.2)
注意事项:(1)以上3个软件需要按顺序安装,(2)版本必须完全一致,例如我都是用的10.2版本。(3)语言包有很多,微软提供了各种语言包,中文普通话、粤语、英语等等,可以选择多个语音一起下载。
下图是我下载的,给大家作参考:
在qt中的使用方法:
在pro文件中添加:
QT += texttospeech
在cpp中:
#pragma execution_character_set("utf-8") //设置cpp文件编码,默认ansi编码是无法编译出中文语音的
构造函数里:
tts = new QTextToSpeech(this);
// tts->setLocale(QLocale::Chinese);//设置TTS类型,默认与系统设置一致
按键槽里:
//if(tts->state()==QTextToSpeech::Ready)
tts->say("中文和English阅读测试");
代码就这些,简单到不可思议。点击按钮就可以播放了。