700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 调用百度语音合成API Qt实现语音合成 Qt语音合成

调用百度语音合成API Qt实现语音合成 Qt语音合成

时间:2020-11-16 15:47:04

相关推荐

调用百度语音合成API Qt实现语音合成 Qt语音合成

调用百度语音合成API

概述开通语音合成服务创建语音技术应用使用Qt调用百度语音合成APIQt工程下载链接

概述

本文介绍了使用Qt调用百度语音合成API的详细过程,调用过程十分简单,关键在于掌握获取个人的access_token。首先必须有百度账号,账号注册过程不在赘述。(注:软件环境,Qt5.14.2;)

开通语音合成服务

进入百度云主页,按下图顺序找到语音合成服务并开通。

创建语音技术应用

开通服务之后,进入控制台,在控制台左侧选择语音技术,进入,点击创建应用。这里我已创建好一个语音合成应用。

创建成功后可以看到APIKey和SecretKey,记录下这两个值,接下来使用其获取access_token。

使用Qt调用百度语音合成API

百度语音技术文档

1.获得access_tocken

方法:将自己的APIKey和APISecret分别填入下述网址,APIKey对应client_id,APISecret对应client_secret,然后在浏览器中访问此网址,返回的数据中,有一条就是我们需要的access_token。

// appKey = Va5yQRHl********LT0vuXV4// appSecret = 0rDSjzQ20XUj5i********PQSzr5pVw2/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHl********LT0vuXV4&client_secret=0rDSjzQ20XUj5i********PQSzr5pVw2

链接修改正确后,访问,有一项access_token,记录此值。

{"access_token": "1.a6b7dbd428f731035f771b8d********.86400.1292922000-2346678-124328","expires_in": 2592000,"refresh_token": "2.385d55f8615fdfd9edb7c4b********.604800.1293440400-2346678-124328","scope": "public audio_tts_post ...","session_key": "ANXxSNjwQDugf8615Onqeik********CdlLxn","session_secret": "248APxvxjCZ0VEC********aK4oZExMB",}

2.获得合成接口

接下来拼接参数,拼接参数后,即可在代码中使用参数链接,获得相应文本的语音数据。将下述链接中的tok值替换为自己的access_token,tex值我们在Qt调用时修改,tex值即为需要转为语音的文本内容。本文使用GET调用方式,还需要在下述链接中加入cuid参数,cuid中填写本机MAC地址。查看本机MAC地址的方法很多,不再赘述。访问接口,可以下载MP3文件。

/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=1.a6b7dbd428f731035f771b8d****.86400.1292922000-2346678-124328&tex=%e7%99%be%e5%ba%a6%e4%bd%a0%e5%a5%bd&vol=9&per=0&spd=5&pit=5&aue=3// 这是一个正常MP3的下载url// tex在实际开发过程中请urlencode2次

最终的接口链接为

"/text2audio?lan=zh&ctp=1&cuid=xx-xx-xx-xx-xx-xxcuid填写本机的MAC地址&tok=换成自己的&vol=9&per=0&spd=5&pit=5&aue=3&per=4&tex="

3.Qt调用

mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this);media_player =new QMediaPlayer(this);connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(texttospeech()));}MainWindow::~MainWindow(){delete ui;}void MainWindow::texttospeech(){QString text=ui->lineEdit->text();//修改链接,cuid填写本机MAC地址,tok换成自己的QByteArray url="/text2audio?lan=zh&ctp=1&cuid=xx-xx-xx-xx-xx-xxcuid填写本机的MAC地址&tok=换成自己的&vol=9&per=0&spd=5&pit=5&aue=3&per=4&tex=";url.append(QUrl::toPercentEncoding(text));//播放url里面的音频media_player->setMedia(QUrl::fromLocalFile(url));media_player->play();}

mainwindow.h

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include<QMediaPlayer>QT_BEGIN_NAMESPACEnamespace Ui {class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();QMediaPlayer* media_player;private slots:void texttospeech();private:Ui::MainWindow *ui;};#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){QApplication a(argc, argv);MainWindow w;w.show();return a.exec();}

界面只有两个控件,非常简单。

Qt工程下载链接

点击下载工程,免费链接,不需要积分。可能需要关注一下,下载完成,取消关注即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。