QT調用百度語音REST API實現語音合成
1、首先點擊點擊鏈接http://yuyin.baidu.com/docs/tts

點擊access_token,獲取access_token,里面有詳細步驟,不再贅述
記下鏈接,等會在QT程序中會用到,tex后面跟要轉換成語音的文字,tok后面是剛獲得的access_token

2、打開Qt Creator,新建一個QWidget應用程序,繪制界面如下

3、獲取語音按鈕槽函數如下
void Widget::on_pushButton_clicked() { QByteArray url="http://tsn.baidu.com/text2audio?"; url.append(QString("&lan=zh&cuid=***&ctp=1&tok=***&pit=8&per=3")); url.append("&tex="); url.append(QUrl::toPercentEncoding(ui->textEdit->toPlainText())); qDebug()<<url; player->setMedia(QUrl::fromLocalFile(url)); player->play(); }
player是QMediaPlayer類的一個對象,在widget.h中有聲明
private:
QMediaPlayer *player;
構造函數中添加如下代碼:
player=new QMediaPlayer(this);
將cuid換成自己計算機mac地址,tok后加第一步獲得的access_token
以下是所有代碼
widget.h
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QMediaPlayer> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_pushButton_clicked(); private: Ui::Widget *ui; QMediaPlayer *player; }; #endif // WIDGET_H
widget.cpp
#include "widget.h" #include "ui_widget.h" #include<QDebug> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); player=new QMediaPlayer(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { QByteArray url="http://tsn.baidu.com/text2audio?"; url.append(QString("&lan=zh&cuid=***&ctp=1&tok=***&pit=8&per=3")); url.append("&tex="); url.append(QUrl::toPercentEncoding(ui->textEdit->toPlainText())); qDebug()<<url; player->setMedia(QUrl::fromLocalFile(url)); player->play(); }


來源:古墓派掌門
http://www.cnblogs.com/qflyue/p/6964988.html
