QT5實現(xiàn)TTS文本語音朗讀功能
TTS 語音朗讀 是開發(fā)中常用的功能,Qt已經(jīng)給封裝完成,我們只需要調(diào)用;
效果圖:

新建 Application 工程
.pro文件添加
QT += core gui texttospeech
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTextToSpeech>
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以上的文本轉(zhuǎn)語音模塊。
使用方法:
在.pro工程文件中添加“QT += texttospeech”。
添加頭文件 #include
源文件:
QTextToSpeech *tts =
new QTextToSpeech(this);
if(tts->state()==QTextToSpeech::Ready)
{
tts->say(
"hello world");
}在linux下,它是調(diào)用speech-dispatcher。在其它不同的平臺上,調(diào)用各自平臺的TTS引擎。所以在使用的時候,要確保本地的TTS引擎是可用的。
本地TTS引擎不可用可能會在聲明QTextToSpeech變量的時候?qū)е鲁绦虮罎ⅰ?/p>
Win7下如果TTS引擎不可用,可能是使用的系統(tǒng)不是完整版的,可以使用軟件進行修復(fù)。
上述代碼不一定能正確的朗讀出內(nèi)容,根據(jù)語言的不同,有可能還需要設(shè)置QTextToSpeech的語言、朗讀人聲等。有關(guān)的方法有setLocale和setVoice,還可以設(shè)置朗讀速率、音調(diào)等。
測試中發(fā)現(xiàn)不能正確朗讀的情況:設(shè)置了Voice為Chinese的時候,中文能正確朗讀,英文只能朗讀出字符而不能朗讀出單詞;設(shè)置了Voice為非Chinese的時候,英文可以正確朗讀,中文全部跳過。
這里主要提了一些可能出現(xiàn)的問題。因為該類沒有太多的成員和函數(shù),調(diào)用不會很復(fù)雜,具體學(xué)習(xí)可以參考QT自帶的例子。
到此這篇關(guān)于QT5實現(xiàn)TTS文本語音朗讀功能的文章就介紹到這了,更多相關(guān)QT文本朗讀內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷實例分析
這篇文章主要介紹了C++實現(xiàn)圖的鄰接表存儲和廣度優(yōu)先遍歷,實例分析了C++實現(xiàn)圖的存儲與遍歷技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
一文讓你不再害怕指針之C指針詳解(經(jīng)典,非常詳細(xì))
這篇文章主要給大家介紹了C指針的相關(guān)資料,文中介紹的很經(jīng)典,非常詳細(xì),文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C指針具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
C語言中實現(xiàn)“17進制”轉(zhuǎn)“10進制”實例代碼
這篇文章主要介紹了C語言中實現(xiàn)“17進制”轉(zhuǎn)“10進制”實例代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05
C語言實現(xiàn)BMP圖像處理(彩色圖轉(zhuǎn)灰度圖)
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)BMP圖像處理,彩色圖轉(zhuǎn)灰度圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10

