您的位置:首页 > Web前端 > Vue.js

vue实现百度语音合成的实例讲解

2019-10-14 18:06 926 查看

这里我完全依照百度提供的语音合成api来做:https://ai.baidu.com/docs#/TTS-Online-Node-SDK/top 直接去看node.js SDK。

1.换取access_token:

参考:https://ai.baidu.com/docs#/TTS-API/top,在这里用浏览器换取token

2.下载sdk依赖:

npm install baidu-aip-sdk

完整代码(非原创,参考了一个demo,但是很久以前写的找不到了):

btts(text) {
console.log(text);   //以下参数参考api文档,token和人的声音音色之类的参数
var param={
tex: text,
tok: '24.e835483633e8680242bb042693e1c071.********.1573463462.******-16425747',//这个token要换成自己的
spd: 5,
pit: 5,
vol: 15,
per: 4
};
var url = 'http://tsn.baidu.com/text2audio';
var p = param || {};
var that = this;
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
    // 创建form参数
   var data = {};
     for (var p in param) {
data

= param[p] }     // 赋值预定义参数      data.cuid = data.cuid || data.tok; data.ctp = 1; data.lan = data.lan || 'zh';     //以上为封装请求的参数      // 序列化参数列表     var fd = []; for(var k in data) { fd.push(k + '=' + encodeURIComponent(data[k])); } var frd = new FileReader(); xhr.responseType = 'blob'; xhr.send(fd.join('&'));     //请求返回结果处理 xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200) { if (xhr.response.type == 'audio/mp3') {              //创建audio对象进行播报 var audio = new Audio(); audio.setAttribute('src', URL.createObjectURL(xhr.response)); audio.play(); audio=null; }else{             //这里如果百度语音合成的接口返回类型不是audio/mp3,是json的话,代表你的参数有问题,返回结果失败,具体可以查看api文档 alert("调用语音合成接口token已失效!"); } }else{ alert("语音合成接口调用失败!"); } } } }

[p]以上就是本次介绍的实例代码内容,大家可以在本机测试下,感谢大家的学习和对脚本之家的支持。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vue 百度 语音合成