You need to enable JavaScript to run this app.
豆包语音

豆包语音

复制全文
声音复刻大模型
声音复刻API-V1(不推荐)
复制全文
声音复刻API-V1(不推荐)

警告

2026.03.02提供V3版本训练接口支持一次训练可以在多款模型上使用,V1版本接口不再迭代。

注意

  • 2024.07.10开始提供声音复刻ICL V1 版本效果,调用时注意传递model_type=1,另外原始音频如果不是中文也必须指定语种。
  • 2025.04.30开始提供声音复刻DiT复刻效果(更适合非实时场景),model_type=2为DiT标准版效果(音色、不还原用户的风格),model_type=3为DiT还原版效果(音色、还原用户口音、语速等风格)。
  • 2025.10.16开始提供声音复刻ICL V2版本效果,调用时注意传递model_type=4
  • 2026.03.25开始提供声音复刻ICL V3 版本效果,调用时注意传递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时:
    • 如使用声音复刻ICL1.0字符版,X-Api-Resource-Id设置为seed-icl-1.0
    • 如使用声音复刻ICL1.0并发版,X-Api-Resource-Id设置为seed-icl-1.0-concurr
  • model_type=4/5时:
    • 如使用声音复刻ICL2.0字符版,X-Api-Resource-Id设置为seed-icl-2.0

上传训练音色
  1. 请求方式

域名: https://openspeech.bytedance.com
具体请求方式可参考下方示例代码

uploadAndStatus.py
未知大小

  1. 训练(upload接口)

接口路径: 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

必填

seed-icl-1.0 (声音复刻1.0)
seed-icl-2.0 (声音复刻2.0)
(声音复刻ICL目前已经支持双向流式)

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_type0/1时候,支持以下语种

  • cn = 0 中文(默认)
  • en = 1 英文
  • ja = 2 日语
  • es = 3 西班牙语
  • id = 4 印尼语
  • pt = 5 葡萄牙语

model_type2时候,支持以下语种

  • cn = 0 中文(默认)
  • en = 1 英文
  • ja = 2 日语
  • es = 3 西班牙语
  • id = 4 印尼语
  • pt = 5 葡萄牙语
  • de = 6 德语
  • fr = 7 法语

model_type3/4/5时候,仅支持以下语种

  • cn = 0 中文(默认)
  • en = 1 英文

model_type

1

int

默认为0
声音复刻1.0支持以下 model_type

  • 0为声音复刻MEGA效果(不推荐使用)
  • 1为声音复刻ICL效果
  • 2为DiT标准版效果(音色、不还原用户的风格)
  • 3为DiT还原版效果(音色、还原用户口音、语速等风格)

声音复刻2.0支持以下 model_type

  • 4为声音复刻ICL V2效果
  • 5为声音复刻ICL V3效果

extra_params

1

jsonstring

额外参数
默认为: "{}",是个 json 字符串

demo_text

2

string

试听文本,长度在4和80字之间,如果指定了语种需要传入对应语种的文本,否则会合成失败。
Python示例:
"extra_params": json.dumps({"demo_text": "这是一段合成试听文本。"})

enable_audio_denoise

2

bool

是否开启降噪,开启降噪可能会对声音细节有一定影响,音频样本噪声较大的情况下建议开启降噪,音频样本质量较好的情况下建议关闭降噪。
声音复刻1.0,即model_type0/1/2/3时默认值为true
声音复刻2.0,即model_type4/5时默认值为false
Python示例:
"extra_params": json.dumps({"enable_audio_denoise": False})

enable_audio_denoise_with_snr

2

bool

是否开启根据降噪检测阈值denoise_max_snr_thresh进行降噪,需要配合开启enable_audio_denoise
Python示例:
"extra_params": json.dumps({"enable_audio_denoise_with_snr": True})

denoise_max_snr_thresh

2

int

降噪检测阈值,默认为50。有效范围大于0,小于100。
Python示例:
"extra_params": json.dumps({"denoise_max_snr_thresh": 50})

reject_min_snr_thresh

2

float

信噪比低于该值拒绝复刻,当前默认值为5,会降低复刻成功率。有效范围大于0,小于100。
Python示例:
"extra_params": json.dumps({"reject_min_snr_thresh": 5})

voice_clone_denoise_model_id

2

string

人声美化模型选择,去除音频样本中的噪音等(可能会不同程度影响声音细节)
复刻结果有明显噪声的情况下可以尝试切换不同的模型来测试不同效果。
默认为: "" (空的时候默认是 SpeechInpaintingV2
可选值:

  • SpeechInpaintingV2 (默认值)
  • VocalDiffusionV2
  • VocalDiffusionV2_44k

Python示例:
"extra_params": json.dumps({"voice_clone_denoise_model_id": "SpeechInpaintingV2"})

voice_clone_enable_mss

2

bool

是否使用音源分离去除音频样本中背景音,默认值:false
Python示例:
"extra_params": json.dumps({"voice_clone_enable_mss": False})

enable_crop_by_asr

2

bool

ASR 截断能避免单个字的发音被切开,核心原因是它能精准定位单个字在音频中的位置。默认的音频时长截断(时长 25s)则可能出现单个字发音被切开的情况。
默认值:false
Python示例:
"extra_params": json.dumps({"enable_crop_by_asr": True})

enable_check_prompt_text_quality

2

bool

是否开启音频ASR文本质量检测,会降低复刻成功率。
Python示例:
"extra_params": json.dumps({"enable_check_prompt_text_quality": True})

enable_check_audio_quality

2

bool

是否开启音频质量检测,会降低复刻成功率。
Python示例:
"extra_params": json.dumps({"enable_check_audio_quality": True})

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_*******"
}
  1. 返回码:

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次上传

  1. 状态查询(status接口)

接口路径: POST/api/v1/mega_tts/status
接口描述: 查询音色训练状态

请求参数

Header:

参数名称

参数类型

必须参数

备注

Authorization

string

必填

Bearer;${Access Token}

Resource-Id

string

必填

填入
seed-icl-1.0 (声音复刻1.0)
seed-icl-2.0(声音复刻2.0)

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 语音合成接口

音色训练成功后,需要通过调用TTS语音合成接口来使用音色合成指定文本的音频。

接口

推荐场景

接口功能

文档链接

wss://openspeech.bytedance.com/api/v3/tts/bidirection

WebSocket协议,实时交互场景,支持文本实时流式输入,流式输出音频。

语音合成、声音复刻、混音

V3 WebSocket双向流式文档

wss://openspeech.bytedance.com/api/v3/tts/unidirectional/stream

WebSocket协议,一次性输入合成文本,流式输出音频。

语音合成、声音复刻、混音

V3 WebSocket单向流式文档

https://openspeech.bytedance.com/api/v3/tts/unidirectional

HTTP Chunked协议,一次性输入全部合成文本,流式输出音频。

语音合成、声音复刻、混音

V3 HTTP Chunked单向流式文档

https://openspeech.bytedance.com/api/v3/tts/unidirectional/sse

HTTP SSE协议,一次性输入全部合成文本,流式输出音频。

语音合成、声音复刻、混音

V3 Server Sent Events(SSE)单向流式文档

最近更新时间:2026.03.30 20:38:12
这个页面对您有帮助吗?
有用
有用
无用
无用