**
先开始用的是百度语音在线合成的接口,结果折腾了半天存在本地的语音播放不出来。也不知道那个环节出了问题。于是就去找其他的解决办法,接下来就是接入的是百度语音合成的SDK,自我感觉比接口简单多了
**
首先建立一个node项目,然后npm安装百度的SDK , npm i baidu-aip-sdk
。安装完成后,建立一个新得app.js文件
在app.js中写入代码
var AipSpeechClient = require("baidu-aip-sdk").speech;
// 设置APPID/AK/SK
var APP_ID = "自己去看哟";
var API_KEY = "自己去看哟";
var SECRET_KEY = "自己去看哟";
// 新建一个对象,建议只保存一个对象调用服务接口
var client = new AipSpeechClient(APP_ID, API_KEY, SECRET_KEY);
var HttpClient = require("baidu-aip-sdk").HttpClient;
// 设置request库的一些参数,例如代理服务地址,超时时间等
// request参数请参考 https://github.com/request/request#requestoptions-callback
HttpClient.setRequestOptions({timeout: 5000});
// 也可以设置拦截每次请求(设置拦截后,调用的setRequestOptions设置的参数将不生效),
// 可以按需修改request参数(无论是否修改,必须返回函数调用参数)
// request参数请参考 https://github.com/request/request#requestoptions-callback
HttpClient.setRequestInterceptor(function(requestOptions) {
// 查看参数
console.log(requestOptions);
// 修改参数
requestOptions.timeout = 5000;
// 返回参数
return requestOptions;
});
// 语音合成, 附带可选参数
var fs = require('fs');
client.text2audio('我要下棋', {spd: 0, per: 4}).then(function(result) {
if (result.data) {
fs.writeFileSync('D:/HBx/tts.c.mp3', result.data);
} else {
// 服务发生错误
console.log(result)
}
}, function(e) {
// 发生网络错误
console.log(e)
});
把配置好了后,直接node app.js
就出现了一个mp3文件,直接播放就可以了。或者放在服务器的某个地址上然后浏览器可以通过url地址去播放这段音频
百度文档地址:https://cloud.baidu.com/doc/SPEECH/s/Sjwvy65x9
常量APP_ID在百度智能云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。