Node.js實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音功能(收藏)

今天工作的時(shí)候偶然發(fā)現(xiàn)了某個(gè)人在《簡(jiǎn)書》中寫的nodejs應(yīng)用百度的TTS Restful接口(TTS是TextToSpeech,說白了就是文本轉(zhuǎn)語(yǔ)音的功能)實(shí)現(xiàn)的文字轉(zhuǎn)語(yǔ)音功能府适。該接口如下,瀏覽器中可以直接訪問:

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

今天突發(fā)奇想拼岳,要用Node.js寫一些表白撩妹的話,通過百度的接口轉(zhuǎn)換成語(yǔ)音推捐,并把該語(yǔ)音保存到電腦里裂问。那如何用Node.js來訪問該接口呢侧啼,下面是我們的主角登場(chǎng):http模塊

首先牛柒,引入我們需要的模塊:

var http = require('http');? ? ? ? // 通過http模塊訪問百度的接口

var querystring = require('querystring');? ? // 處理請(qǐng)求參數(shù)的querystring模塊

var fs = require('fs');? ? ? // fs模塊,用來保存語(yǔ)音文件

var path = require('path');? ? // path模塊痊乾,處理路徑

然后準(zhǔn)備http請(qǐng)求的一些參數(shù):

var postData = querystring.stringify({

? ? ? ? ?"lan": "zh",? ? // zh表示中文

? ? ? ? ?"ie": "UTF-8",? // 字符編碼

? ? ? ? ?"spd": 5,? ? ? // 表示朗讀的語(yǔ)速皮壁,9代表最快,1是最慢(撩妹請(qǐng)用2哪审,繞口令請(qǐng)用9)

? ? ? ? ?"text":"要朗讀的話6昶恰!湿滓!"

});

var options = {

? ? ? ?"method": "GET",

? ? ? ?"hostname": "tts.baidu.com",

? ? ? ?"path": "/text2audio?" + postData

};

準(zhǔn)備好后開始利用http模塊進(jìn)行請(qǐng)求:

// 調(diào)用http模塊的request方法請(qǐng)求百度接口

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模塊滴须,大概意思就是把獲取到的語(yǔ)音文件流存入到body里面,body是一個(gè)Buffer

? ? ? ? ? ? ?var body = Buffer.concat(chunks);

? ? ? ? ? ? ? // 生成的mp3文件存儲(chǔ)的路徑叽奥,文件名叫做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

運(yùn)行程序后發(fā)現(xiàn)主届,作者的桌面上出現(xiàn)了iloveu.mp3,運(yùn)行一下待德,甜美的聲音就會(huì)粗來啦> !

大家可以把喜歡的話寫進(jìn)去将宪,然后運(yùn)行測(cè)試一下哦绘闷!

本文是根據(jù)node.js目前穩(wěn)定版本的文檔Node.js v4.4.4 Documentation進(jìn)行總結(jié)的,最后感謝您的支持较坛!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末簸喂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子燎潮,更是在濱河造成了極大的恐慌喻鳄,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件确封,死亡現(xiàn)場(chǎng)離奇詭異除呵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)爪喘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門颜曾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秉剑,你說我怎么就攤上這事泛豪。” “怎么了侦鹏?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵诡曙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我略水,道長(zhǎng)价卤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任渊涝,我火速辦了婚禮慎璧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跨释。我一直安慰自己胸私,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布鳖谈。 她就那樣靜靜地躺著岁疼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚯姆。 梳的紋絲不亂的頭發(fā)上五续,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天洒敏,我揣著相機(jī)與錄音,去河邊找鬼疙驾。 笑死凶伙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的它碎。 我是一名探鬼主播函荣,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼扳肛!你這毒婦竟也來了傻挂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挖息,失蹤者是張志新(化名)和其女友劉穎金拒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體套腹,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绪抛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了电禀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幢码。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖尖飞,靈堂內(nèi)的尸體忽然破棺而出症副,到底是詐尸還是另有隱情,我是刑警寧澤政基,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布贞铣,位于F島的核電站,受9級(jí)特大地震影響腋么,放射性物質(zhì)發(fā)生泄漏咕娄。R本人自食惡果不足惜亥揖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一珊擂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧费变,春花似錦摧扇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至滑负,卻和暖如春在张,著一層夾襖步出監(jiān)牢的瞬間用含,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工帮匾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啄骇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓瘟斜,卻偏偏與公主長(zhǎng)得像缸夹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子螺句,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 《ijs》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,121評(píng)論 0 7
  • 個(gè)人入門學(xué)習(xí)用筆記虽惭、不過多作為參考依據(jù)。如有錯(cuò)誤歡迎斧正 目錄 簡(jiǎn)書好像不支持錨點(diǎn)蛇尚、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,469評(píng)論 1 37
  • Node.js Stream(流) Stream 是一個(gè)抽象接口芽唇,Node 中有很多對(duì)象實(shí)現(xiàn)了這個(gè)接口。例如取劫,對(duì)h...
    FTOLsXD閱讀 604評(píng)論 0 2
  • 入秋的長(zhǎng)安勇凭,總是陰雨綿綿 一個(gè)人坐上800路 從西郊一直到白鹿原 梧桐葉落疚膊,往事在眼前 媽媽的話,總回蕩在腦海 一...
    柒夢(mèng)為馬閱讀 622評(píng)論 2 5
  • 愿望:完成10篇圖集 結(jié)果:會(huì)有小成就感 障礙:速度慢 計(jì)劃:確定標(biāo)題和商品虾标,熟練操作寓盗,一個(gè)一個(gè)來
    潮女搭配心經(jīng)閱讀 135評(píng)論 0 0