1.在百度语音中创建自己的项目,需要拿到APP_ID、API_KEY、SECRET_KEY。

2.loopback端提供接口服务,在./boot目录下新建root.js文件,编写不依赖模型的自定义接口服务,代码如下:

'use strict';

const fs=require('fs')
const AipSpeechServer = require('baidu-aip-sdk').speech; module.exports = function(server) {
// Install a `/` route that returns server status
var router = server.loopback.Router();// 语音合成
//设置appid/appkey/appsecret
const APP_ID = "14799027";
const API_KEY = "2oSvF6rAFnq6hiVowTxM4fkb";
const SECRET_KEY = "AbyQ8gagqQGauBGOKU9DABsLQOIq5Pwo"; // 新建一个对象,建议只保存一个对象调用服务接口
const client =new AipSpeechServer(APP_ID, API_KEY, SECRET_KEY); // 语音合成
router.post('/speech', function(req, res, next){
client.text2audio(
req.body.text || '你好,百度语音合成测试',
{
//cuid: '机器 MAC 地址或 IMEI 码,长度为60以内',
spd: req.body.spd || '5',//音速
pit: req.body.pit || '5',//音调
vol: req.body.vol || '5',//音量
per: req.body.per || '0'//播音角色
}
)
.then(
function(res1){
if(res1.data){
console.log(res1,'d;');
fs.writeFileSync('./server/static/tts.audio.mp3', res1.data); res.json({
ret: 0,
data:{
path: 'http://192.168.6.12:6001/tts.audio.mp3',//返回小程序调用播放
audio:'data:audio/wav;base64,' + new Buffer(res1.data).toString('base64') // buffer二进制文件转base64
},
msg: ''
}); }else{
// 服务发生错误
console.log(res1);
res.json({
ret: res1.err_no,
data:{
},
msg: res1.err_msg
});
}
},
function(e){
// 发生网络错误
console.log(e);
res.json({
ret: -100,
data:{
},
msg: '网络错误,请检查网络'
});
}
);
}); server.use(router);
};

3.前端调用服务接口即可。

let data = {
text: '请,蒋龙江,到1号诊室就诊。',
spd: '5',
pit: '3',
vol: '8',
per: '0'
};
let a = yield axios.post(`/speech`,data);
let n = new Audio();
n.src = a.data.data.audio;
n.play();

这样在浏览器中就能播放了。

百度语音node只支持在线语音库,暂不支持离线。

百度语音+react+loopback实现语音合成返回播放的更多相关文章

  1. QT调用百度语音REST API实现语音合成

    QT调用百度语音REST API实现语音合成 1.首先点击点击链接http://yuyin.baidu.com/docs/tts 点击access_token,获取access_token,里面有详细 ...

  2. ros下基于百度语音的,语音识别和语音合成

    代码地址如下:http://www.demodashi.com/demo/13153.html 概述: 本demo是ros下基于百度语音的,语音识别和语音合成,能够实现文字转语音,语音转文字的功能. ...

  3. Delphi百度语音【支持语音识别和语音合成】

    作者QQ:(648437169) 点击下载➨百度语音         语音识别api文档         语音合成api文档 [Delphi 百度语音]支持获取 Access Token.语音识别.语 ...

  4. 调用百度语音AI实现语音的识别和合成

    #coding:utf-8 ## 先去ffmpeg官网下载(https://ffmpeg.zeranoe.com/builds/),好了之后解压缩,配一下环境变量 ## 打开cmd,运行命令,安装如下 ...

  5. ros实例_百度语音+图灵

    1 百度语音模块 参考http://blog.csdn.net/u011118482/article/details/55001444 1.1 百度语音识别包 git clonehttps://git ...

  6. 利用百度语音API进行语音识别。

    由于项目需要,这几天都在试图利用百度语音API进行语音识别.但是识别到的都是“啊,哦”什么的,我就哭了. 这里我只是分享一下这个过程,错误感觉出现在Post语音数据那一块,可能是转换问题吧. API请 ...

  7. [python]百度语音rest api

    百度语音识别提供的api范例只有java, c, php. 如果使用Python, 需要注意: 语音文件长度是指bytes大小 可以通过len(file.read())获得 使用requests.po ...

  8. Android 通过调用系统,如接口 谷歌语音、百度语音、科大讯飞语音等语音识别方法对话框

    现在app在发展过程中会集成一些语音识别功能,不具有其自己的显影剂一般正在开发的语音识别引擎,所以在大多数情况下,它是选择一个成熟的语音识别引擎SDK集成到他们的app在. 平时,这种整合被分成两个, ...

  9. BaiduSpeechDemo【百度语音SDK集成】(基于v3.0.7.3)

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo将百度语音SDK(其中一部分功能)和自定义的UI对话框封装到一个module中,便于后续的SDK版本更新以及调用. 本De ...

随机推荐

  1. Linux systemctl 命令完全指南

    Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器. Systemd是一个系统管理守护进程.工具和库的集合,用于取代System V初始进程.Systemd的功能是 ...

  2. Security+认证812分轻松考过(备战分享)

    2019.02.12,开工第一天,我参加了security+考试并顺利通过了考试,812分的成绩有点出乎我的意料,据我所知我周围还没有人考过800分的.怀着愉悦的心态分享下我的备考经历和考试经验. 备 ...

  3. java BIO/NIO/AIO 学习

    一.了解Unix网络编程5种I/O模型 1.1.阻塞式I/O模型 阻塞I/O(blocking I/O)模型,进程调用recvfrom,其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误 ...

  4. Gradle(一)安装配置

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置.面向 ...

  5. django - 总结 - 中间件

    中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响到性能. MID ...

  6. 针对主机CPU idle性能情况需求脚本编写

    [环境介绍] 系统环境:Linux + osw + python 2.7.10 [背景描述] 需求:当系统服务器出现性能告警的时候,需要定位具体的时间点来进行有针对性的去查询产生的问题.OSW提供了很 ...

  7. Hive_1

    Sqoop实现Hbase和关系型数据库的数据互导 Zookeeper 配置的更新,文件的命名 Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了 ...

  8. Python3:排序函数sort() 和 sorted() 之介绍

    今天来讲一下Python中的排序函数.Python中有2个内建的排序函数,分别为sort() 和 sorted() 下面介绍分别介绍一下2个函数: 1.有一个列表 :a=[1,4,5,88,0,7], ...

  9. Oracle 关键字、高级函数的使用

    1.序列.唯一标识 查询时,可以添加递增序列 rownum 表的数据每一行都有一个唯一的标识 rowid 2.函数 单行:查询多条数据 如:to_date() 多行:查询总结数据,一般用于group ...

  10. Android获取虚拟软键盘高度

    public static int getDpi(Context context) { int dpi = 0; WindowManager windowManager = (WindowManage ...