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

xiaoxiao2021-02-27  321

       最近在做项目,做一个智能聊天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://。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

出声了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

睡觉!

转载请注明原文地址: https://www.6miu.com/read-2713.html

最新回复(0)