警告
2026.03.02提供V3版本训练接口支持一次训练可以在多款模型上使用,V1版本接口不再迭代。
注意
model_type=1,另外原始音频如果不是中文也必须指定语种。model_type=2为DiT标准版效果(音色、不还原用户的风格),model_type=3为DiT还原版效果(音色、还原用户口音、语速等风格)。model_type=4。model_type=5。注意
在使用大模型语音合成V1版本接口时, 需要设置cluster:
model_type=0时:
cluster设置为volcano_mega;cluster设置为volcano_mega_concurr;model_type=1/2/3/4/5时:
cluster设置为volcano_icl;cluster设置为volcano_icl_concurr;在使用大模型语音合成V3版本接口时,需要设置X-Api-Resource-Id:
model_type=0的音色;model_type=1/2/3时:
X-Api-Resource-Id设置为seed-icl-1.0;X-Api-Resource-Id设置为seed-icl-1.0-concurr;model_type=4/5时:
X-Api-Resource-Id设置为seed-icl-2.0 ;域名: https://openspeech.bytedance.com
具体请求方式可参考下方示例代码
接口路径: POST/api/v1/mega_tts/audio/upload
接口描述: 提交音频训练音色
认证方式使用Bearer Token,在请求的header中加上"Authorization": "Bearer; {token}",并在请求的json中填入对应的appid。
注意
Bearer和token使用分号 ; 分隔,替换时请勿保留{}
AppID/Token/Cluster 等信息可参考 控制台使用FAQ-Q1
Header:
参数名称 | 参数类型 | 必须参数 | 备注 |
|---|---|---|---|
Authorization | string | 必填 | Bearer;${Access Token} |
Resource-Id | string | 必填 |
|
Body:
参数名称 | 层级 | 参数类型 | 必须参数 | 备注 |
|---|---|---|---|---|
appid | 1 | string | 必填 | |
speaker_id | 1 | string | 必填 | 唯一音色代号 |
audios | 1 | list | 必填 | 音频格式支持:wav、mp3、ogg、m4a、aac、pcm,其中pcm仅支持24k 单通道目前限制单文件上传最大10MB,每次最多上传1个音频文件 |
audio_bytes | 2 | string | 必填 | 二进制音频字节,需对二进制音频进行base64编码 |
audio_format | 2 | string | 音频格式,pcm、m4a必传,其余可选 | |
text | 2 | string | 可以让用户按照该文本念诵,服务会对比音频与该文本的差异。若差异过大会返回1109 WERError | |
source | 1 | int | 必填 | 固定值:2 |
language | 1 | int |
| |
model_type | 1 | int | 默认为0
声音复刻2.0支持以下
| |
extra_params | 1 | jsonstring | 额外参数 | |
demo_text | 2 | string | 否 | 试听文本,长度在4和80字之间,如果指定了语种需要传入对应语种的文本,否则会合成失败。 |
enable_audio_denoise | 2 | bool | 否 | 是否开启降噪,开启降噪可能会对声音细节有一定影响,音频样本噪声较大的情况下建议开启降噪,音频样本质量较好的情况下建议关闭降噪。 |
enable_audio_denoise_with_snr | 2 | bool | 否 | 是否开启根据降噪检测阈值 |
denoise_max_snr_thresh | 2 | int | 否 | 降噪检测阈值,默认为50。有效范围大于0,小于100。 |
reject_min_snr_thresh | 2 | float | 否 | 信噪比低于该值拒绝复刻,当前默认值为 |
voice_clone_denoise_model_id | 2 | string | 否 | 人声美化模型选择,去除音频样本中的噪音等(可能会不同程度影响声音细节)
Python示例: |
voice_clone_enable_mss | 2 | bool | 否 | 是否使用音源分离去除音频样本中背景音,默认值: |
enable_crop_by_asr | 2 | bool | 否 | ASR 截断能避免单个字的发音被切开,核心原因是它能精准定位单个字在音频中的位置。默认的音频时长截断(时长 25s)则可能出现单个字发音被切开的情况。 |
enable_check_prompt_text_quality | 2 | bool | 否 | 是否开启音频ASR文本质量检测,会降低复刻成功率。 |
enable_check_audio_quality | 2 | bool | 否 | 是否开启音频质量检测,会降低复刻成功率。 |
json示例
{ "speaker_id": "S_*******",(需从控制台获取,参考文档:声音复刻下单及使用指南) "appid": "your appid", "audios": [{ "audio_bytes": "base64编码后的音频", "audio_format": "wav" }], "source": 2, "language": 0, "model_type": 1, "extra_params": "{\"voice_clone_denoise_model_id\": \"\"}" }
Body:
参数名称 | 层级 | 参数类型 | 必须参数 | 备注 |
|---|---|---|---|---|
BaseResp | 1 | object | 必填 | |
StatusCode | 2 | int | 必填 | 成功:0 |
StatusMessage | 2 | string | 错误信息 | |
speaker_id | 1 | string | 必填 | 唯一音色代号 |
json示例
{ "BaseResp":{ "StatusCode":0, "StatusMessage":"" }, "speaker_id":"S_*******" }
Success | 0 | 成功 |
|---|---|---|
BadRequestError | 1001 | 请求参数有误 |
AudioUploadError | 1101 | 音频上传失败 |
ASRError | 1102 | ASR(语音识别成文字)转写失败 |
SIDError | 1103 | SID声纹检测失败 |
SIDFailError | 1104 | 声纹检测未通过,声纹跟名人相似度过高 |
GetAudioDataError | 1105 | 获取音频数据失败 |
SpeakerIDDuplicationError | 1106 | SpeakerID重复 |
SpeakerIDNotFoundError | 1107 | SpeakerID未找到 |
AudioConvertError | 1108 | 音频转码失败 |
WERError | 1109 | wer检测错误,上传音频与请求携带文本对比字错率过高 |
AEDError | 1111 | aed检测错误,通常由于音频不包含说话声 |
SNRError | 1112 | SNR检测错误,通常由于信噪比过高 |
DenoiseError | 1113 | 降噪处理失败 |
AudioQualityError | 1114 | 音频质量低,降噪失败 |
ASRNoSpeakerError | 1122 | 未检测到人声 |
已达上传次数限制 | 1123 | 上传接口已经达到次数限制,目前同一个音色支持10次上传 |
接口路径: POST/api/v1/mega_tts/status
接口描述: 查询音色训练状态
Header:
参数名称 | 参数类型 | 必须参数 | 备注 |
|---|---|---|---|
Authorization | string | 必填 | Bearer;${Access Token} |
Resource-Id | string | 必填 | 填入 |
Body:
参数名称 | 层级 | 类型 | 必填 | 备注 |
|---|---|---|---|---|
appid | 1 | string | 必填 | |
speaker_id | 1 | string | 必填 | 唯一音色代号 |
json示例
{ "appid": "your appid", "speaker_id": "S_*******"(需从控制台获取,参考文档:声音复刻下单及使用指南) }
Body:
参数名称 | 层级 | 参数类型 | 必须参数 | 备注 |
|---|---|---|---|---|
BaseResp | 1 | object | 必填 | |
StatusCode | 2 | int | 必填 | 成功:0 |
StatusMessage | 2 | string | 错误信息 | |
speaker_id | 1 | string | 必填 | 唯一音色代号 |
status | 1 | enum { NotFound = 0 Training = 1 Success = 2 Failed = 3 Active = 4 } | 必填 | 训练状态,状态为2或4时都可以调用tts |
create_time | 1 | int | 必填 | 创建时间 |
version | 1 | string | 选填 | 训练版本 |
demo_audio | 1 | string | 选填 | Success状态时返回,一小时有效,若需要,请下载后使用 |
json示例
{ "BaseResp":{ "StatusCode":0, "StatusMessage":"" }, "creaet_time":1701055304000, "version": "V1", "demo_audio": "http://**********.wav" "speaker_id":"S_*******", "status":2 }
音色训练成功后,需要通过调用TTS语音合成接口来使用音色合成指定文本的音频。
接口 | 推荐场景 | 接口功能 | 文档链接 |
|---|---|---|---|
| WebSocket协议,实时交互场景,支持文本实时流式输入,流式输出音频。 | 语音合成、声音复刻、混音 | |
| WebSocket协议,一次性输入合成文本,流式输出音频。 | 语音合成、声音复刻、混音 | |
| HTTP Chunked协议,一次性输入全部合成文本,流式输出音频。 | 语音合成、声音复刻、混音 | |
| HTTP SSE协议,一次性输入全部合成文本,流式输出音频。 | 语音合成、声音复刻、混音 |