跳转到主内容
极星编程网:以代码为星,赴技术山海!

QT5实现TTS文本语音朗读功能

TTS 语音朗读 是开发中常用的功能,Qt已经给封装完成,我们只需要调用;

效果图:

新建 Application 工程.pro文件添加QT       += core gui texttospeech mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECT public:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_Speed_clicked();private:Ui::MainWindow *ui;private:QTextToSpeech m_Speech;};#endif // MAINWINDOW_Hmainwindow.cpp#include "mainwindow.h"#include "ui_mainwindow.h"

#pragma execution_character_set("utf-8") MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);

QIcon disconnect = QIcon(":/save.png");ui->pushButton_Speed->setText(QStringLiteral("Speech"));ui->pushButton_Speed->setIconSize(QSize(32, 32));ui->pushButton_Speed->setLayoutDirection(Qt::RightToLeft);ui->pushButton_Speed->setIcon(disconnect);

}

MainWindow::~MainWindow(){delete ui;}

void MainWindow::on_pushButton_Speed_clicked(){m_Speech.say(ui->textEdit->toPlainText());}知识补充QTextToSpeech(TTS)是QT5.8以上的文本转语音模块。

使用方法:

在.pro工程文件中添加“QT += texttospeech”。

添加头文件 #include

源文件:

QTextToSpeech *tts =new QTextToSpeech(this);if(tts->state()==QTextToSpeech::Ready){tts->say("hello world");}在linux下,它是调用speech-dispatcher。在其它不同的平台上,调用各自平台的TTS引擎。所以在使用的时候,要确保本地的TTS引擎是可用的。

本地TTS引擎不可用可能会在声明QTextToSpeech变量的时候导致程序崩溃。

Win7下如果TTS引擎不可用,可能是使用的系统不是完整版的,可以使用软件进行修复。

上述代码不一定能正确的朗读出内容,根据语言的不同,有可能还需要设置QTextToSpeech的语言、朗读人声等。有关的方法有setLocale和setVoice,还可以设置朗读速率、音调等。

测试中发现不能正确朗读的情况:设置了Voice为Chinese的时候,中文能正确朗读,英文只能朗读出字符而不能朗读出单词;设置了Voice为非Chinese的时候,英文可以正确朗读,中文全部跳过。

这里主要提了一些可能出现的问题。因为该类没有太多的成员和函数,调用不会很复杂,具体学习可以参考QT自带的例子。

到此这篇关于QT5实现TTS文本语音朗读功能的文章就介绍到这了,更多相关QT文本朗读内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Android实现自动朗读功能(TTS) C# windows语音识别与朗读实例使用python编写一个语音朗读闹钟功能的示例代码详解在网页上通过JS实现文本的语音朗读Android开发之自动朗读TTS用法分析

相关文章