在最近的一个项目中,需要制作系统的操作视频并配音,试了一下科大讯飞的在线语音合成感觉不错,于是想将解说词写到脚本文件中,直接批量生成多个语音文件,用语音文件给视频添加配音,于是就有了下面的demo
介绍
主要基于科大讯飞语音合成的Api,实现了脚本文件内文字的批量合成,并保存为Mp3格式的语音文件
安装教程
- 拉取代码到本地
-
npm install
安装依赖
使用说明
- 在运行之前,需要填写自己的appid、apiSecret、apiKey及相应的信息
// 系统配置
const config = {
// 请求地址
hostUrl: "wss://tts-api.xfyun.cn/v2/tts",
host: "tts-api.xfyun.cn",
//在控制台-我的应用-在线语音合成(流式版)获取
appid: "XXXXXXX",
//在控制台-我的应用-在线语音合成(流式版)获取
apiSecret: "XXXXXXXXX",
//在控制台-我的应用-在线语音合成(流式版)获取
apiKey: "XXXXXX",
uri: "/v2/tts",
}
每次合成是需设置参数
// 传输数据
function send(text) {
let frame = {
// 填充common
"common": {
"app_id": config.appid
},
// 填充business
"business": {
"aue": "lame",
"sfl": 1, //存储为Mp3格式
"auf": "audio/L16;rate=16000",
"vcn": "x2_chaoge", //发音人,讯飞提供了基础发音人(免费)、特色发音人
"tte": "UTF8",
"speed":40
},
// 填充data
"data": {
"text": Buffer.from(text).toString('base64'),
"status": 2
}
}
ws.send(JSON.stringify(frame))
}
- 将待合成的文本内容,复制到
script.txt
脚本文件中
示例如下:
使用讯飞语音合成接口,批量合成Mp3格式语音文件
主要基于科大讯飞语音合成接口,实现了脚本文件内文字的批量合成,并保存为Mp3格式的语音文件
-
node tts-ws-node.js
执行程序,控制台会输出合成情况信息
- 待执行结束后,在
output
文件中就生成了相应的语音文件
最后 🙌
已将工程代码传到了码云上欢迎大家白嫖
好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~