您的位置:首页 > Web前端 > HTML5

音频标签的src问题和百度音频合成工具

2017-05-04 12:19 176 查看
       最近在做项目,做一个智能聊天web项目,其中就涉及一个智能机器人的说话问题,我的天,烦到死!

下面抛出原html代码:

var result="***";
var obj=$("<audio src='http://tsn.baidu.com/text2audio?tex="+result+"&lan=zh&cuid=123&ctp=1&tok=24.****aa549e8bf1d18e1143d39923e3bf.2592000.1496419719.282335-9600439' autoplay='autoplay'></audio>");
$("body").remove("audio");
$("body").append(obj);       result是返回给页面的智能机器人要说的话。
      当然这个是可以调通的。我来写一写我调试的心路历程。

      首先是这段网址:tsn.baidu.com/......;分析这段网址,很明显tsn.baidu.com/text2audio?tex=**&ctp=**后面是需要传递的参数。那么这些参数都代表这什么含义呢?

      进入这段网址http://yuyin.baidu.com/docs/tts/136 ,在语音合成REST API 下的 API请求方式基本说明中有详细提到。其他参数都好处理,就是这个tok (access_token)有点麻烦。获取access_token需要申请服务。那就申请呗,API Key 和Secret Key都获取到了,接着就请求token了。问题又出现了!你复制这行网址

https://openapi.baidu.com/oauth/2.0/token?

grant_type=client_credentials&

client_id=Va5yQRHl********LT0vuXV4&

client_secret=
0rDSjzQ20XUj5i********PQSzr5pVw2&


换上自己的API Key 和Secret Key到浏览器请求,报错,参数形式不对!!

Too young too simple。你得这样写https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=R6UwD9ELRg1RxImTO35s****&client_secret=b29a6d60e46e841a111d9066c6d0****& 复制是没有用的,中间有回车换行,厉害了吧,建议自己在txt文件中拼接好再复制请求。

请求拿到了tok,你以为就大功告成??小伙子,我欣赏你哦!!!

添加上tok,tsn.baidu.com/text2audio?tex=您好!&lan=zh&cuid=123&ctp=1&tok=24.****aa549e8bf1d18e1143d39923e3bf.2592000.1496419719.282335-9600439在地址复制到刚在那段代码,可以听到声音,很激动。拼接到代码,没音儿!!!此时 已是凌晨了。。。

于是查看audio标签用法,这里负责W3School的代码:

<!DOCTYPE HTML>
<html>
<body>

<audio src="/i/horse.ogg" controls="controls">
Your browser does not support the audio element.
</audio>

</body>
</html>当然在网页上是可以播放的,换上自己的音频文件也可以播放。但是换上自己url,还是哑巴。然后不知道是哪一次尝试,添加了一个https://。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
出声了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

睡觉!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息