node.js使用腾讯语音合成,给出示例
时间: 2023-11-07 22:24:10 浏览: 223
语音合成demo
5星 · 资源好评率100%
以下是一个使用腾讯云语音合成的 Node.js 示例代码:
const fs = require('fs');
const crypto = require('crypto');
const request = require('request');
// 替换为你的 SecretId 和 SecretKey
const SecretId = 'your-secret-id';
const SecretKey = 'your-secret-key';
// 替换为你要语音合成的文本和语音参数
const text = '你好,欢迎使用腾讯云语音合成服务!';
const voiceType = 1; // 语音类型,1为女声,2为男声
const speed = 0; // 语速,范围:-2到2,默认为0
const volume = 0; // 音量,范围:0到10,默认为0
const aht = 0; // Aht(降低说话的速度和语调),范围:-24到24,默认为0
const apc = 58; // APC(调整音高),范围:-96到96,默认为58
// 生成签名
function sign(str, secretKey) {
const hmac = crypto.createHmac('sha1', secretKey);
return hmac.update(str).digest('base64');
}
// 发送请求
function sendRequest(url, params, callback) {
const options = {
url: url,
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
form: params
};
request(options, function(err, res, body) {
if (err) {
callback(err);
} else {
callback(null, body);
}
});
}
// 获取当前时间戳
const timestamp = Math.floor(Date.now() / 1000);
// 构造请求参数
const params = {
Action: 'TextToVoice',
Text: text,
SessionId: 'test',
ModelType: 1,
VoiceType: voiceType,
Speed: speed,
Volume: volume,
Aht: aht,
Apc: apc,
RequestData: JSON.stringify({
Text: text,
SessionId: 'test',
ModelType: 1,
VoiceType: voiceType,
Speed: speed,
Volume: volume,
Aht: aht,
Apc: apc
}),
Version: '2019-08-23',
Timestamp: timestamp,
Nonce: Math.round(Math.random() * 65535)
};
// 生成签名并添加到请求参数中
const strToSign = Object.keys(params)
.sort()
.map(key => `${key}=${encodeURIComponent(params[key])}`)
.join('&');
params.Signature = sign(strToSign, SecretKey);
// 发送请求并保存语音文件
sendRequest(
'https://tts.tencentcloudapi.com/',
params,
function(err, res) {
if (err) {
console.error(err);
} else {
const result = JSON.parse(res);
if (result.Response && result.Response.Audio) {
const audioData = Buffer.from(result.Response.Audio, 'base64');
fs.writeFileSync('output.mp3', audioData);
console.log('语音文件已保存为 output.mp3');
} else {
console.error(result.Response.Error || '语音合成失败');
}
}
}
);
阅读全文