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 = );
~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
QT调用百度语音REST API实现语音合成的更多相关文章
- 调用百度语音AI实现语音的识别和合成
#coding:utf-8 ## 先去ffmpeg官网下载(https://ffmpeg.zeranoe.com/builds/),好了之后解压缩,配一下环境变量 ## 打开cmd,运行命令,安装如下 ...
- HTML实现调用百度在线翻译API
HTML实现调用百度在线翻译API 本文章已收录于: <!doctype html> <html lang="en"> <head> < ...
- 百度语音+react+loopback实现语音合成返回播放
1.在百度语音中创建自己的项目,需要拿到APP_ID.API_KEY.SECRET_KEY. 2.loopback端提供接口服务,在./boot目录下新建root.js文件,编写不依赖模型的自定义接口 ...
- 苹果手机 微信调用百度地图Javascript API 频繁闪退问题
最近在网页中调用百度地图API js大众版,但是在IOS8系统中,缩放的时候频繁闪退,安卓手机没有这个问题! 在网上查询了下,有网友回答说不要频繁的去new marker,而是初始化话一定量的mark ...
- [python]百度语音rest api
百度语音识别提供的api范例只有java, c, php. 如果使用Python, 需要注意: 语音文件长度是指bytes大小 可以通过len(file.read())获得 使用requests.po ...
- python调用百度语音(语音识别-斗地主语音记牌器)
一.概述 本篇简要介绍百度语音语音识别的基本使用(其实是斗地主时想弄个记牌器又没money,抓包什么的又不会,只好搞语音识别的了) 二.创建应用 打开百度语音官网,产品与使用->语音识别-> ...
- 跨域解决方案之JSONP,通过借助调用百度搜索的API了解跨域案例
跨域解决方案之JSONP 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web ...
- PHP调用百度天气接口API
//百度天气接口API $location = "北京"; //地区 $ak = "5slgyqGDENN7Sy7pw29IUvrZ"; //秘钥,需要申请,百 ...
- C#怎么调用百度地图Web API
直接上代码: public ActionResult FindMileage() { string s; HttpWebRequest req = (HttpWebRequest)HttpWebReq ...
随机推荐
- Python的内置函数open()的注意事项
用法 : open("file_address","open_mode")例子 : f = open("D:\PycharmProjects\log. ...
- 使用EzHttp框架 开发基于HTTP协议的CS轻应用
框架概述 EzHttp是临时起意构思和开发的一个框架,目的在于简化CS轻应用开发过程.开发语言是C#. 普通的基于HTTP的应用开发基本上是RESTful的,客户端调用封装需要人工写代码,就算利用三方 ...
- java并发程序——并发容器
概述 java cocurrent包提供了很多并发容器,在提供并发控制的前提下,通过优化,提升性能.本文主要讨论常见的并发容器的实现机制和绝妙之处,但并不会对所有实现细节面面俱到. 为什么JUC需要提 ...
- Ruby中有意思的块
块:是在调用方法时,能与参数一起传递的多个处理的集合 简单点说,跟在方法执行后面的do |变量| end就是一个块,这个块会被传入方法中去执行! 这个非常厉害,非常有意思! 在ruby中,如果需要便利 ...
- 关于获取URL中传值的解决方法
在我们页面的URL中包含着很多信息,包括域名,协议等等这里就不一一介绍了),对于我们开发者而言,使用比较多的就是页面之间的传值.为什么要页面传值呢?很简单,当你在浏览一个商品页面的时候你要看到一个商品 ...
- jquery按钮绑定特殊事件
本文主要介绍点击一个按钮处理事件的一些特殊情况和技巧. 一.第一次点击触发一个函数,之后点击都触发另一个函数 1.小白实现 2.大神实现 代码如下: <body> <button&g ...
- NSLog (Log信息的输出)
概述 NSLog是 cocoa的框架中提供的一个方法 NSLog的定义 NSLog定义在NSObjCRuntime.h中 NSLog与printf的差异 1)NSLog传递进去的格式化字符是NSStr ...
- namenode和datanode 的namespaceID导致的问题
namenode和datanode 的namespaceID导致,datanode无法正常的启动,经过查资料,解决的办法就是更改datanode的VERSION之中的namespace namenod ...
- css元素水平垂直居中的十种方法
四月底在杭州金诚的前端面试过程中,问到了父元素中子元素水平和垂直居中的方式,因为平时疏于整理,只说上来两种.后来面试过了,所以现在回想到这个问题,所以针对各种情况集中整理一下. 首先看页面结构和元素的 ...
- JAVA自增自减的玄机
先看下面代码: ; i = i++; System.out.println(i); 请问:输出结果为多少? ---------------------------------------------- ...