音频上传 API
上传音频文件到服务器,获取音频文件的URL地址,用于后续的语音克隆操作。
请求信息
- 方法:
POST - 端点:
http://8.148.211.142:8080/api/upload/audio - 内容类型:
multipart/form-data
请求参数
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
file | 文件 (二进制) | 是 | 要上传的音频文件。支持的格式包括 WAV、MP3 和 M4A |
api_key | string | 是 | 您的唯一 API 密钥,用于认证和访问 |
响应
成功响应
状态码: 200 OK
{
"success": true,
"audio_url": "https://xiaoditest.oss-cn-hangzhou.aliyuncs.com/audio_uploads/808/1750951190043_lby4d6lwoy_sample.wav",
"file_name": "sample.wav",
"file_size": 1024000
}响应字段说明:
| 字段 | 类型 | 描述 |
|---|---|---|
success | boolean | 上传是否成功 |
audio_url | string | 上传后的音频文件URL地址,可用于语音克隆API |
file_name | string | 原始文件名 |
file_size | number | 文件大小(字节) |
错误响应
| 状态码 | 说明 |
|---|---|
| 400 | 请求参数错误或文件格式不支持 |
| 401 | API密钥无效或权限不足 |
| 413 | 文件大小超过限制 |
| 500 | 服务器内部错误 |
示例请求
cURL 示例
curl --location 'http://8.148.211.142:8080/api/upload/audio' \
--form 'file=@"/path/to/your/audio.wav"' \
--form 'api_key="your_api_key_here"'Windows 路径示例
curl --location 'http://8.148.211.142:8080/api/upload/audio' \
--form 'file=@"C:/Users/Administrator/Desktop/audio/sample.WAV"' \
--form 'api_key="your_api_key_here"'JavaScript 示例
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('api_key', 'your_api_key_here');
fetch('http://8.148.211.142:8080/api/upload/audio', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log('上传成功!');
console.log('音频URL:', data.audio_url);
// 使用 data.audio_url 进行语音克隆
})
.catch(error => console.error('上传失败:', error));Python 示例
import requests
url = 'http://8.148.211.142:8080/api/upload/audio'
# 准备文件和参数
files = {
'file': open('sample.wav', 'rb')
}
data = {
'api_key': 'your_api_key_here'
}
# 发送请求
response = requests.post(url, files=files, data=data)
if response.status_code == 200:
result = response.json()
print(f"上传成功!")
print(f"音频URL: {result['audio_url']}")
else:
print(f"上传失败: {response.status_code}")PHP 示例
<?php
$url = 'http://8.148.211.142:8080/api/upload/audio';
$file = new CURLFile('/path/to/audio.wav');
$data = array(
'file' => $file,
'api_key' => 'your_api_key_here'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result['success']) {
echo "上传成功!\n";
echo "音频URL: " . $result['audio_url'] . "\n";
}
?>使用说明
文件要求
- 支持格式: WAV, MP3, M4A
- 文件大小: 建议不超过 50MB
- 音频质量: 建议使用高质量音频以获得更好的克隆效果
- 音频规格:
- 时长: 5-30秒
- 音质: 清晰无噪音
- 内容: 单人说话,发音清晰
后续使用
上传成功后,您会获得一个 audio_url,可以在以下API中使用:
-
同步语音克隆: 使用
audio_url参数curl -X POST https://aivoiceclonefree.com/api/instant/clone-sync \ -F "audio_url=返回的audio_url" \ -F "text=要合成的文本" \ -F "api_key=your_api_key" \ -F "type=2" -
异步语音克隆: 使用
audio_url参数curl -X POST https://aivoiceclonefree.com/api/instant/create-task \ -F "audio_url=返回的audio_url" \ -F "text=要合成的文本" \ -F "api_key=your_api_key" -
实时语音克隆: 使用
audio_paths参数curl -X GET "http://8.148.211.142:8080/api/instant/clone-get?audio_paths=返回的audio_url&api_key=your_api_key&text=要合成的文本"
最佳实践
安全建议
- API密钥保护: 不要在客户端代码中暴露API密钥
- HTTPS传输: 生产环境建议使用HTTPS传输
- 文件验证: 上传前验证文件格式和大小
性能优化
-
音频预处理:
- 去除背景噪音
- 裁剪到合适长度
- 转换为推荐格式
-
批量上传: 如需上传多个文件,建议间隔请求避免触发限制
-
错误处理: 实现完善的错误处理和重试机制
常见问题
1. 支持哪些音频格式?
支持 WAV、MP3、M4A 格式。推荐使用 WAV 格式以获得最佳音质。
2. 文件大小有限制吗?
建议单个文件不超过 50MB。
3. 上传的文件会保存多久?
上传的文件会永久保存,除非您主动删除。
4. 可以覆盖已上传的文件吗?
每次上传都会生成新的文件URL,不会覆盖原有文件。
5. 上传失败怎么办?
- 检查API密钥是否有效
- 确认文件格式是否支持
- 验证文件大小是否超限
- 检查网络连接是否正常
相关链接
Last updated on