接口概述
本接口兼容OpenAI TTS接口规范,支持通过HTTP POST请求将文本转换为高质量语音,支持多种模型、音色、音频格式配置,同时兼容主流国产模型(如IndexTTS、ChatTTS、CosyVoice等)的扩展参数,满足不同场景下的语音合成需求。
支持模型
| 模型名称 |
说明 |
| Duix.Heygem |
硅基智能 |
| MegaTTS3 |
字节跳动与浙江大学合作开发 |
| fish-speech-1.2-sft |
Fish Speech |
| GLM-TTS |
智谱 GLM TTS |
| FunAudioLLM-CosyVoice-300M |
阿里 CosyVoice |
| Step-Audio-TTS-3B |
Stepfun-AI |
| IndexTTS-2 |
哔哩哔哩 |
| ChatTTS |
ChatTTS |
| CosyVoice2 |
阿里 CosyVoice v2 |
| IndexTTS-1.5 |
哔哩哔哩 |
| MiniMax/speech-2.8-hd |
MiniMax 高清 TTS |
| MiniMax/speech-02-hd |
MiniMax 高清 TTS |
| MiniMax/speech-2.8-turbo |
MiniMax 快速 TTS |
| MiniMax/speech-02-turbo |
MiniMax 快速 TTS |
| cosyvoice-v3.5-plus |
CosyVoice v3.5 增强版 |
| cosyvoice-v3.5-flash |
CosyVoice v3.5 快速版 |
| cosyvoice-v3-plus |
CosyVoice v3 增强版 |
| cosyvoice-v3-flash |
CosyVoice v3 快速版 |
| cosyvoice-v2 |
CosyVoice v2 |
| qwen3-tts-vd-2026-01-26 |
通义 TTS 语音对话 |
| qwen3-tts-vc-2026-01-22 |
通义 TTS 语音克隆 |
| qwen3-tts-flash |
通义 TTS 快速版 |
请求地址
本接口兼容 OpenAI 的接口规范,可直接用 OpenAI SDK 进行调用。
POST https://www.yuntts.com/api/v1/audio/speech
请求头
| 参数名 |
类型 |
必填 |
说明 |
| Content-Type |
string |
是 |
application/json |
| Authorization |
string |
是 |
Bearer {API_KEY} |
请求参数
IndexTTS-1.5
| 参数名 |
说明 |
示例值 |
| input |
待合成语音的文本 |
这是一段测试文本 |
| model |
语音合成模型 |
IndexTTS-1.5 |
| prompt_audio_url |
声音参考音频链接 |
https://www.yuntts.com/tools/tts/1769446289.mp3 |
| voice |
音色 |
alloy |
ChatTTS
| 参数名 |
说明 |
示例值 |
| input |
需要合成的文本 |
这是一段测试文本 |
| model |
语音合成模型 |
ChatTTS |
| voice |
音色 |
alloy |
| prompt |
口语化风格控制 |
[oral_1] |
| temperature |
生成随机性 |
0.2 |
| top_P |
核采样概率 |
0.7 |
| top_K |
候选词数量 |
20 |
IndexTTS-2
| 参数名 |
说明 |
示例值 |
| input |
待合成语音文本 |
这是一段测试文本 |
| model |
语音合成模型 |
IndexTTS-2 |
| voice |
音色 |
alloy |
| prompt_audio_url |
声音参考音频链接 |
https://www.yuntts.com/jay_prompt.wav |
| prompt_text |
参考音频对应文本 |
对我来讲是一种荣幸,但是也是压力蛮大的。不过我觉得是一种呃很好的一个挑战。 |
| emo_audio_prompt_url |
情感参考音频链接 |
https://www.yuntts.com/emo_sad.wav |
| emo_alpha |
情感强度系数 |
0.5 |
CosyVoice2-0.5B
| 参数名 |
说明 |
示例值 |
| input |
待合成语音的文本 |
这是一段测试文本 |
| model |
语音合成模型 |
CosyVoice2 |
| voice |
音色 |
alloy |
| prompt_wav_url |
零样本参考音频链接 |
https://www.yuntts.com//prompt.wav |
| prompt_text |
参考音频对应的文本 |
希望你以后能够做的比我还好呦。 |
| instruct_text |
风格指令描述 |
带有粤语口音,语速适中 |
Step-Audio-TTS-3B
| 参数名 |
说明 |
示例值 |
| input |
待合成语音文本 |
这是一段测试文本 |
| model |
语音合成模型 |
Step-Audio-TTS-3B |
| voice |
音色 |
alloy |
| prompt_audio_url |
参考音色音频链接 |
https://www.yuntts.com//prompt.wav |
| prompt_text |
参考音频对应文本 |
我来测试 |
fish-speech-1.2-sft
| 参数名 |
说明 |
示例值 |
| input |
待合成语音文本 |
这是一段测试文本 |
| model |
语音合成模型 |
fish-speech-1.2-sft |
| voice |
音色 |
alloy |
| voice_url |
音色模型文件链接(.pt 格式) |
|
MegaTTS3
| 参数名 |
说明 |
示例值 |
| input |
待合成语音文本 |
这是一段测试文本 |
| model |
语音合成模型 |
MegaTTS3 |
| voice |
音色 |
alloy |
| prompt_language |
参考音频语言 |
zh |
| intelligibility_weight |
清晰度权重 |
1.6 |
| similarity_weight |
相似度权重 |
2.5 |
CosyVoice
| 参数名 |
说明 |
示例值 |
| model |
语音合成模型 |
cosyvoice-v3-flash |
| text |
待合成语音文本 |
这是一段测试文本 |
| voice |
音色 |
longanyang |
| format |
音频格式 |
wav |
| sample_rate |
采样率 |
24000 |
MiniMax
| 参数名 |
说明 |
示例值 |
| model |
语音合成模型 |
MiniMax/speech-2.8-hd |
| text |
待合成语音文本 |
今天是不是很开心呀(laughs),当然了! |
| voice_id |
音色ID |
male-qn-qingse |
| speed |
语速 |
1 |
| vol |
音量 |
1 |
| pitch |
音调 |
0 |
| emotion |
情感 |
happy |
| sample_rate |
音频采样率 |
32000 |
| bitrate |
音频比特率 |
128000 |
| format |
音频格式 |
mp3 |
| channel |
音频声道数 |
1 |
| tone |
自定义读音字典 |
处理/(chu3)(li3)、危险/dangerous |
| subtitle_enable |
是否开启字幕 |
false |
Qwen-TTS
| 参数名 |
说明 |
示例值 |
| model |
语音合成模型 |
qwen3-tts-flash |
| text |
待合成语音文本 |
这是一段测试文本 |
| voice |
音色 |
Cherry |
| instructions |
语音风格指令(仅指令模型支持) |
语速较快,带有明显的上扬语调,适合介绍时尚产品。 |
| optimize_instructions |
是否优化指令(仅指令模型支持) |
True |
响应格式
成功响应
Content-Type: audio/mpeg (或其他音频格式)
响应体为二进制音频数据。
错误响应
{
"code": 400,
"error": "rest_invalid_param",
"message": "input/inputs/text is required"
}
计费说明
- 字符计算: 接口自动计算请求文本的字符数(支持中文、英文、标点符号)
- 价格配置: 不同模型有不同的价格,具体可查看语音合成服务计费说明
- 用户折扣: VIP 用户享受 9 折优惠,BoosVIP 用户享受 8 折优惠
- 最低扣费: 每次请求最低扣费 0.001 元
请求示例
Python 请求示例
from openai import OpenAI
client = OpenAI(
base_url="https://www.yuntts.com/api/v1",
api_key="YOUR_API_KEY"
)
response = client.audio.speech.create(
input="你好,欢迎使用语音合成服务。今天天气真不错!",
model="IndexTTS-2",
response_format="mp3"
)
# 保存音频文件
with open("output.mp3", "wb") as f:
f.write(response.content)
cURL 请求示例
curl https://www.yuntts.com/api/v1/audio/speech
-X POST
-H "Content-Type: application/json"
-H "Authorization: Bearer YOUR_API_KEY"
-d '{
"input": "你好,欢迎使用语音合成服务。今天天气真不错!",
"model": "IndexTTS-2",
"response_format": "mp3"
}'
--output output.mp3
PHP 请求示例
<?php
$url = 'https://www.yuntts.com/api/v1/audio/speech';
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer YOUR_API_KEY'
);
$data = array(
'input' => '你好,欢迎使用语音合成服务。今天天气真不错!',
'model' => 'IndexTTS-2',
'response_format' => 'mp3'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);
curl_close($ch);
// 保存音频文件
file_put_contents('output.mp3', $response);
JavaScript (Node.js) 请求示例
const https = require('https');
const fs = require('fs');
const data = JSON.stringify({
input: '你好,欢迎使用语音合成服务。今天天气真不错!',
model: 'IndexTTS-2',
response_format: 'mp3'
});
const options = {
hostname: 'https://www.yuntts.com',
port: 80,
path: '/api/v1/audio/speech',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Length': data.length
}
};
const req = https.request(options, (res) => {
const chunks = [];
res.on('data', (chunk) => chunks.push(chunk));
res.on('end', () => {
const buffer = Buffer.concat(chunks);
fs.writeFileSync('output.mp3', buffer);
});
});
req.write(data);
req.end();
错误码
| 错误码 |
错误信息 |
说明 |
| 400 |
rest_invalid_param |
请求参数错误 |
| 401 |
empty_key / invalid_key |
API 密钥无效 |
| 403 |
insufficient_balance |
余额不足 |
| 500 |
rest_invalid_config |
平台配置错误 |
| 500 |
rest_server_error |
代理请求失败 |
注意事项
- 超时设置: 默认超时时间为 60 秒,如需更长的处理时间请在代理层面调整
- 字符编码: 请确保输入文本为 UTF-8 编码
- 音频格式: 不同平台支持的音频格式可能不同,请根据实际需求选择
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)