前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt如何实现文本转语音?

Qt如何实现文本转语音?

作者头像
单片机点灯小能手
发布2021-10-26 15:05:49
2.9K0
发布2021-10-26 15:05:49
举报

对,Qt没有食言,9月底如期发布了6.2 LTS。嗯,昨天是9月30日,是月底没错,准时没毛病。博客地址如下

代码语言:javascript
复制
https://www.qt.io/blog/qt-6.2-lts-release

对于老王这样的普通的不能再普通的用户,只需要知道,Qt 6.2补充完善了Qt 5.15中原有的模块,可以试着过渡。随着微软新版本Windows11的推送在即,Qt的多平台支持也有了更新。

暂时不考虑版本带来的区别,重点进行今天的小制作,编写一个可以给你自动报时和朗读诗词的应用程序。


一、创建空白桌面工程

新建Widgete App

选择生成UI文件。

然后编译运行,验证下当前工程可用。


二、添加TTS语音功能类朗读文本

代码语言:javascript
复制
包含头文件
#include <QtTextToSpeech/QTextToSpeech>
qmake添加模块
QT       += core gui texttospeech
实例化
QTextToSpeech *tts = new QTextToSpeech(this);

UI界面添加文本编辑框和按钮,并修改名字

此时可以先测试下TTS是否可以正常工作,因为这个功能要依赖运行平台的TTS引擎。可以在按键的槽函数内直接输出明确的文本,然后运行测试。

代码语言:javascript
复制
void MainWindow::on_pushButton_rd_clicked()
{
    if(tts->state() == QTextToSpeech::Ready){
        tts->say("你好,我是Qt");
        //tts->say(ui->textEdit->toPlainText());
    }

}

测试通过注释掉上一行代码,使用下一行,运行程序后在文本框输入“你好,我是Qt”,点击朗读按钮,就可以欣赏一个女生为你读诗了。录音在下面也上传了哦


三、获取当前时间,语音报时

代码语言:javascript
复制
添加用到的头文件
#include <QTimer>
#include <QDateTime>

new一个定时器
QTimer *timer = new QTimer(this);

定义显示时间文本的槽函数
void MainWindow::timeup(void){

    QDateTime time = QDateTime::currentDateTime();
    QString str = time.toString("yyyy-mm-dd hh:mm:ss -- dddd");
   
    ui->label_time->setText(str);
}

绑定信号和槽并打开定时器
 connect(timer,SIGNAL(timeout()),this,SLOT(timeup()));
 timer->start(1000);

添加报时触发按钮和对应的槽函数,运行效果

这样就实现了两个功能,语音报时和朗读诗词。看到这里是不是也对Qt产生兴趣了呢。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子电路开发学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档