百度AI 语音合成

web端需要实现语音合成,也就是文字转语音。讯飞web端那套文档太简略,看过百度得之后决定选择百度来测试。不信可以比较下

https://doc.xfyun.cn/rest_api/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90.html 讯飞

http://ai.baidu.com/docs#/TTS-API/5363f6ed 百度

不管哪一套,上来先看文档,配置参数。

 一、token获取

https 涉及到跨域请求,简单学习了jsonp 但是需要官方返回js文件 测试发现一直报错 

jsonp需要自己定制服务器端 返回数据 不管怎么样 必须需要服务器端设置 所以不从前台请求而是从服务器端通过request请求获取到token,然后传递到前台页面

并且token有时效性,必须定期进行获取。

二、html端请求

官方js原生方法: 百度语音 语音合成 跨域demo以及支持库

序列化tex参数的时候需要进行2次urlencode ,为了处理特殊字符。官方demo这里没处理 但是官方文档中有明确标识

修改如下:

 

自己jquery写的

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
	</head>
	<body>
		<input type="text" id='text' value='1+1=2' style='width: 500px;'>
		<button onclick="anounce()">播放</button>
		<div id="div"></div>
	</body>
	<script type="text/javascript">
		//动态添加标签 再删除
		function anounce() {	
			var text = $("#text").val();
			console.log("text:" + text)

			var tex = encodeURIComponent(encodeURIComponent(text));
			console.log("tex:" + tex)
	
			//先删除div标签下的audio标签
			$("audio").remove("#div audio");
			
			//重新创建标签
			$("#div").append(
				"<audio autoplay='autoplay' src='http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=自己的token&tex=" +
				tex + "&vol=9&per=0&spd=5&pit=5&aue=3' controls='controls'></audio>");
			
					
		}
	</script>
</html>

 

1、除了token和tex(2次urlencode)参数需要动态输入以后,其他参数这里写死了,也可以根据需要在页面进行设置选择项进行参数的配置。

2、audio的标签动态添加和删除 audio标签自动播放和隐藏 


            

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿姨不可以嘛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值