今天偶然发现一个百度的文字转语音接口,通过url的方式直接向接口发送参数,包含需要转换成语音的文字,浏览器会直接返回播放器播放识别出来的语音,而且可以通过参数控制语速、文本语言等。
百度语音合成官网地址http://yuyin.baidu.com/tts。接口地址:
http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=这里是需要转换为语音的文本内容
这个接口可以直接复制到浏览器地址栏enter,会出现一个语音播放器播放text参数的文本内容。
lan参数是语言,zh-中文 en-英文,其他的没有尝试。
spd参数是语速,1-9,数字越大语速越快,朗读中文感觉6语速最合适。
text参数就是需要合成为语音的文本内容了。
通过js方式传参实现朗读:
<script>
var zhText = "常亮的技术博客,专注于php开发,一个自由职业者。www.diantuo.net";
zhText = encodeURI(zhText);
document.write("<audio autoplay=\"autoplay\">");
document.write("<source src=\"http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text="+ zhText +"\" type=\"audio/mpeg\">");
document.write("<embed height=\"0\" width=\"0\" src=\"http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text="+ zhText +"\">");
document.write("</audio>");
</script>
实际应用,应该可以直接通过ajax实时的传文本内容给接口实现文本转语言。
当然也可以直接抓取下载生成的语音文件,尝试了下,可以直接下载下来,写一个php的实现代码举例:
<?php
header("Content-type:text/html;charset=utf-8");
$text=urlencode("常亮的技术博客,专注于php开发,一个自由职业者。www.diantuo.net");
$url="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=6&text=".$text;
getimg($url,"");
function getimg($url,$dirname) {
$filename=rand(100,999).".mp3"; //演示用,直接生成一个三位随机数的文件名
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp2=@fopen($filename, "a");
fwrite($fp2,$img);
fclose($fp2);
return $filename;
}
?>
以上的php代码会直接把生成的语音直接download到本地。更深层次的应用就不写了,待续。
上一篇: Centos安装dos2unix
下一篇: 微信小程序初体验
售后保障
承诺任何问题1小时内解决数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款