QT5:TTS语音

  • QT提供了QTextToSpeech对象用于Text To Speech(TTS)
  • 此对象尽量使用new关键字创建,从而保证语音调用时tts对象不被销毁
    #include <QtWidgets/QMainWindow>
    #include <QTextToSpeech>
    #include "Form1.h"
    
    Form1::Form1(QWidget* parent)
    : QMainWindow(parent){
    
    	ui.setupUi(this);
    	
    	// 创建TTS语音对象(尽量用new创建)
    	QTextToSpeech* tts= new QTextToSpeech(this);
    	
    	// 发出声音
    	tts->say(QString::fromLocal8Bit("你好!世界"));
    	
    	//
    	// 其他
    	//
    	
    	//获取当前所有可用的语音包列表
    	QVector<QVoice> voiceList = tts->availableVoices();
    	// 遍历所有语音包名称
    	for each (QVoice voi in voiceList){
    		QString voiceName = voi.name();
    	}
    	
    	//获取当前的语速、音量、正在使用的语音包
    	double currentRate = tts->rate();
    	double currentVolume = tts->volume();
    	QString currentVoiceName = tts->voice().name();
    	
    	//修改参数
    	tts->setRate(55);		//设置语速
    	tts->setVolume(0.5);	//设置音量( 范围 0.0 至 1.0 )
    	for each (QVoice voi in voiceList)
    	{
    		if (QString::compare(voi.name(), "Microsoft Huihui Desktop") == 0)  //寻找名为【Microsoft Huihui Desktop】的语音包
    			tts->setVoice(voi);	//设置语音包
    		break;
    	}
    	tts->say(QString::fromLocal8Bit("你好!world "));
    }
    
 

posted on 2021-12-18 15:47  &大飞  阅读(558)  评论(0)    收藏  举报

导航