利用百度tts 实现文字转语音(node)

var http = require('http');        // 通过http模块访问百度的接口
var querystring = require('querystring');    // 处理请求参数的querystring模块
var fs = require('fs');      // fs模块,用来保存语音文件
var path = require('path');


var t = '浦发银行有新信号'
var postData = querystring.stringify({
  "lan": "zh",    // zh表示中文
  "ie": "UTF-8",  // 字符编码
  "spd": 5,       // 表示朗读的语速,9代表最快,1是最慢(撩妹请用2,绕口令请用9)
  "text": t   // 这句话就是要转换为语音的,可以表白一下,XXX我爱你
});


var options = {
  "method": "GET",
  "hostname": "tts.baidu.com",
  "path": "/text2audio?" + postData
};


// 调用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('./public/music/'+t+'.mp3');
    // fs模块写文件    
    fs.writeFileSync(filePath, body);
  });
});


req.end();

你可能感兴趣的:(node学习)