接口概述
Index-TTS2 同步语音合成 API 是一款支持文件上传的语音合成接口,用户可通过上传说话人音色参考音频与情感参考音频,生成具备特定情感基调与专属音色的语音内容。该接口支持流式输出,可满足实时语音合成需求;同时,考虑到网站用户量大、接口调用频次高可能导致的调用失败问题,已新增其他算力接口作为补充,保障接口调用的稳定性与流畅性。
接口信息
- 接口地址: https://www.jiaozitts.com/api/v1/indextts`
- 请求方法:
POST - 认证方式:
Authorization: Bearer <API_KEY> - Content-Type:
multipart/form-data
请求参数
| 参数名 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
input |
string | 是 | - | 要合成的文本 |
speed |
float | 否 | 1.0 |
语速,范围 0.1-4.0 |
sample_rate |
int | 否 | 24000 |
目标音频采样率,支持 16000、22050、24000 |
gain |
float | 否 | 1.0 |
音量,范围 0.1-10.0 |
interval_silence |
int | 否 | 200 |
句子间隔静音 (ms) |
use_random |
boolean | 否 | false |
启用情绪随机性 |
stream_mode |
boolean | 否 | true |
启用流式输出 |
emo_control_method |
int | 否 | 0 |
情绪控制方式:0=无情感参考,1=基于情绪音频,2=基于情绪向量,3=基于情绪文本 |
emo_alpha |
float | 否 | - | 情感权重,范围 0.0-1.0,仅在 emo_control_method 不为 0 时有效 |
emo_vec |
array | 否 | - | 情绪向量,8个维度:[高兴,生气,悲伤,害怕,厌恶,忧郁,惊讶,平静],每个维度范围 0-1.2,总和不超过1.5,仅在 emo_control_method=2 时有效 |
emo_text |
string | 否 | - | 情感文本,仅在 emo_control_method=3 时有效 |
spk_audio_file |
file | 否 | - | 说话人音色参考音频,支持 wav、mp3 格式,最大 20MB |
emo_audio_file |
file | 否 | - | 情感参考音频,支持 wav、mp3 格式,最大 10MB,仅在 emo_control_method=1 时必填 |
情绪向量维度说明
情绪向量包含 8 个维度,顺序如下:
- 高兴 - 表示愉快、快乐的情绪
- 生气 - 表示愤怒、恼火的情绪
- 悲伤 - 表示难过、悲伤的情绪
- 害怕 - 表示恐惧、害怕的情绪
- 厌恶 - 表示讨厌、厌恶的情绪
- 忧郁 - 表示忧郁、消沉的情绪
- 惊讶 - 表示惊讶、震惊的情绪
- 平静 - 表示平静、安宁的情绪
每个维度的值范围为 [0, 1.2],且所有维度的值相加不能大于 1.5。
请求示例
案例1:无情感参考 (emo_control_method=0)
curl -X POST "https://www.yuntts.com/api/v1/indextts"
-H "Authorization: Bearer YOUR_API_KEY"
-F "input=你好,欢迎使用 Index-TTS2 语音合成服务"
-F "speed=1.0"
-F "emo_control_method=0"
-F "spk_audio_file=@speaker.wav"
案例2:基于情绪音频 (emo_control_method=1)
curl -X POST "https://www.yuntts.com/api/v1/indextts"
-H "Authorization: Bearer YOUR_API_KEY"
-F "input=你好,欢迎使用 Index-TTS2 语音合成服务"
-F "speed=1.0"
-F "emo_control_method=1"
-F "emo_alpha=0.6"
-F "spk_audio_file=@speaker.wav"
-F "emo_audio_file=@emotion.wav"
案例3:基于情绪向量 (emo_control_method=2)
curl -X POST "https://www.yuntts.com/api/v1/indextts"
-H "Authorization: Bearer YOUR_API_KEY"
-F "input=你好,欢迎使用 Index-TTS2 语音合成服务"
-F "speed=1.0"
-F "emo_control_method=2"
-F "emo_vec=[0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2]"
-F "emo_alpha=0.6"
-F "spk_audio_file=@speaker.wav"
案例4:基于情绪文本 (emo_control_method=3)
curl -X POST "https://www.yuntts.com/api/v1/indextts"
-H "Authorization: Bearer YOUR_API_KEY"
-F "input=你好,欢迎使用 Index-TTS2 语音合成服务"
-F "speed=1.0"
-F "emo_control_method=3"
-F "emo_text=开心"
-F "emo_alpha=0.6"
-F "spk_audio_file=@speaker.wav"
使用 JavaScript 发送请求
// 构建表单数据
const formData = new FormData();
formData.append('input', '你好,欢迎使用 Index-TTS2 语音合成服务');
formData.append('speed', '1.0');
formData.append('emo_control_method', '2');
formData.append('emo_vec', JSON.stringify([0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2]));
formData.append('emo_alpha', '0.6');
formData.append('spk_audio_file', spkAudioFile); // spkAudioFile 是从文件输入获取的文件对象
// 发送请求
const response = await fetch('https://www.yuntts.com/api/v1/indextts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
},
body: formData
});
// 解析响应
const data = await response.json();
if (response.ok) {
console.log('合成成功:', data);
console.log('音频URL:', data.data.audio_url);
} else {
console.error('合成失败:', data.message);
}
使用 Python 发送请求 (基于情绪文本)
import requests
url = "https://www.yuntts.com/api/v1/indextts"
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
# 准备表单数据
data = {
"input": "你好,欢迎使用 Index-TTS2 语音合成服务",
"speed": "1.0",
"emo_control_method": "3",
"emo_text": "开心",
"emo_alpha": "0.6"
}
# 准备文件数据
files = {
"spk_audio_file": open("speaker.wav", "rb")
}
# 发送请求
response = requests.post(url, headers=headers, data=data, files=files)
# 处理响应
if response.status_code == 200:
result = response.json()
print("合成成功!")
print(f"音频URL: {result['data']['audio_url']}")
else:
result = response.json()
print(f"合成失败: {result['message']}")
# 关闭文件
files["spk_audio_file"].close()
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。


评论(0)