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   &大飞  阅读(496)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示