简体中文
当人声分离任务完成时,系统将通过POST请求将结果发送到您提供的回调URL
callBackUrl
{ "code": 200, "msg": "vocal Removal generated successfully.", "data": { "task_id": "5e72d367bdfbe44785e28d72cb1697c7", "vocal_removal_info": { "instrumental_url": "https://tempfile.aiquickdraw.com/v/94322944-2c96-4be3-b7fb-606e3924a8d2_instrumental.mp3", "origin_url": "https://cdn1.suno.ai/549fc4b2-294f-44ea-a35b-419687b07ab9.mp3", "vocal_url": "https://tempfile.aiquickdraw.com/v/94322944-2c96-4be3-b7fb-606e3924a8d2_vocal.mp3" } } }
const express = require('express'); const app = express(); app.use(express.json()); app.post('/vocal-separation-callback', (req, res) => { const { code, msg, data } = req.body; console.log('收到人声分离回调:', { taskId: data.task_id, status: code, message: msg }); if (code === 200) { // 任务成功完成 console.log('人声分离完成'); const vocalInfo = data.vocal_removal_info; if (vocalInfo) { console.log('分离结果:'); console.log(` 原始音频: ${vocalInfo.origin_url}`); console.log(` 纯伴奏: ${vocalInfo.instrumental_url}`); console.log(` 纯人声: ${vocalInfo.vocal_url}`); // 下载分离后的音频文件 const https = require('https'); const fs = require('fs'); const downloadFile = (url, filename) => { if (!url) return; const file = fs.createWriteStream(filename); https.get(url, (response) => { response.pipe(file); file.on('finish', () => { file.close(); console.log(`已保存: ${filename}`); }); }).on('error', (err) => { console.error(`下载失败 ${filename}:`, err.message); }); }; downloadFile(vocalInfo.instrumental_url, `${data.task_id}_instrumental.mp3`); downloadFile(vocalInfo.vocal_url, `${data.task_id}_vocal.mp3`); } } else { // 任务失败 console.log('人声分离失败:', msg); // 处理失败情况... if (code === 400) { console.log('参数错误或音频格式不支持'); } else if (code === 451) { console.log('源音频文件下载失败'); } else if (code === 500) { console.log('服务器内部错误'); } } // 返回200状态码确认收到回调 res.status(200).json({ status: 'received' }); }); app.listen(3000, () => { console.log('回调服务器运行在端口 3000'); });
网络连接问题
服务器响应问题
内容格式问题
音频处理问题