语音合成-黄金版
一、接口描述
1. 功能描述
黄金版语音合成应用了当前最先进的语音合成技术,相对于精品版语音合成音质更加自然饱满,更接近于人声,并支持返回时间戳信息。
注意:区别于普通版,可选的音色不同,采样率最大支持16000Hz
2. 接口数据要求:
- 文本仅支持UTF-8格式
- 文本长度不能超过1000个字符(包含标点)
- 支持语音合成标记语言 (SSML)
3. 接口使用:
平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。 免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。
在获得使用权限后,您可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程
4. Android/IOS开发
为了方便Android和IOS集成该API,我们提供了对应的SDK供开发者使用,请到下面的链接下载和使用:
5. 其他SDK
(注意:使用SDK开发仍然需要开通第3步中的API服务权限)
二、请求说明
1. 接口地址 :
https://aiapi.jd.com/jdai/tts_gold
2. 请求方式:
post
3. 请求参数
(1)query请求参数
公共请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appkey | string | 是 | 80d2b762ecb86593f9668526920f46c | 您的appkey,可在买家中心控制台中获 |
timestamp | long | 是 | 1541491668060 | 请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign | string | 是 | 2e148773a0337a8f2200ba90d445f083 | 签名,根据规则MD5(sectetkey+timestamp) |
(2)header请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
Service-Type | string | 是 | synthesis | 服务类型,这里设置固定值synthesis |
Request-Id | string | 是 | 65845428-de85-11e8-9517-040973d59a1e | 请求语音串标识码。由客户端生成,代表完整的语音合成请求过程,需要注意:
- 需要全局唯一 - 对于同一次合成请求Request-Id需要保持一致 - 每个不同的合成请求都要新生成Request-Id,若多次请求使用同一个将会产生不可预知的错误。 生成方法: - libuuid 库可以直接生成。Android 及 iOS 也有相关的生成函数。 |
Sequence-Id | int | 是 | 1 | 文本分段传输的分段号
-1表示非流式,一次性合成音频并返回。 1表示一次新的流式请求开始,分段合成音频返回,发送第二次请求获取第二段数据时Sequence-Id递增并可以不带text文本。 |
Protocol | int | 是 | 1 | 通信协议版本号,这里设置固定值1 |
Net-State | int | 是 | 1 | 客户端网络状态:1:WIFI,2:移动,3:联通,4:电信,5:其他 |
Applicator | int | 是 | 1 | 应用者,SDK 会提供给不同的应用者(渠道,例如:内部业务(0),外部业务(1)) |
Property | string | 是 | {"platform": "Linux", "version": "0.0.0.1", "parameters": {"aue": "1", "vol": "1.0", "sr": "16000", "sp": "1.0", "tim": "0", "tt": "0"}} | 属性信息,json格式,platform和version为通用属性,parameters字段必填,其中的参数可选,Property允许用户同一个请求的不同包都携带该头,但是建议只在第一包携带 |
- Property参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
platform | string | 是 | Android&Pixel&7.1 | 字符串类型,各平台的机型信息,格式为:{平台}&{机型}&{系统版本号}
- 平台:Android,iOS,Linux,Windows - 机型:设备的机型名称,如Pixel,iPhoneX等 - 系统版本号:设备系统版本,如2.3.3,4.2.1等 |
version | string | 是 | 1.0.0 | 字符串类型,客户端版本号 |
timestamp | string | 是 | 1 | 字符串类型,1表示音素时间戳,2表示语义时间戳 |
parameters | string | 是 | {"aue": "1", "vol": "2.0", "sr": "16000", "sp": "1.0", "tim": "0", "tt": "0"} | TTS参数 |
- parameters参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
tt | int | 否 | 0 | 文本类型(默认值:0) 0:纯文本 1:ssml |
aue | int | 否 | 1 | 音频编码格式(默认值:0)
0:wav 1:pcm 2:opus 3:mp3 |
tim | int | 否 | 0 | 音色(默认值:0)
0:桃桃(女)1:斌斌(男)3:婷婷(女)27:柠檬酱(女)34:京小昂(女)45:京小慧(女)50:京小妮(女) |
vol | string | 否 | 2.0 | 音量(默认值:2.0)
取值范围:[0.5, 10.0] |
sp | string | 否 | 1.0 | 语速(默认值:1.0)
取值范围:[0.1, 2.0] |
sr | int | 否 | 16000 | 采样率(默认值:16000)
wav和pcm支持4k到16k的采样率 opus支持8k 12k 16k的采样率 |
(3)body请求参数
业务请求参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
body | string | 你好,京东! | 放置要合成的文本,长度不能超过1000个字符,UTF-8编码 |
4、请求代码示例
建议您使用我们提供的SDK进行调用,SDK获取及调用方式详见本页一接口描述中的3接口使用
三、返回说明
1、返回参数
(1)公共返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | string | 1000 | 参见下方错误码-系统级错误码 |
charge | boolean | false 或 true | false:不扣费, true:扣费 |
remainTimes | long | 1305 | 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds | long | 1223456 | 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg | string | 查询成功 | 参见下方错误码-系统级错误码 |
result | object | {...} | 查询结果 |
(2)业务返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
status | int | 0 | 参照四、错误码-业务错误码 |
message | string | ok | 参照四、错误码-业务错误码 |
request_id | string | 65845428-de85-11e8-9517-040973d59a1e | 便于双方定位问题(与请求头部的request-id一致) |
index | int | -3 | 分段序号,从1开始,负值表示最后一包(非流式直接返回-1) |
timestamp | string | 京 40 180 东 180 360 语 360 550 音 550 880 |
时间戳信息,根据请求时的timestamp参数设置返回不同格式的时间戳 |
audio | string | Uv4I/mD+zf4… | 音频数据(base64编码) |
2、返回示例
{
"code": "10000",
"charge": false,
"remainTimes": 4998,
"remainSeconds": -1,
"msg": "查询成功",
"result": {
"status": 0,
"message": "ok",
"request_id": "65845428-de85-11e8-9517-040973d59a1e",
"index": -3,
"timestamp":
"京 40 180
东 180 360
语 360 550
音 550 880",
"audio": "Uv4I/mD+zf4…"
}
}
四、错误码
1.系统级错误码
2.业务错误码
业务错误码(status) | message | 说明 |
---|---|---|
11001 | "invalid param" | 用户相关,参数错误 |
30201 | "server err, invalid cntl" | 服务器相关, 服务器未完成初始化 |
30202 | "server is busy now, call later" | 服务器相关, 服务器忙 |
30203 | "text too short" | 用户相关,文本过短(没有文本时返回) |
30204 | "text too long" | 用户相关,文本过长(超过1000个字符) |
30205 | "server err, error seqid" | 用户相关,seq_id不正确,如值为1但是当前已有相同session; 或值不为1但当前没有相同session |
30206 | "server err, read response failed" | TTS引擎相关,TTS引擎读取错误 |
30207 | "server err, base64 encode failed" | base64编码失败 |
30208 | "server err, session is processing" | 服务相关,请求正在处理 |
30252 | "tts engine internal error" | 引擎错误,出现内部错误 |
30253 | "tts engine read timeout" | 引擎错误,读取缓存超时 |
30254 | "tts engine ssml parsing failed" | 引擎错误,SSML 解析错误,如不支持的tag |
30255 | "tts engine ssml bad parameter" | 引擎错误,SSML 参数错误,如指定了错误的发音人 |
30256 | "tts engine ssml nesting error" | 引擎错误,SSML 嵌套错误,如 say-as 下嵌套了 background |
30257 | "tts engine url download failed" | 引擎错误,URL 下载失败 |
30258 | "tts engine url unsupported file format" | 引擎错误,URL 下载文件格式不正确(格式不支持) |