Node.js實現文字轉語音功能(收藏)

今天工作的時候偶然發現了某個人在《簡書》中寫的nodejs應用百度的TTS Restful接口(TTS是TextToSpeech,說白了就是文本轉語音的功能)實現的文字轉語音功能。該接口如下,瀏覽器中可以直接訪問:

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

今天突發奇想,要用Node.js寫一些表白撩妹的話,通過百度的接口轉換成語音,并把該語音保存到電腦里。那如何用Node.js來訪問該接口呢,下面是我們的主角登場:http模塊

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

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

var querystring = require('querystring');? ? // 處理請求參數的querystring模塊

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

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

然后準備http請求的一些參數:

var postData = querystring.stringify({

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

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

? ? ? ? ?"spd": 5,? ? ? // 表示朗讀的語速,9代表最快,1是最慢(撩妹請用2,繞口令請用9)

? ? ? ? ?"text":"要朗讀的話!!!"

});

var options = {

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

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

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

};

準備好后開始利用http模塊進行請求:

// 調用http模塊的request方法請求百度接口

var req = http.request(options, function (res) {

? ? var chunks = [];

? ? ?res.on("data", function (chunk) {

? ? ? ? ? ? chunks.push(chunk);? // 獲取到的音頻文件數據暫存到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,有關注釋已經說的很明白了,一切準備就緒,把以上代碼放到桌面新建文件main.js中,執行命令:

node main.js

運行程序后發現,作者的桌面上出現了iloveu.mp3,運行一下,甜美的聲音就會粗來啦!!

大家可以把喜歡的話寫進去,然后運行測試一下哦!

本文是根據node.js目前穩定版本的文檔Node.js v4.4.4 Documentation進行總結的,最后感謝您的支持!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 《ijs》速成開發手冊3.0 官方用戶交流:iApp開發交流(1) 239547050iApp開發交流(2) 10...
    葉染柒丶閱讀 5,331評論 0 7
  • 個人入門學習用筆記、不過多作為參考依據。如有錯誤歡迎斧正 目錄 簡書好像不支持錨點、復制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,500評論 1 37
  • Node.js Stream(流) Stream 是一個抽象接口,Node 中有很多對象實現了這個接口。例如,對h...
    FTOLsXD閱讀 618評論 0 2
  • 入秋的長安,總是陰雨綿綿 一個人坐上800路 從西郊一直到白鹿原 梧桐葉落,往事在眼前 媽媽的話,總回蕩在腦海 一...
    柒夢為馬閱讀 632評論 2 5
  • 愿望:完成10篇圖集 結果:會有小成就感 障礙:速度慢 計劃:確定標題和商品,熟練操作,一個一個來
    潮女搭配心經閱讀 141評論 0 0