之前寫過一篇《Emlog實現文章標題語音朗讀》,該文章中的方法已經失效了,本文是通過百度文字轉語音免費接口使用實例。  

百度語音轉換接口:  

http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=你要轉換的文字  

參數說明:  

lan=zh:語言是中文,如果改為lan=en,則語言是英文。  

ie=UTF-8:文字格式。  

spd=2:語速,可以是1-9的數字,數字越大,語速越快。  

text=**:這個就是你要轉換的文字。  

怎樣調用?  

上述接口的url,在瀏覽器上直接打開,即可聽到文字轉換后的語音。  

但是真實應用時可不能在瀏覽器里直接打開這個url,而是需要在一個網頁里無縫嵌入該語音模塊。該怎么處理呢?  

一、我們可以通過如下的html代碼來運行語音接口。  

<audioautoplay="autoplay">  
<sourcesrc="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=www.webkaka.com"type="audio/mpeg">  
<embedheight="0"width="0"src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=www.webkaka.com">  
</audio>  

問題來了,text的字符串是如何得來的?其實,是通過javascript的encodeURI()函數編碼得來的。上述字符串是“測試百度文字轉語音接口-卡卡測速網www.webkaka.com”通過encodeURI()函數編碼得來的。  

二、通過JS調用接口  

下面是JS的實現代碼:  

<scripttype="text/javascript">  
varzhText="張凱博客www.cvhabu.tw";  
zhText=encodeURI(zhText);  
document.write("<audioautoplay=\"autoplay\">");  
document.write("<sourcesrc=\"http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text="+zhText+"\"type=\"audio/mpeg\">");  
document.write("<embedheight=\"0\"width=\"0\"src=\"http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text="+zhText+"\">");  
document.write("</audio>");  
</script>

最終成品代碼:

<!--標題轉換語音-->
<script type="text/javascript"> 
var zhText = "<?php echo $log_title; ?>"; 
zhText = encodeURI(zhText);
document.write("<audio autoplay=\"autoplay\">");
document.write("<source src=\"http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=9&text="+ zhText +"\" type=\"audio/mpeg\">");
document.write("<embed height=\"0\" width=\"0\" src=\"http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text="+ zhText +"\">");
document.write("</audio>");
</script>