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

 


最新文章

  1. [MongoDB] Query, update, index and group
  2. Quartz 第六课 CronTrigger(官方文档翻译)
  3. Java Web编程的主要组件技术——Servlet
  4. Java [Leetcode 337]House Robber III
  5. css字体转换程序(Node.js)
  6. jquery input只允许输入数字
  7. 异步提交form的时候利用jQuery validate实现表单验证
  8. JSP EL表达式忽略方法
  9. How to use VisualSVN Server and TortoiseSVN to host your codes and control your codes&#39; version
  10. mybatis属性详解
  11. VS2017 性能优化方法
  12. Fiddler对Android应用进行抓包
  13. 干货分享: 长达150页的openvswitch的ppt,不实验无真相
  14. Axure 交互样式和选项组的设置
  15. Android -- 仿淘宝广告条滚动
  16. POST请求测试地址
  17. Lazarus下面的javascript绑定另外一个版本bug修正
  18. MySQL闪退问题的解决
  19. HDU4417(SummerTrainingDay08-N 主席树)
  20. 转 Linux定时执行任务命令at和crontab

热门文章

  1. 跨语言学习的基本思路及python的基础学习
  2. 我使用的Chrome插件列表
  3. jquery easyui的datagrid在初始化的时候会请求两次URL?
  4. 为用户增加sudo权限(修改sudoers文件)
  5. python之爬虫学习记录与心得
  6. poj2739尺取法+素数筛
  7. 使用 Laravel 实现微型博客系统
  8. 【跑会指南】2017年3-5月IT技术会议大合集
  9. Apple本地认证(密码+Touch id)
  10. Java中HashMap源码分析