• 自动秒收录
  • 软件:1974
  • 资讯:4527|
  • 收录网站:301505|

IT精英团

react+loopback实现语音合成返回播放

react+loopback实现语音合成返回播放

作者/景文

react+loopback实现语音合成返回播放

作者/景文

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

image.png

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 只支持在线语音库,暂不支持离线。

点击这里复制本文地址 以上内容由IT精英团整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
退出阅读|首页