大模型声音复刻
接口描述
百度大模型声音复刻是使用全新自研语音大模型算法打造的轻量级音色定制方案。用户只需录制10s的音频,即可极速复刻音色。广泛应用于配音、数字人、情感陪伴、语音助手等场景。请点击链接进入大模型声音复刻体验专区。
产品优势
超低门槛:无需专业设备与场地,极大提升效率,降低使用门槛
精准还原:精准还原音色特点、说话风格、韵律起伏、声学环境
极速复刻:最低10秒即可完成高品质复刻,精准呈现音色细节,高效逼真
接口调用详情
- 接口列表
- 交互流程
获取训练文本
接口描述
接口描述:通过此接口获取用于训练的文本,创建音色时需要上传与此文本内容对应的音频
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/text
请求方法:POST
输入参数
无
输出参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
错误状态 | status | int | |
错误信息 | message | string | |
数据 | data | object | 响应数据 |
data响应参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
文本ID | text_id | string | 唯一文本id |
文本内容 | text | string |
示例
curl --silent --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/text?access_token=XXX'
创建音色
接口描述
接口描述:通过上传训练音频来创建音色,调用此接口前需要在【获取训练文本】文档里面获取训练文本, 根据选择的文本进行录音,要求录音音频和文本保持一致,否则会导致音频检测失败
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/create
请求方法:POST
输入参数
属性 |
参数名称 | 类型 | 是否必填 |
说明 |
---|---|---|---|---|
音色中文名 | voice_name | string | 必填 | 音色中文名,同一个用户下面,音色中文名不能重复; |
音色描述 | voice_desc | string | 可选 | 音色说明 |
音频链接 | audio_url | string | 音频链接和音频内容二选一 | 两个参考同时传:以 audio_file 为准支持:wav、mp3、ogg、aac等。音频大小 5M以内,5~20 秒内 |
音频内容 | audio_file | string | 音频链接和音频内容二选一 | 音频文件内容base64 |
音频文本ID | text_id | string | 必填 | 即文本ID |
输出参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
错误状态 | status | int | 0 创建成功,其他为异常 |
错误信息 | message | string | |
数据 | data | object | 对应发音人ID |
data响应参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
音色 ID | voice_id | int | 唯一id |
示例
- 通过音频URL创建音色
curl --silent --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/create?access_token=XXXX' \
--header 'Content-Type: application/json' \
--data '{
"voice_name": "example",
"voice_desc": "温柔细腻的音色",
"audio_url": "https://bj.bcebos.com/example.wav",
"text_id": "text_5692181d-8825-40ec-b80f-87b79e3a9345"
}'
- 通过音频-base64 编码创建音色
curl --silent --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/create?access_token=XXX' \
--header 'Content-Type: application/json' \
--data '{
"voice_name": "example",
"voice_desc": "温柔细腻的音色",
"audio_file": "音频 Base64 编码",
"text_id": "text_5692181d-8825-40ec-b80f-87b79e3a9345"
}'
大模型声音复刻的音色创建说明:
通过该接口创建的音色,若在1年内没有调用合成记录,该音色将被删除,后续将无法使用。
音色列表查询
接口描述
接口描述:获取用户已经创建的音色列表
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/list
请求方法:POST
输入参数
属性 | 参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
页码 | page | int | 选填 | 列表页面:page>=1 |
输出参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
错误状态 | status | int | 0代表成功,其他为异常 |
错误信息 | message | string | |
数据 | data | object | 音色列表信息 |
data响应参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
总数 | total | int | |
页码 | page | int | |
每页数量 | page_size | int | |
音色列表 | items | object [ ] |
items响应参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
音色 ID | voice_id | int | 训练后的音色 ID |
音色中文名 | voice_name | string | 音色中文名 |
音色描述 | voice_desc | string | 音色说明 |
创建时间 | create_time | string | 创建时间,Unix 时间戳 |
状态 | status | int | 恒等于 0 |
示例
curl --silent --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/list?access_token=XXX' \
--data '{
"page": 1
}'
音色详情查询
接口描述
接口描述:根据音色ID查询音色的详情信息
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/detail
请求方法:POST
输入参数
属性 | 参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
音色ID | voice_id | int | 必填 |
输出参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
错误状态 | status | int | 0代表成功,其他为异常 |
错误信息 | message | string | |
数据 | data | object | 音色详情信息 |
data响应参数
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
音色 ID | voice_id | int | 训练后的音色 ID |
音色中文名 | voice_name | string | 音色中文名 |
音色描述 | voice_desc | string | 音色说明 |
音色状态 | status | int | 恒等于 0 |
创建时间 | create_time | string | 创建时间 |
示例
curl --silent --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/detail?access_token=XXX' \
--header 'Content-Type: application/json' \
--data '{
"voice_id": 1063622
}'
删除音色
接口描述
接口描述:对已经创建的音色进行删除
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/delete
请求方法:POST
输入参数
属性 | 参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
音色ID | voice_id | int | 必填 |
输出参数
通过返回的status判断是否成功,如失败则查看message获得具体错误信息
属性 | 参数名称 | 类型 | 说明 |
---|---|---|---|
错误状态 | status | int | 0 删除成功,1 删除异常 |
错误信息 | message |
示例
curl --silent --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/delete?access_token=XXX' \
--header 'Content-Type: application/json' \
--data '{
"voice_id": 1063622
}'
在线合成
接口描述
接口描述:音色创建成功后,通过创建得到的音色ID进行文本的合成
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/tts
请求方法:POST(Content-Type: application/json)
输入参数
属性 |
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
音色ID | voice_id | int | 必填 | 训练后的音色 ID |
合成文本 | text | string | 必填 | 总字数不超过500个字符,1个中文字、英文字母、数字或符号均算作1个字符 |
合成语言 | lang | string | 可选 | 待合成的文本语言,中英文:zh,默认为zh |
输出格式 | media_type | string | 可选 | 输出文件格式,支持wav、mp3,默认值为wav |
音调 | pitch | int | 可选 | 音调,取值范围[0, 15],默认为5 |
音量 | volume | int | 可选 | 音量,取值范围[0, 15],默认为5 |
语速 | speed | int | 可选 | 语速,取值范围[0, 15],默认为5 |
输出参数
需要根据 Content-Type的头部来确定是否服务端合成成功。 如果合成成功,返回的Content-Type以“audio”开头
- media_type=wav ,返回为二进制wav文件,具体header信息 Content-Type: audio/wav;
- media_type=mp3 ,返回为二进制mp3文件,具体header信息 Content-Type: audio/mp3;
如果合成出现错误,则会返回json文本,具体header信息为:Content-Type: application/json。
属性 | 参数名称 | 参数类型 | 描述 |
---|---|---|---|
错误状态 | status | int | 0代表成功,其他为异常 |
错误信息 | message | string | 错误消息 |
示例
curl --location --request POST 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/tts?access_token=xxxx' \
{
"text": "当春风拂过,大地渐渐回暖,万物复苏的季节到来了。花儿在这个时候竞相开放,桃花、樱花、杏花,还有那细雨中的紫藤,都以最绚烂的姿态展示自己的美丽。",
"voice_id": 100001
}
在线合成(兼容已有合成接口)
接口描述
接口描述:兼顾到部分用户已经使用了短文本在线合成服务,因此为了兼容已有能力,大模型声音复刻的音色在创建成功后,也可以通过短文本合成接口进行复刻文本的合成,详情见在线合成
接口名称:https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/tts (与标准json接口使用同一路径)
请求方法:
- POST(Content-Type: application/x-www-form-urlencoded)
- POST(Content-Type: multipart/form-data)
- GET(参数放在query里)
输入参数
属性 |
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
鉴权token | tok | string | 必填 | 开放平台获取到的开发者[access_token]获取 Access Token "access_token") |
合成文本 | tex | string | 必须 | 总字数不超过500个字符,1个中文字、英文字母、数字或符号均算作1个字符 |
合成语言 | lan | string | 可选 | 待合成的文本语言,中英文:zh,默认为zh |
音色ID | per | int | 必填 | |
用户唯一标识 | cuid | string | 可选 | 用来计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内 |
整包/分包 | ctp | int | 可选 | 填写固定值1,默认为1 |
语速 | spd | int | 可选 | 音调,取值范围[0, 15],默认为5 |
音调 | pit | int | 可选 | 音量,取值范围[0, 15],默认为5 |
音量 | vol | int | 可选 | 语速,取值范围[0, 15],默认为5 |
请求唯一标识 | sn | string | 可选 | 请求唯一标识,关联上下游服务,不填写服务自动生成 |
音频格式 | aue | int | 可选 | 输出文件格式,3: mp3(默认)、6: wav |
http协议tex字段需要额外进行2次urlencode
http协议tex字段需要额外进行2次urlencode 由于urlencode有两个标准 RFC 1738和RFC 3986. 百度为了更好地兼容,支持1次及2次urlencode, 其中2次urlencode可以覆盖全部的特殊字符。因而推荐传递tex 参数时做2次urlencode编码。
测试用例:“1+1=2”。 一次urlencode时,“+”可能会没有合成。
输出参数
需要根据 Content-Type的头部来确定是否服务端合成成功。 如果合成成功,返回的Content-Type以“audio”开头
- aue =3 ,返回为二进制mp3文件,具体header信息 Content-Type: audio/mp3;
- aue =6 ,返回为二进制wav文件,具体header信息 Content-Type: audio/wav;
如果合成出现错误,则会返回json文本,具体header信息为:Content-Type: application/json。
属性 | 参数名称 | 参数类型 | 说明 |
---|---|---|---|
错误状态 | status | int | 0代表成功,其他为异常 |
错误信息 | message | string | 错误消息 |
示例
curl --location 'https://aip.baidubce.com/rest/2.0/speech/publiccloudspeech/v1/voice/clone/tts' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'tok=xxx' \
--data-urlencode 'tex=当春风拂过,大地渐渐回暖,万物复苏的季节到来了。花儿在这个时候竞相开放,桃花、樱花、杏花,还有那细雨中的紫藤,都以最绚烂的姿态展示自己的美丽。' \
--data-urlencode 'per=100001'
大模型声音复刻返回码汇总
返回码 |
提示信息 | 备注说明 |
---|---|---|
0 | success | 处理成功 |
10012 | voice id not exists or status incorrect | 当前的 voice_id 不存在,请检查 voice_id 是否正确 |
10014 | user concurrency limit exceeded | 用户的并发超限,如有高并发需求,请先提交合作咨询,或者提交工单 |
10015 | user usage limit reached | 用户的配额超限,如有高额度需求,请先提交合作咨询,或者提交工单 |
10020 | temporary service err, please try again | 服务临时错误,请稍候再试 |
10021 | voiceprint detection failed | 未检测到有效音频,请根据返回text 进行朗读 |
10022 | text id not exists or text id already expire | text_id 不存在或者 text_id 已经超过 24 小时 |
10023 | download failed or audio file size exceeded limit | 下载失败或者上传文件超过 5M |
10024 | audio file transfer failed | 音频格式转换失败,请更换音频 |
10025 | the data has been deleted or does not have permission | 该音色不存在,或者该音色已经被开发者删除 |
11002 | 限流无额度 | 用户的配额超限,如有高额度需求,请先提交合作咨询,或者提交工单 |
11003 | 限流并发超限 | 用户的并发超限,如有高并发需求,请先提交合作咨询,或者提交工单 |
11004 | text exceeded the limit | 文本超长,请缩短文本重试 |
11006 | No access permission for this voice_id | voice_id 错误,请检查 voice_id 是否正确 |
11007 | token information or iam information must exist | 未传递有效的鉴权信息,请正确输入 access_token 鉴权信息或者 Iam鉴权信息 |
11008 | temporary service err, please try again | 服务临时异常,请稍候重试 |
11009 | required parameters are missing | 参数缺失,请检查输入参数 |
11010 | parameters are invalid | 参数无效,请检查输入参数 |
11011 | voice_id not exists | 该 voice_id不存在 |
11012 | invalid page parameter, must be at least 1 | page 参数必须大于等于 1 |
11013 | invalid base64-encoded audio content | 无效的音频内容,非有效的 base64编码 |
11014 | this token/iam information invalid or has no access data permission | 该用户没有访问该数据的权限 |
11015 | the text contains memorable vocabulary | 文本包含敏感信息,请去掉敏感信息后重试 |
12001 | the audio file is too short | 音频内容太短,请更换音频 |
12000 | download file failed | 文件下载失败,请检查音频下载链接 |
12002 | wer check failed | 未检测到有效音频,请根据返回text 进行朗读 |
12003 | audio detect snr failed | 未检测到有效音频,请根据返回text 进行朗读 |
12004 | recognition failed | 无有效的人声,请更换音频 |
12005 | detect audio level failed | 无有效的人声,请更换音频 |
12006 | detect audio speed failed | 无有效的人声,请更换音频 |
12007 | qualiry failed | 音频质量太差,请更换音频 |