跳转到内容

大模型语音复刻,合成(异步合成批量音频)

说明

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

温馨提示:

  • 本文档主要针对开发人员,接入测试前需要获取应用ID和应用密钥;如果您还没有,请按照 新手指南 获取。
  • 平台向每个账户赠送50元的体验金,供用户集成前测试所用。

接口说明

大模型语音复刻, 大模型语音合成 (异步批量),基于网易有道的语音识别技术,通过上传少量录音,赋予产品声音形象,可在读小说、播音主持、讲故事、客服服务等场景应用。 服务主要分模型复刻(上传音频) 和 模型调用(异步合成音频) 两部分。

注意: 使用前必须在控制台开通 “大模型声音复刻” 和 “大模型语音合成” 两个服务 !!!

协议须知

调用方在集成个性化语音定制服务API时,请遵循以下规则。

规则描述
传输方式HTTPS
请求方式POST
字符编码统一使用UTF-8 编码

接口调用参数

服务调用地址:

https://openapi.youdao.com

大模型声音复刻(音频上传)

  • 接口uri:/tts_gateway/v2/upload
  • 请求方式:POST
  • 接口说明:上传 语音合成的参考音频, 提交批量任务前必须有一个voiceId
  • 接口参数:
    • 格式: 表单
    • 具体参数:
参数名称类型含义是否必填示例
appKeyString应用IDTrue可在 应用管理 查看
curtimeString时间戳(秒)True
saltString随机字符串True
signString签名信息:sha256(appKey + salt + curtime +密钥)True
signTypeString签名类型Truev4
nameString音色名称 (不超过50字符)TruevoiceName
modelStringlite 速度更快; pro效果更好, 提供情绪参数;
默认pro
Falselite, pro
audioFileMultipartFile音色音频文件, 必需wav格式,单声道 16k/24kTrue
emotionAudioFileMultipartFile情感参考音频文件, 只有model=pro时生效, 非必需False

注: 音频时长也会影响合成接口的响应时间, 建议5~10s音频最好

  • 响应结果
{
      "code": "0",
      "data": {
        "voiceId": "01f0e64122ee4e3d9ac03f28556b62b2"
      },
      "requestId": "07399d85-c401-43b0-b9fd-892b225bccfb",
      "message": "success",
      "successful": true
}

大模型语音异步批量合成提交

  • 接口uri:/tts_gateway/v2/synthesis_async
  • 请求方式:POST
  • 接口说明:使用 复刻接口提供的voiceId 提交批量合成任务, 需传入文本列表, 返回taskId
  • 接口参数:
    • 格式: jsonBody
    • 具体参数:
参数名称类型含义是否必填示例
appKeyString应用IDTrue可在 应用管理 查看
curtimeString时间戳(秒)True
saltString随机字符串True
signString签名信息:sha256(appKey + salt + curtime +密钥)True
signTypeString签名类型Truev4
voiceIdString音色id, 后续提供查询接口, 若没记下来可以联系服务提供方True
volumeString这批音频的音量, 0.5~2.0, 默认1.0False
speedString这批音频的速度, 0.5~2.0, 默认1.0False
formatString期望音频格式: mp3 / wavTruewav
qListList<TextEmotionItem>合成文本列表(带情绪参考文本), 最多1000个True
sampleRateString采样率 8000/16000/22050/24000/32000, 默认24000False16000
channelString通道数 1 / 2, 默认1False1

其中qList: TextEmotionItem:

参数名称类型含义是否必填示例
qString合成文本True我热爱运动,尤其是足球
emotionReferTextString模型=pro生效, 情绪参考文本False开心, 恐惧, 方案, 低落, 惊讶, 自然 等
  • 响应结果
正常返回:
  - 响应格式: json
  - 示例: 
   {
      "code": "0",
      "data": {
          "taskId":"41ff602e2ccc4408b0e18d1c83bba2c6"
      },
      "requestId": "07399d85-c401-43b0-b9fd-892b225bccfb",
      "message": "success",
      "successful": true
   }

大模型语音异步任务 查询进度

  • 接口uri:/tts_gateway/v2/get_progress
  • 请求方式:POST
  • 接口说明:使用 submit接口提供的taskId 查询批量合成任务进度
  • 接口参数:
    • 格式: jsonBody
    • 具体参数:
参数名称类型含义是否必填示例
appKeyString应用IDTrue可在 应用管理 查看
curtimeString时间戳(秒)True
saltString随机字符串True
signString签名信息:sha256(appKey + salt + curtime +密钥)True
signTypeString签名类型Truev4
taskIdString批量任务idTrue
  • 响应结果
