今天偶然發現一個百度的文字轉語音接口,通過url的方式直接向接口發送參數,包含需要轉換成語音的文字,浏覽器會直接返回播放(fàng)器播放(fàng)識别出來(lái)的語音,而且可(kě)以通過參數控制語速、文本語言等。
百度語音合成官網地址http://yuyin.baidu.com/tts。接口地址:
http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=這裡(lǐ)是需要轉換爲語音的文本内容
這個接口可(kě)以直接複制到浏覽器地址欄enter,會出現一個語音播放(fàng)器播放(fàng)text參數的文本内容。
lan參數是語言,zh-中文 en-英文,其他(tā)的沒有嘗試。
spd參數是語速,1-9,數字越大(dà)語速越快(kuài),朗讀(dú)中文感覺6語速最合适。
text參數就(jiù)是需要合成爲語音的文本内容了。
通過js方式傳參實現朗讀(dú):
<script>
var zhText = "常亮的技術(shù)博客,專注于php開發,一個自(zì)由職業者。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>
實際應用,應該可(kě)以直接通過ajax實時的傳文本内容給接口實現文本轉語言。
當然也可(kě)以直接抓取下載生(shēng)成的語音文件(jiàn),嘗試了下,可(kě)以直接下載下來(lái),寫一個php的實現代碼舉例:
<?php
header("Content-type:text/html;charset=utf-8");
$text=urlencode("常亮的技術(shù)博客,專注于php開發,一個自(zì)由職業者。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"; //演示用,直接生(shēng)成一個三位随機(jī)數的文件(jiàn)名
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代碼會直接把生(shēng)成的語音直接download到本地。更深層次的應用就(jiù)不寫了,待續。
本站(zhàn)文章(zhāng)爲深圳網站(zhàn)建設·源美網絡原創策劃,如(rú)有版權糾紛或者違規問(wèn)題,請(qǐng)聯系我們删除,謝謝!
上一篇: Centos安裝dos2unix
下一篇: 微信小程序初體(tǐ)驗
售後保障
承諾任何問(wèn)題1小時内解決數據備份
更安全、更高效、更穩定價格公道精準
項目經理(lǐ)精準報價不弄虛作(zuò)假合作(zuò)無風(fēng)險
重合同講信譽,無效全額退款