上传参考音频
Upload user-provided voice style, which can be in base64 encoding or file format.
modelstringrequired
Predefined voice style model name
Example
"FunAudioLLM/CosyVoice2-0.5B"customNamestringrequired
User-defined voice style name
Example
"your-voice-name"textstringrequired
Corresponding text content for the audio
Example
"在一无所知中, 梦里的一天结束了,一个新的轮回便会开始"audiostring
Audio file encoded in base64 with the header format of data:audio/mpeg;base64
Example
"data:audio/mpeg;base64,aGVsbG93b3JsZA=="modelstringrequired
Predefined voice style model name
Example
"FunAudioLLM/CosyVoice2-0.5B"customNamestringrequired
User-defined voice style name
Example
"your-voice-name"textstringrequired
Corresponding text content for the audio
Example
"在一无所知中, 梦里的一天结束了,一个新的轮回便会开始"filefile
File to upload
Format
binaryExample
"/path/to/audio.mp3"Response Body
Successful response
TypeScript Definitions
Use the response body type in TypeScript.
uristring
Example
"speech:your-voice-name:xxx:xxx"curl -X POST "https://api.siliconflow.cn/v1/uploads/audio/voice" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@test.mp3" \
-F "model=IndexTeam/IndexTTS-2" \
-F "customName=your-voice-name" \
-F "text=慢工出细活,再给我两分钟,你马上就能见识到超梦分析的厉害了"
import requests
url = "https://api.siliconflow.cn/v1/uploads/audio/voice"
headers = {
"Authorization": "Bearer YOUR_API_KEY" # 从https://cloud.siliconflow.cn/account/ak获取
}
files = {
"file": open("test.mp3", "rb") # 参考音频文件
}
data = {
"model": "IndexTeam/IndexTTS-2", # 模型名称
"customName": "your-voice-name", # 参考音频名称
"text": "慢工出细活,再给我两分钟,你马上就能见识到超梦分析的厉害了" # 参考音频的文字内容
}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.text)
// 使用 FormData 处理文件上传
const formData = new FormData();
// 添加文件
const fileInput = document.querySelector('input[type="file"]');
const file = fileInput.files[0]; // 或者使用 File API 获取文件
formData.append('file', file);
// 添加其他字段
formData.append('model', 'IndexTeam/IndexTTS-2');
formData.append('customName', 'your-voice-name');
formData.append('text', '慢工出细活,再给我两分钟,你马上就能见识到超梦分析的厉害了');
// 发送请求
const apiKey = 'YOUR_API_KEY'; // 替换为你的 API Key
const url = 'https://api.siliconflow.cn/v1/uploads/audio/voice';
fetch(url, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`
},
body: formData
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => {
console.log('Success:', data);
})
.catch(error => {
console.error('Error:', error);
});
curl -X POST "https://api.siliconflow.cn/v1/uploads/audio/voice" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "IndexTeam/IndexTTS-2",
"customName": "your-voice-name",
"audio": "data:audio/mpeg;base64,'$(base64 -i x1.mp3 | tr -d '\n')'",
"text": "慢工出细活,再给我两分钟,你马上就能见识到超梦分析的厉害了"
}'
import requests
import json
import base64
url = "https://api.siliconflow.cn/v1/uploads/audio/voice"
headers = {
"Authorization": "Bearer YOUR_API_KEY" , # 从https://cloud.siliconflow.cn/account/ak获取
"Content-Type": "application/json"
}
data = {
"model": "IndexTeam/IndexTTS-2", # 模型名称
"customName": "your-voice-name", # 用户自定义的音频名称
"audio": "data:audio/mpeg;base64," + base64.b64encode(open("x1.mp3", "rb").read()).decode("utf-8"), # 参考音频的 base64 编码
"text": "慢工出细活,再给我两分钟,你马上就能见识到超梦分析的厉害了" # 参考音频的文字内容
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
const fs = require('fs');
const axios = require('axios'); // 需要先安装: npm install axios
async function uploadAudio() {
const url = "https://api.siliconflow.cn/v1/uploads/audio/voice";
// 读取音频文件并转换为base64
const audioBuffer = fs.readFileSync('x1.mp3');
const base64Audio = audioBuffer.toString('base64');
const headers = {
"Authorization": "Bearer YOUR_API_KEY", // 从https://cloud.siliconflow.cn/account/ak获取
"Content-Type": "application/json"
};
const data = {
"model": "IndexTeam/IndexTTS-2", // 模型名称
"customName": "your-voice-name", // 用户自定义的音频名称
"audio": "data:audio/mpeg;base64," + base64Audio, // 参考音频的 base64 编码
"text": "慢工出细活,再给我两分钟,你马上就能见识到超梦分析的厉害了" // 参考音频的文字内容
};
try {
const response = await axios.post(url, data, { headers });
console.log(response.data);
} catch (error) {
console.error('Error:', error.response ? error.response.data : error.message);
}
}
uploadAudio();
{
"uri": "speech:your-voice-name:xxx:xxx"
}{
"code": 20012,
"message": "string",
"data": "string"
}"Invalid token""Forbidden""404 page not found"{
"message": "Request was rejected due to rate limiting. If you want more, please contact contact@siliconflow.cn. Details:TPM limit reached.",
"data": "string"
}{
"code": 50505,
"message": "Model service overloaded. Please try again later.",
"data": "string"
}"string"