正常返回:
  - 响应格式: json
  - 注:   status = PROCESSING 代表任务正在处理中, 存在还未被调度合成的文本
          status = SUCCESS 代表任务中的文本列表全部合成成功
          status = PARTIAL_SUCCESS 代表任务部分成功, 文本存在合成失败的情况, task会有重试失败的调度逻辑, 
          若重试成功任务状态会SUCCESS, 但也存在重试后依旧失败, 状态无法变更为SUCCESS的情况 
  - 示例: 
   {
      "code": "0",
      "data": {
          "status":"PROCESSING",
          "totalCount":100,
          "successCount":5
      },
      "requestId": "07399d85-c401-43b0-b9fd-892b225bccfb",
      "message": "success",
      "successful": true
   }
   
   {
      "code": "0",
      "data": {
          "status":"SUCCESS",
          "totalCount":100,
          "successCount":100
      },
      "requestId": "07399d85-c401-43b0-b9fd-892b225bccfb",
      "message": "success",
      "successful": true
   }
   
   {
      "code": "0",
      "data": {
          "status":"PARTIAL_SUCCESS",
          "totalCount":100,
          "successCount":99
      },
      "requestId": "07399d85-c401-43b0-b9fd-892b225bccfb",
      "message": "success",
      "successful": true
   }

大模型语音异步任务 获取结果

  • 接口uri:/tts_gateway/v2/get_result
  • 请求方式:POST
  • 接口说明:使用 submit接口提供的taskId 获取任务的音频结果
    注: mediaUrl 是合成成功的音频地址, 地址过期时间是1天, 需要重新调用该接口获得新的地址
  • 接口参数:
    • 格式: jsonBody
    • 具体参数:
参数名称类型含义是否必填示例
appKeyString应用IDTrue可在 应用管理 查看
curtimeString时间戳(秒)True
saltString随机字符串True
signString签名信息:sha256(appKey + salt + curtime +密钥)True
signTypeString签名类型Truev4
taskIdString批量任务idTrue
  • 响应结果
正常返回:
  - 响应格式: json
  - 注: data中是一个列表, 代表所有合成成功的音频地址和对应的文本索引, 
       举例: 如果第5个文本没合成成功, 查到的结果列表可能没有qIndex=4的元素 (index从0开始)
  - 示例: 
   {
	"code": "0",
	"message": "success",
	"data": [{
		"mediaUrl": "xxxx0",
		"qIndex": 0
	}, {
		"mediaUrl": "xxxx1",
		"qIndex": 1
	}, {
		"mediaUrl": "xxxx2",
		"qIndex": 2
	}, 
	……
    {
		"mediaUrl": "xxxx99",
		"qIndex": 99
	}],
	"requestId": "12a7290c-1404-449b-9499-7a45dd947bf5",
	"successful": true
}

错误代码

错误码含义
101缺少必填的参数,首先确保必填参数齐全,然后确认参数书写是否正确。
102不支持的语言类型
103翻译文本过长
104不支持的API类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息
109batchLog格式不正确
110无相关服务的有效应用,应用没有绑定服务应用,可以新建服务应用。注:某些服务的翻译结果发音需要tts服务,需要在控制台创建语音合成服务绑定应用后方能使用。
111开发者账号无效
112请求服务无效
113q不能为空
114不支持的图片传输方式
116strict字段取值无效,请参考文档填写正确参数值
201解密失败,可能为DES,BASE64,URLDecode的错误
202签名检验失败,如果确认应用ID和应用密钥的正确性,仍返回202,一般是编码问题。请确保翻译文本 q 为UTF-8编码.
203访问IP地址不在可访问IP列表
205请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。如有疑问请参考入门指南
206因为时间戳无效导致签名校验失败
207重放请求 (接口salt+curtime来防重放(即一个请求不可以被请求2次),所以salt最好为UUID。)
301辞典查询失败
302翻译查询失败
303服务端的其它异常
304翻译失败,请联系技术同学
308rejectFallback参数错误
309domain参数错误
310未开通领域翻译服务
401账户已经欠费,请进行账户充值
402offlinesdk不可用
411访问频率受限,请稍后访问
412长请求过于频繁,请稍后访问
901000认证服务异常, 请联系服务提供方
900000音色不存在
900001服务端异常, 请联系服务提供方
900003批量任务不存在