百度免费接口 文字转语音播报

HTML页面:

<a href="javaScript:broadCast();"></a>

<input type="hidden" id="voiceText">

js代码:

function broadCast(){
	$("#voice").empty();
	var voiceText=$("#voiceText").val();
	var loopN = Math.ceil(voiceText.length/100);
	if(loopN>1){
		partLong(0,loopN, voiceText)
	}else{
		var zhText = encodeURI(voiceText)
		$("#voice").append("<audio autoplay='autoplay' controls='controls'  id='audio'>" +
				"<source src='http://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&spd=5&pdt=311&tex="+zhText+"'>" +
				"</audio>");
		$("#audio").bind('ended',function () {
			$("#voice").empty();
		})
//		$("#voice").append('<embed height="0" width="0" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&per=4&pit=9&spd=2&text='+zhText+'">')
	}
}

function partLong(i,max, voiceText){
	var part = voiceText.substr(i*100,100)
	var zhText = encodeURI(part);
	$("#voice").append("<audio id = audio"+i+" autoplay='autoplay' controls='controls'>" +
			"<source src='http://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&spd=5&pdt=311&tex="+zhText+"'>" +
			"</audio>");
	
	$("#audio"+i).bind('ended',function () {
		$("#voice").empty();
		i++;
		if(i>= max){$("#voice").empty();return}
		partLong(i,max, voiceText);
	})
}

 

lan:固定值zh。语言选择,目前只有中英文混合模式,填写固定值zh
ie:编码方式
spd:语速,取值0-9,默认为5中语速
text:合成的文本,使用UTF-8编码。小于512个中文字或者英文数字。(文本在百度服务器内转换为GBK后,长度必须小于1024字节)

由于字数限制,这里给它加了循环,大过100字就循环播放

 

原文地址:https://www.cnblogs.com/Esther-yan/p/12989550.html