Hi,您好,欢迎使用有道智云个性化大模型语音定制接口服务。
本文档主要针对需要集成HTTP API的技术开发工程师,详细描述个性化语音定制相关的技术内容。
如果您有与我们商务合作的需求,可以通过以下方式联系我们:
商务邮箱: AIcloud_Business@corp.youdao.com
如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:
客服QQ:1906538062
智云翻译技术交流QQ 1群: 652880659
智云翻译技术交流QQ 2群: 669384425
智云翻译技术交流QQ 3群: 807539209
智云翻译技术交流QQ 4群: 936752411
联系邮箱: zhiyun@corp.youdao.com
温馨提示:
个性化大模型语音定制服务,基于网易有道的大模型语音识别技术,通过上传少量录音,训练语音引擎定制自己声音模型,赋予产品声音形象,可在读小说、播音主持、讲故事、客服服务等场景应用。
服务主要分模型定制和模型调用两部分。
调用方在集成个性化语音定制服务API时,请遵循以下规则。
规则 | 描述 |
---|---|
传输方式 | HTTPS |
请求方式 | GET或POST |
字符编码 | 统一使用UTF-8 编码 |
请求格式 | 表单 |
响应格式 | JSON |
个性化大模型语音定制调用地址:
https://openapi.youdao.com
格式支持:wav, mp3等格式
创建语音包接口,通过语音包收集录音,定制个性化音色模型
接口参数:
参数名称 | 类型 | 含义 | 是否必填 | 示例 |
---|---|---|---|---|
appKey | String | 应用ID | True | 可在 应用管理 查看 |
curtime | String | 时间戳(秒) | True | 1666600000 |
salt | String | 随机字符串 | True | |
sign | String | 签名信息:sha256(appKey + salt + curtime +密钥) | True | |
signType | String | 签名类型 | True | v4 |
name | String | 语音包名称 (不超过50字符) | True | 语音包 |
gender | String | 性别 | True | male或female |
description | String | 语音包描述 (不超过250字符) | False | 这是语音包描述 |
-
{
"errorCode":"0",//错误码
"msg":"success",//信息说明
"result":{
"packetId":"P_24A59791123C49A9B498DCD1972803B3"//返回的语音包ID
}
}
上传语音,指定语种,把语音上传到语音包,为训练作准备
注:上传音频文件需要有扩展名,例如xxx.mp3, xxx.wav等, 且录音中必须只有一种音色,30s~5min
参数名称 | 类型 | 含义 | 是否必填 | 示例 |
---|---|---|---|---|
appKey | String | 应用ID | True | 可在 应用管理 查看 |
curtime | String | 时间戳(秒) | True | 1666600000 |
salt | String | 随机字符串 | True | |
sign | String | 签名信息:sha256(appKey + salt + curtime +密钥) | True | |
signType | String | 签名类型 | True | v4 |
file | MultipartFile | 录制评测音频 | True | MultipartFile,音频格式:wav, mp3等格式,30s ~ 5min |
packetId | String | 语音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
lan | String | 语言类型 | True | en |
英文名 | 中文名 | 代码 |
---|---|---|
English (US) | 英语 | en |
Mandarin (China) | 普通话(中国) | zh-CHS |
{
"errorCode":"0",//错误码
"msg":"success",//信息说明
}
清空语音包内的语音,重新上传语音
注:不要直接覆盖原音频
参数名称 | 类型 | 含义 | 是否必填 | 示例 |
---|---|---|---|---|
appKey | String | 应用ID | True | 可在 应用管理 查看 |
curtime | String | 时间戳(秒) | True | 1666600000 |
salt | String | 随机字符串 | True | |
sign | String | 签名信息:sha256(appKey + salt + curtime +密钥) | True | |
signType | String | 签名类型 | True | v4 |
packetId | String | 语音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//错误码
"msg":"success",//信息说明
}
启动训练, 前置条件是必须上传了音频,待模型训练完成后可以调用合成接口
参数名称 | 类型 | 含义 | 是否必填 | 示例 |
---|---|---|---|---|
appKey | String | 应用ID | True | 可在 应用管理 查看 |
curtime | String | 时间戳(秒) | True | 1666600000 |
salt | String | 随机字符串 | True | UUID(唯一识别通用码) |
sign | String | 签名信息:sha256(appKey + salt + curtime +密钥) | True | sha256(appKey + salt + curtime +密钥) |
signType | String | 签名类型 | True | v4 |
packetId | String | 语音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
gender | String | 性别 | False | 非必填,若填必需和创建语音包一致 |
{
"errorCode":"0",//错误码
"msg":"success",//信息说明
"result": {
"estimateSeconds":10 //剩余时间 秒
"modelList":[
{
"modelId":"M_A0852354A2ED4BB19DE759F1B80C6E37", //模型id 启动成功返回
"createTime":"2023-04-23 13:59:43", // 创建时间 启动成功返回
"taskId":"T_6381E68890C843488FD9569217EFA36A", // 训练任务id 启动成功返回
"modelType":"vc", //模型类型
"modelStatus":"started", //模型状态("started":训练启动,"failed":启动失败)
"failedReason":"" // 失败原因 启动失败返回
}
]
}
}
参数名称 | 类型 | 含义 | 是否必填 | 示例 |
---|---|---|---|---|
appKey | String | 应用ID | True | 可在 应用管理 查看 |
curtime | String | 时间戳(秒) | True | 1666600000 |
salt | String | 随机字符串 | True | |
sign | String | 签名信息:sha256(appKey + salt + curtime +密钥) | True | |
signType | String | 签名类型 | True | v4 |
packetId | String | 语音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
taskId | String | 训练任务id | True | T_D2560E2DCF6E435EA7BEDD88AC88B9CC |
{
"errorCode":"0",//错误码
"msg":"success",//信息说明
"result": {
"taskId":"T_D2560E2DCF6E435EA7BEDD88AC88B9CC", // 训练任务id
"estimateSeconds":"10", //剩余时间 秒
"packetId":"P_24A59791123C49A9B498DCD1972803B3",//语音包id
"modelId":"M_A0852354A2ED4BB19DE759F1B80C6E37",//模型id
"status":"1" //训练状态 0:开始,1:完成,2:终止,3:失败,4:语音包创建
}
}
参数名称 | 类型 | 含义 | 是否必填 | 示例 |
---|---|---|---|---|
appKey | String | 应用ID | True | 可在 应用管理 查看 |
curtime | String | 时间戳(秒) | True | 1666600000 |
salt | String | 随机字符串 | True | |
sign | String | 签名信息:sha256(appKey + salt + curtime +密钥) | True | |
signType | String | 签名类型 | True | v4 |
packetId | String | 语音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//错误码
"msg":"success",//信息说明
}
状态ID | 状态描述 |
---|---|
0 | 训练任务启动 |
1 | 训练任务结束 |
2 | 训练任务已终止 |
3 | 训练任务失败 |
4 | 语音包创建阶段,训练任务未启动 |
错误码 | 含义 |
---|---|
101 | 缺少必填的参数,首先确保必填参数齐全,然后,确认参数书写是否正确。 |
102 | 不支持的语言类型 |
103 | 翻译文本过长 |
104 | 不支持的API类型 |
105 | 不支持的签名类型 |
106 | 不支持的响应类型 |
107 | 不支持的传输加密类型 |
108 | 应用ID无效,注册账号,登录后台创建应用和实例并完成绑定,可获得应用ID和应用密钥等信息 |
109 | batchLog格式不正确 |
110 | 无相关服务的有效实例,应用没有绑定服务。注:某些服务的结果发音需要tts,需要在控制台创建语音合成绑定应用后方能使用。 |
111 | 开发者账号无效 |
112 | 请求服务无效 |
113 | q不能为空 |
114 | 不支持的图片传输方式 |
115 | 语音包异常:不存在或者已删除或者不属于当前devId |
116 | referenceSynthesisId已存在 |
201 | 解密失败,可能为DES,BASE64,URLDecode的错误 |
202 | 签名检验失败 |
203 | 访问IP地址不在可访问IP列表 |
205 | 请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。 |
206 | 因为时间戳无效导致签名校验失败 |
207 | 重放请求 |
303 | 服务端的其它异常 |
401 | 账户已经欠费停 |
402 | offlinesdk不可用 |
403 | 无权限 |
404 | 资源不存在 |
405 | auth服务不可用 |
411 | 访问频率受限,请稍后访问 |
412 | 超过最大翻译字符数 |
VC001 | 不支持训练类型 |
VC002 | 不支持性别类型 |
VC003 | 无有效ticket |
VC004 | 语音包创建失败 |
VC005 | 语音包id不存在 |
VC006 | 环境音检测失败 |
VC007 | 语音包重训练次数耗尽 |
VC008 | 当前存在训练中的任务 |
VC009 | 启动训练失败 |
VC010 | 训练任务id不存在 |
VC011 | 删除语音包失败 |
VC012 | 获取语音包列表失败 |
VC013 | 获取训练状态失败 |
VC014 | 语音评测失败 |
VC015 | 开发者id为空 |
VC016 | userId命名空间为空 |
VC022 | 回调地址错误 |
VC023 | 未知合成任务 |
VC024 | 合成URL错误 |
VC025 | 获取合成结果失败 |
VC026 | 文件大小超限 |
VC027 | description超出限制 |
VC028 | name字段超出限制 |
VC029 | order字段取值错误 |
VC030 | text字段超限 |
VC031 | 当日创建语音包到达上限 |
VC032 | 音频时长错误 |
VC033 | userId和packetId不匹配 |
VC034 | 语音包录制文本重复 |
VC036 | 获取语音包详情失败 |
VC041 | 音量过高 |
VC042 | 音频格式错误 |
VC043 | 音频次序错误 |
VC044 | 音频质量过低 |
VC045 | 创建任务数超出限制(每天最多创建1000个训练任务) |
VC046 | 音频数量错误 |
VC047 | 不支持的启动类型 |
VC048 | 处理音频错误 |
VC049 | 调用Asr服务错误 |
VC049 | 上传音频错误 |
VC051 | 文件大小超限 |
VC052 | 文件时长不合法 |