创建文本转语音请求
根据输入文本生成音频。接口生成的数据为音频二进制数据,需要用户自行处理。
添加 Header 'Authorization: Bearer {账户 API Key}' 进行鉴权
In: header
MOSS-TTSD(text to spoken dialogue)是一个开源的双语对话语音合成模型,支持中文和英文。它可以将两位说话人之间的对话脚本转换为自然、富有表现力的对话语音。MOSS-TTSD 支持声音克隆和长单会话语音生成,非常适合 AI 播客制作。
为更好地提升服务质量,我们会对本服务提供的模型进行定期变更,包括但不限于模型上下线和模型服务能力的调整。在可行的情况下,我们会通过公告或消息推送等适当方式通知您此类变更。
"fnlp/MOSS-TTSD-v0.5"对话文本使用说话人标签来标识轮次: [S1]:表示说话人 1 正在说话 [S2]:表示说话人 2 正在说话
1 <= length <= 128000"[S1]Hello, how are you today?[S2]I'm doing great, thanks for asking![S1]That's wonderful to hear "要生成的最大 token 数量。输入 + 输出不超过 32k token。
voice 字段和 references 字段互斥。如需使用脚本化对话,需要通过 references 字段传入两种音色。脚本化对话仅适用于 MOSS-TTSD 模型。
voice 字段目前不支持两种音色。如需上传两种音色,请使用 references 字段。
"fnlp/MOSS-TTSD-v0.5:alex"音频的输出格式。支持的格式有 mp3、opus、wav、pcm
"mp3""mp3" | "opus" | "wav" | "pcm"控制输出采样率。不同音频输出类型的默认值和支持范围如下:opus:支持 48000 Hz。wav、pcm:支持 8000、16000、24000、32000、44100 Hz,默认值为 44100 Hz。mp3:支持 32000、44100 Hz,默认值为 44100 Hz
32000是否使用流式输出
false | true生成音频的语速。可选值范围为 0.25 到 4.0。默认值为 1.0。
1float0.25 <= value <= 4音频增益,用于调整输出音量。取值范围为 -10.0 到 10.0,默认值为 0.0。
float-10 <= value <= 10对应的模型名称。为更好地提升服务质量,我们会对本服务提供的模型进行定期变更,包括但不限于模型上下线和模型服务能力的调整。在可行的情况下,我们会通过公告或消息推送等适当方式通知您此类变更。
"FunAudioLLM/CosyVoice2-0.5B"对于自然语言指令,请在自然语言描述前添加特殊结束标记 "<|endofprompt|>"。这些描述涵盖情感、语速、角色扮演和方言等方面。对于详细指令,在文本标记之间插入音高变化,使用如 "[laughter]" 和 "[breath]" 之类的标记。此外,我们将音高特征标记应用于短语;例如:Can you say it with a happy emotion? <|endofprompt|> Today is really happy, Spring Festival is coming! I’m so happy, Spring Festival is coming! [laughter] [breath].
1 <= length <= 128000"Can you say it with a happy emotion? <|endofprompt|>I'm so happy, Spring Festival is coming!"voice 字段目前不支持两种音色。如需上传两种音色,请使用 references 字段。
"FunAudioLLM/CosyVoice2-0.5B:alex"voice 字段和 references 字段互斥。
音频的输出格式。支持的格式有 mp3、opus、wav、pcm
"mp3""mp3" | "opus" | "wav" | "pcm"控制输出采样率。不同音频输出类型的默认值和支持范围如下:opus:支持 48000 Hz。wav、pcm:支持 8000、16000、24000、32000、44100 Hz,默认值为 44100 Hz。mp3:支持 32000、44100 Hz,默认值为 44100 Hz
32000是否使用流式输出
生成音频的语速。可选值范围为 0.25 到 4.0。默认值为 1.0。
1float0.25 <= value <= 4音频增益,用于调整输出音量。取值范围为 -10.0 到 10.0,默认值为 0.0。
float-10 <= value <= 10Response Body
根据输入文本生成音频。接口生成的数据为二进制格式,需要用户自行处理。 响应头中包含 x-siliconcloud-trace-id 字段,作为请求的唯一追踪标识,便于日志查询和问题排查。
TypeScript Definitions
Use the response body type in TypeScript.
binary"音频的二进制数据"curl --location 'https://api.siliconflow.cn/v1/audio/speech' \
--header 'Authorization: Bearer sk-xx' \
--header 'Content-Type: application/json' \
--data '{
"model": "fnlp/MOSS-TTSD-v0.5",
"input": "你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦",
"voice": "fnlp/MOSS-TTSD-v0.5:alex",
"response_format": "mp3",
"stream": true
}'
import requests
url = "https://api.siliconflow.cn/v1/audio/speech"
payload = {
"model": "fnlp/MOSS-TTSD-v0.5",
"input": "你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦",
"voice": "fnlp/MOSS-TTSD-v0.5:alex",
"response_format": "mp3",
"stream": True
}
headers = {
"Authorization": "Bearer sk-xx", # 请替换为您的真实 API Key
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
if response.status_code == 200:
# 将流式响应写入文件
with open("output.mp3", "wb") as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
print("音频已成功保存为 output.mp3")
else:
print(f"请求失败,状态码: {response.status_code}")
print(f"错误信息: {response.text}")
const axios = require('axios');
const fs = require('fs');
const url = 'https://api.siliconflow.cn/v1/audio/speech';
const data = {
model: "fnlp/MOSS-TTSD-v0.5",
input: "你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦",
voice: "fnlp/MOSS-TTSD-v0.5:alex",
response_format: "mp3",
stream: true
};
const config = {
method: 'post',
url: url,
headers: {
'Authorization': 'Bearer sk-xx', // 请替换为您的真实 API Key
'Content-Type': 'application/json'
},
data: data,
responseType: 'stream' // 重要:设置响应类型为流
};
axios(config)
.then(function (response) {
// 将流式数据写入文件
const writer = fs.createWriteStream('output.mp3');
response.data.pipe(writer);
writer.on('finish', () => {
console.log('音频已成功保存为 output.mp3');
});
writer.on('error', (err) => {
console.error('写入文件时出错:', err);
});
})
.catch(function (error) {
console.error('请求失败:', error.message);
if (error.response) {
console.error('状态码:', error.response.status);
}
});
"音频的二进制数据"{
"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"