一、接口概述
IndexTTS-1.5 是一款高品质语音合成模型,只需上传参考音频即可快速精准复刻音色,轻松生成专属个性化语音;云声配音现已上线 IndexTTS-1.5 官方语音合成接口,可直接调用使用。
模型介绍
IndexTTS-1.5 是 IndexTTS 团队于 2025 年 5 月 14 日发布的一款基于 GPT 风格 Transformer 架构的先进开源文本转语音模型,它在 XTTS 和 Tortoise 技术基础上进行了深度优化,采用 Conformer 条件编码器、GPT 声学模型和 BigVGAN2 声码器的核心架构,经过数万小时语音数据训练,在多项基准测试中表现优于 XTTS、CosyVoice2、Fish-Speech 和 F5-TTS 等主流 TTS 系统。该版本显著提升了模型稳定性和英语语音合成能力,支持高质量中英文双语合成,具备零样本语音克隆功能,仅需 5-10 秒参考音频即可实现高相似度的语音复制,主观评价平均得分达 4.01。它创新性地引入了中文字符 - 拼音混合建模方法,用户可通过拼音精确纠正多音字发音,同时支持通过标点符号灵活控制任意位置的停顿,断句准确率高达 98.6%。IndexTTS-1.5 对硬件要求友好,6-8G 显存即可流畅运行,推理速度快,长文本生成连贯性出色,完全开源的特性使其在内容创作、智能客服、无障碍阅读等多个领域得到广泛应用。
接口特性
| 特性 | 说明 |
|---|---|
| 接口类型 | REST API |
| 请求方式 | POST |
| 音色克隆 | 支持通过参考音频克隆音色 |
| 计费方式 | 按次计费 |
其他说明
本站还提供了:IndexTTS-2 语音合成同步接口文档
二、接入准备
2.1 获取访问凭证
在使用接口前,您需要先获取 API 访问凭证:
- 登录系统后台
- 进入「API 设置」页面
- 获取
Authorization Token
2.2 接口地址
POST https://www.yuntts.com/api/v1/indextts-1.5
三、请求参数
3.1 请求头
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | Bearer Token |
| Content-Type | string | 是 | application/json |
示例:
Authorization: Bearer sk-5313cff75c508b8093b457a2710cc030
Content-Type: application/json
3.2 请求体
{
"input": "专注Ai人工智能 声音克隆、图片生成、视频生成领域",
"prompt_audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav"
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 需要合成语音的文本,最大1000字符 |
| prompt_audio_url | string | 是 | 说话人音色参考音频URL |
四、响应说明
4.1 成功响应
当请求成功时,接口直接返回音频二进制数据:
| 响应头 | 说明 |
|---|---|
| Content-Type | audio/mp3 |
| Content-Length | 音频数据字节数 |
| X-Characters | 计费字符数 |
| X-Cost | 本次费用(元) |
| X-Task-Id | 任务ID |
4.2 失败响应
当请求失败时,返回 JSON 格式错误信息:
{
"code": 400,
"error": "empty_text",
"message": "请输入要合成的文本"
}
五、代码示例
5.1 cURL
curl -X POST https://www.yuntts.com/api/v1/indextts-1.5
-H "Authorization: Bearer sk-5313cff75c508b8093b457a2710cc030"
-H "Content-Type: application/json"
-d '{
"input": "专注Ai人工智能 声音克隆、图片生成、视频生成领域",
"prompt_audio_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav"
}'
--output output.mp3
5.2 JavaScript (Fetch)
async function synthesizeSpeech(text, audioUrl) {
const response = await fetch('https://www.yuntts.com/api/v1/indextts-1.5', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk-5313cff75c508b8093b457a2710cc030',
'Content-Type': 'application/json'
},
body: JSON.stringify({
input: text,
prompt_audio_url: audioUrl
})
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.message);
}
const blob = await response.blob();
return URL.createObjectURL(blob);
}
// 使用示例
const audioUrl = await synthesizeSpeech(
'专注Ai人工智能 声音克隆、图片生成、视频生成领域',
'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav'
);
5.3 Python
import requests
def synthesize_speech(text, audio_url, token):
url = 'https://www.yuntts.com/api/v1/indextts-1.5'
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
data = {
'input': text,
'prompt_audio_url': audio_url
}
response = requests.post(url, headers=headers, json=data)
if response.status_code != 200:
error = response.json()
raise Exception(error['message'])
return response.content
# 使用示例
audio_data = synthesize_speech(
'专注Ai人工智能 声音克隆、图片生成、视频生成领域',
'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav',
'sk-5313cff75c508b8093b457a2710cc030'
)
with open('output.mp3', 'wb') as f:
f.write(audio_data)
5.4 PHP
<?php
function synthesizeSpeech($text, $audioUrl, $token) {
$url = 'https://www.yuntts.com/api/v1/indextts-1.5';
$data = json_encode([
'input' => $text,
'prompt_audio_url' => $audioUrl
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
$error = json_decode($response, true);
throw new Exception($error['message']);
}
return $response;
}
// 使用示例
$audioData = synthesizeSpeech(
'专注Ai人工智能 声音克隆、图片生成、视频生成领域',
'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav',
'sk-5313cff75c508b8093b457a2710cc030'
);
file_put_contents('output.mp3', $audioData);
?>
六、错误码说明
| HTTP状态码 | 错误码 | 说明 |
|---|---|---|
| 400 | empty_text | 文本内容为空 |
| 400 | missing_prompt_audio | 缺少参考音频URL |
| 401 | unauthorized | 未授权或Token无效 |
| 402 | insufficient_balance | 余额不足 |
| 405 | method_not_allowed | 不支持的请求方法 |
| 500 | transaction_failed | 服务端错误 |
七、计费说明
7.1 计费规则
| 用户类型 | 单价(元/次) |
|---|---|
| 普通用户 | 0.03 |
| VIP用户 | 0.02 |
| BossVIP用户 | 0.02 |
7.2 余额查询
在调用接口前,建议先检查用户余额:
// 伪代码示例
const balance = await getUserBalance(userId);
const cost = isVIP ? 0.02 : 0.03;
if (balance < cost) {
throw new Error('余额不足');
}
八、注意事项
- 参考音频要求:
- 格式:WAV 或 MP3
- 时长:建议3-10秒
- 内容:清晰的语音样本
- 文本长度限制:最大1000字符
- 音频格式:接口返回 MP3 格式音频
- 错误处理:当接口返回非200状态码时,需检查响应体中的错误信息
- 重试机制:建议在网络异常时实现重试逻辑
九、FAQ
Q1:如何获取参考音频URL?
A:您可以上传音频文件到云存储(如阿里云OSS、腾讯云COS等),获取公开访问URL。
Q2:支持哪些语言?
A:目前主要支持中文和英文语音合成。
Q3:音频质量如何?
A:IndexTTS-1.5 采用先进的语音合成技术,音频质量高,音色自然。
Q4:如何处理大文本合成?
A:建议将大文本分段处理,每段建议不超过1000字符。
文档版本: v1.0
更新日期: 2026年5月
适用接口: IndexTTS-1.5
官方域名: https://www.yuntts.com


评论(0)