QT調用百度語音REST API實現語音合成


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

 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM