百度语音合成 js html,Node.js结合百度TTS接口实现文字转语音功能
今天工作的時候偶然發(fā)現(xiàn)了百度的TTS Restful接口(TTS是TextToSpeech,說白了就是文本轉(zhuǎn)語音的功能)。該接口如下,瀏覽器中可以直接訪問:
http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=你要轉(zhuǎn)換的文字
今天突發(fā)奇想,要用Node.js寫一些表白撩妹的話,通過百度的接口轉(zhuǎn)換成語音,并把該語音保存到電腦里。那如何用Node.js來訪問該接口呢,下面是我們的主角登場:http模塊,首先,引入我們需要的模塊:
var http = require('http'); // 通過http模塊訪問百度的接口
var querystring = require('querystring'); // 處理請求參數(shù)的querystring模塊
var fs = require('fs'); // fs模塊,用來保存語音文件
var path = require('path'); // path模塊,處理路徑
然后準(zhǔn)備http請求的一些參數(shù):
var postData = querystring.stringify({
"lan": "zh", // zh表示中文
"ie": "UTF-8", // 字符編碼
"spd": 2, // 表示朗讀的語速,9代表最快,1是最慢(撩妹請用2,繞口令請用9)
"text": "小花,我愛你!" // 這句話就是要轉(zhuǎn)換為語音的,可以表白一下,XXX我愛你
});
var options = {
"method": "GET",
"hostname": "tts.baidu.com",
"path": "/text2audio?" + postData
};
準(zhǔn)備好后開始利用http模塊進行請求:
// 調(diào)用http模塊的request方法請求百度接口
var req = http.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk); // 獲取到的音頻文件數(shù)據(jù)暫存到chunks里面
});
res.on("end", function () {
// 這里用到了Buffer模塊,大概意思就是把獲取到的語音文件流存入到body里面,body是一個Buffer
var body = Buffer.concat(chunks);
// 生成的mp3文件存儲的路徑,文件名叫做iloveu.mp3
var filePath = path.normalize('./iloveu.mp3');
// fs模塊寫文件
fs.writeFileSync(filePath, body);
});
});
req.end();
OK,有關(guān)注釋已經(jīng)說的很明白了,一切準(zhǔn)備就緒,把以上代碼放到桌面新建文件main.js中,執(zhí)行命令:
node main.js
運行程序后發(fā)現(xiàn),作者的桌面上出現(xiàn)了iloveu.mp3,運行一下,甜美的聲音就會粗來啦!!
保存的mp3文件
大家可以把喜歡的話寫進去,然后運行測試一下哦!最后,請原諒我污了一把,賤賤地用這個功能來聽繞口令,請設(shè)置spd等于9(最快語速),然后文本設(shè)置成下面的最污繞口令,試試你和機器誰讀的好哦!
釣魚要到島上釣,不到島上釣不到。
釣魚要到島上釣,不到島上釣不到。
紅公雞尾巴灰,灰公雞尾巴紅。
紅公雞尾巴灰,灰公雞尾巴紅。
糍粑雞蛋我也吃,雞蛋糍粑我也吃。
糍粑雞蛋我也吃,雞蛋糍粑我也吃。
本文是根據(jù)node.js目前穩(wěn)定版本的文檔Node.js v4.4.4 Documentation進行總結(jié)的,如您在閱讀的過程中發(fā)現(xiàn)問題,請聯(lián)系作者,最后感謝您的支持!
簡書作者 小菜荔枝 轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)
總結(jié)
以上是生活随笔為你收集整理的百度语音合成 js html,Node.js结合百度TTS接口实现文字转语音功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北字开头的成语有哪些?
- 下一篇: 拜伦好不好?