vue实现百度语音合成的实例讲解
这里我完全依照百度提供的语音合成api来做:https://ai.baidu.com/docs#/TTS-Online-Node-SDK/top直接去看node.jsSDK。
1.换取access_token:
参考:https://ai.baidu.com/docs#/TTS-API/top,在这里用浏览器换取token
2.下载sdk依赖:
npminstallbaidu-aip-sdk
完整代码(非原创,参考了一个demo,但是很久以前写的找不到了):
btts(text){ console.log(text);//以下参数参考api文档,token和人的声音音色之类的参数 varparam={ tex:text, tok:'24.e835483633e8680242bb042693e1c071.********.1573463462.******-16425747',//这个token要换成自己的 spd:5, pit:5, vol:15, per:4 }; varurl='http://tsn.baidu.com/text2audio'; varp=param||{}; varthat=this; varxhr=newXMLHttpRequest(); xhr.open('POST',url); //创建form参数 vardata={}; for(varpinparam){ data[p]=param[p] } //赋值预定义参数 data.cuid=data.cuid||data.tok; data.ctp=1; data.lan=data.lan||'zh'; //以上为封装请求的参数 //序列化参数列表 varfd=[]; for(varkindata){ fd.push(k+'='+encodeURIComponent(data[k])); } varfrd=newFileReader(); 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对象进行播报 varaudio=newAudio(); audio.setAttribute('src',URL.createObjectURL(xhr.response)); audio.play(); audio=null; }else{ //这里如果百度语音合成的接口返回类型不是audio/mp3,是json的话,代表你的参数有问题,返回结果失败,具体可以查看api文档 alert("调用语音合成接口token已失效!"); } }else{ alert("语音合成接口调用失败!"); } } } }
以上就是本次介绍的实例代码内容,大家可以在本机测试下,感谢大家的学习和对毛票票的支持。