概述Index-TTS2 同步语音合成 API 是一款强大的语音合成接口支持文件上传功能让您可以生成具备特定情感基调和专属音色的语音内容。该接口具有以下特点个性化音色通过上传说话人音色参考音频生成具有个人特色的语音情感控制支持多种情感控制方式包括情感音频、情绪向量和情感文本流式输出默认启用流式输出满足实时语音合成需求高可用性配备多个算力接口保障接口调用的稳定性接口基本信息在开始使用之前让我们先了解接口的基本配置项目配置信息接口地址https://www.yuntts.com/api/v1/indextts2_infer请求方法POST认证方式Authorization: Bearer API_KEYContent-Typemultipart/form-data如何获取 API Key您需要先注册云声配音账号并在 yuntts.com 平台上申请 API Key申请成功后会获得一个唯一的密钥用于身份验证。请求参数详解核心参数参数名类型必填默认值描述inputstring是-要合成的文本内容speedfloat否1.0语速范围 0.1-4.0sample_rateint否22050目标音频采样率支持 16000、22050、24000gainfloat否1.0音量范围 0.1-10.0interval_silenceint否200句子间隔静音 (ms)use_randomboolean否false启用情绪随机性stream_modeboolean否true启用流式输出情感控制参数参数名类型必填默认值描述emo_control_methodint否0情绪控制方式0无情感参考1基于情绪音频2基于情绪向量3基于情绪文本emo_alphafloat否-情感权重范围 0.0-1.0仅在 emo_control_method 不为 0 时有效emo_vecarray否-情绪向量8个维度仅在 emo_control_method2 时有效emo_textstring否-情感文本仅在 emo_control_method3 时有效文件参数参数名类型必填默认值描述spk_audio_filefile否-说话人音色参考音频支持 wav、mp3 格式最大 20MBemo_audio_filefile否-情感参考音频支持 wav、mp3 格式最大 10MB仅在 emo_control_method1 时必填情绪向量维度说明当使用emo_control_method2时您需要提供一个包含 8 个维度的情绪向量序号维度名称说明1高兴表示愉快、快乐的情绪2生气表示愤怒、恼火的情绪3悲伤表示难过、悲伤的情绪4害怕表示恐惧、害怕的情绪5厌恶表示讨厌、厌恶的情绪6忧郁表示忧郁、消沉的情绪7惊讶表示惊讶、震惊的情绪8平静表示平静、安宁的情绪重要提示每个维度的值范围为 [0, 1.2]且所有维度的值相加不能大于 1.5。示例表达高兴的情绪向量[0.8,0.0,0.0,0.0,0.0,0.0,0.0,0.2]快速开始请求示例1. 无情感参考 (emo_control_method0)这是最简单的使用方式不需要控制情感只需要提供文本和可选的音色参考音频。curl-XPOSThttps://www.yuntts.com/api/v1/indextts2_infer\-HAuthorization: Bearer YOUR_API_KEY\-Finput你好欢迎使用 Index-TTS2 语音合成服务\-Fspeed1.0\-Femo_control_method0\-Fspk_audio_filespeaker.wav2. 基于情绪音频 (emo_control_method1)通过上传一段带有特定情感的音频作为参考让合成的语音具有相同的情感基调和语气。curl-XPOSThttps://www.yuntts.com/api/v1/indextts2_infer\-HAuthorization: Bearer YOUR_API_KEY\-Finput你好欢迎使用 Index-TTS2 语音合成服务\-Fspeed1.0\-Femo_control_method1\-Femo_alpha0.6\-Fspk_audio_filespeaker.wav\-Femo_audio_fileemotion.wav3. 基于情绪向量 (emo_control_method2)使用8维情绪向量精确控制语音的情感表现。curl-XPOSThttps://www.yuntts.com/api/v1/indextts2_infer\-HAuthorization: Bearer YOUR_API_KEY\-Finput你好欢迎使用 Index-TTS2 语音合成服务\-Fspeed1.0\-Femo_control_method2\-Femo_vec[0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2]\-Femo_alpha0.6\-Fspk_audio_filespeaker.wav4. 基于情绪文本 (emo_control_method3)最简便的情感控制方式直接用文字描述想要的情感。curl-XPOSThttps://www.yuntts.com/api/v1/indextts2_infer\-HAuthorization: Bearer YOUR_API_KEY\-Finput你好欢迎使用 Index-TTS2 语音合成服务\-Fspeed1.0\-Femo_control_method3\-Femo_text开心\-Femo_alpha0.6\-Fspk_audio_filespeaker.wavJavaScript 前端实现以下是在 Web 前端使用该 API 的完整示例// 构建表单数据constformDatanewFormData();formData.append(input,你好欢迎使用 Index-TTS2 语音合成服务);formData.append(response_format,mp3);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 是从文件输入获取的文件对象// 发送请求constresponseawaitfetch(https://www.yuntts.com/api/v1/indextts2_infer,{method:POST,headers:{Authorization:Bearer YOUR_API_KEY},body:formData});// 解析响应constdataawaitresponse.json();if(response.ok){console.log(合成成功:,data);console.log(音频URL:,data.data.audio_url);}else{console.error(合成失败:,data.message);}Python 实现示例对于后端开发以下是使用 Python requests 库的完整示例importrequests urlhttps://www.yuntts.com/api/v1/indextts2_inferheaders{Authorization:Bearer YOUR_API_KEY}# 准备表单数据data{input:你好欢迎使用 Index-TTS2 语音合成服务,response_format:mp3,speed:1.0,emo_control_method:3,emo_text:开心,emo_alpha:0.6}# 准备文件数据files{spk_audio_file:open(speaker.wav,rb)}# 发送请求responserequests.post(url,headersheaders,datadata,filesfiles)# 处理响应ifresponse.status_code200:resultresponse.json()print(合成成功!)print(f音频URL:{result[data][audio_url]})else:resultresponse.json()print(f合成失败:{result[message]})# 关闭文件files[spk_audio_file].close()响应格式详解流式输出模式当stream_modetrue时接口直接返回音频二进制数据您可以直接播放或保存。非流式输出模式当stream_modefalse时接口返回 JSON 格式的响应成功响应{code:200,message:合成成功,data:{audio_url:https://www.yuntts.com/wp-content/uploads/audio/processed/indextts_infer_5e8f9a_1678901234.mp3,format:mp3,char_count:15,points_deducted:0.01}}失败响应{code:400,message:情绪向量无效必须包含8个维度,data:null}错误码说明错误码描述解决方案401未授权API密钥无效或缺失检查 API Key 是否正确400请求参数错误检查文本是否为空、情绪向量格式等403余额不足请充值账户余额500服务器内部错误稍后重试或联系技术支持使用注意事项API 密钥安全请妥善保管您的 API 密钥不要在前端代码中直接暴露。建议通过后端服务代理 API 请求。文件大小限制说话人音色参考音频最大 20MB情感参考音频最大 10MB文本长度单次合成文本建议不超过 600 字符。情绪向量验证确保提供的情绪向量包含 8 个维度且每个维度的值在有效范围内0-1.2总和不超过 1.5。情感音频必填性当情绪控制方式为 1基于情绪音频时必须提供情感参考音频。流式输出优势默认启用流式输出可实时返回音频流提供更好的用户体验。计费说明项目说明计费单位按合成文本的字符数计费计费规则根据用户类型应用不同折扣最低扣费0.01 元字符计算汉字按 2 个字符计算其他字符按 1 个字符计算示例应用场景1. 个性化语音合成上传说话人音色参考音频生成具有个人特色的语音适用于有声书录制播客制作个性化语音助手2. 情感语音合成通过情绪向量或情感参考音频生成具有特定情感的语音适用于游戏角色配音动画配音情感化客服3. 多媒体内容制作为视频、动画等多媒体内容生成配音提高内容生产效率。4. 智能助手为智能助手添加个性化的语音回应提升用户体验。前端参考实现文档中包含了一个完整的前端测试页面实现使用 Bootstrap 5 构建具有以下功能拖拽上传音频文件音频波形可视化完整的参数配置界面流式和非流式输出支持实时合成状态显示您可以将该 HTML 保存到本地直接运行测试。总结Index-TTS2 同步语音合成 API 提供了丰富的功能和灵活的配置选项让您能够轻松实现高质量的语音合成。无论是个性化音色、情感控制还是实时流式输出都能满足您的各种应用需求。现在您已经了解了 API 的所有功能和使用方法赶快开始您的语音合成之旅吧