任务提交接口
更新时间:
语音合成
服务概述
- 通过云上曲率的人工智能技术,将文本内容转换为自然流畅的语音。
服务申请
语音合成 API 采用全流程自助申请模式。用户可前往云上曲率官网(https://www.ilivedata.com/)注册并激活账号后,在控制台创建语音合成项目,即可获得 appId 和服务密钥(secretKey)。
如需开通更多服务,可在“管理控制台 > 总览”页面中进行相关配置。
接入方式
参数规范
-
请求URL:
https://tts.ilivedata.com/api/v1/speech/synthesis/submit
-
请求方法:
POST
HTTP请求头
请求头
值
描述
Content-Type
application/json;charset=UTF-8
请求体类型
Accept
application/json;charset=UTF-8
接受的返回类型
X-AppId
例:81900001
项目或应用的唯一标识符
X-TimeStamp
例:2024-07-01T07:59:59Z
请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2024-07-01T07:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。
Authorization
例:Njl86M/jY6zZaZoGhZdGO+GI/8+yGFECusGH1yQHUFE=
签名值
请求方法:POST
请求体:
参数
是否必需
类型
描述
text
必须
String
文本内容,长度范围[1,10000]
language
可选
String
文本内容所属语种,推荐传入此语言参数, 不传则使用自动语种检测结果
fallbackLanguage
可选
String
回落语种,当文本检测结果为不支持语种时,使用此语种生成对应音频
voice
可选
VoiceSetting
合成声音相关配置,参数为空时使用语种对应的系统默认声音
output
可选
OutputSetting
输出音频相关配置
VoiceSetting:
参数
必需
类型
描述
name
可选
String
预置音色库或音色注册的音色名称
OutputSetting:
参数
必需
类型
描述
format
可选
String
选择输出合成音频格式,候选为pcm、wav、mp3,默认为wav
请求体示例
Request Sample
{
"text": "您好,欢迎来到云上曲率.",
"language": "zh-CN",
"voice": {
"audio": "https:/xxxxxxx.wav"
},
"output": {
"format": "wav"
}
}
请求签名:
当用户请求语音合成API时,可以使用appId和secretKey对请求做签名,当API收到带签名信息的请求之后,将使用相同的算法验证签名,如果发现签名不一致,API将会返回401给用户。
如果API验证签名一致,且appId对应的用户有权限操作请求的资源,则请求成功,否则API返回401。
通过 HTTP 请求 Header 发送签名
方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:
Authorization: Njl86M/jY6zZaZoGhZdGO+GI/8+yGFECusGH1yQHUFE=
签名计算方法
1.构造规范化的请求字符串(Canonicalized Query String)
将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)
CanonicalizedQueryString = hex(sha256(jsonBody))
2.构造被签名字符串 StringToSign ("\n” 代表ASCII里的换行符)
StringToSign = HTTPMethod + "\n" +
HostHeaderInLowercase + "\n" +
HTTPRequestURI + "\n" +
CanonicalizedQueryString <从上一步得到> + "\n" +
"X-AppId:" + SAME_APPID_IN_HEADER + "\n" +
"X-TimeStamp:" + SAME_TIMESTAMP_IN_HEADER
HTTPRequestURI是请求URI的绝对路径,不包含请求串。如果HTTPRequestURI为空,也要保留一个正斜杠 ( / )
使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。
3.StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法
有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
4.将上一步的结果转换为BASE64串
5.将BASE64串放入HTTP请求Header的Authorization
签名示例
下面是appId & secretKey & audio的示例
appId=81900001
secrectKey=****
audio_base64="IyFBTVItV0IKJFACQCLrVZflEqx2xCbkB6pst/TYz3z1zlzeTP"
下面是示例请求体
{"text":"您好,欢迎来到云上曲率.","language":"zh-CN","voice":{"audio":"https:/xxxxxxx.wav"},"output":{"format":"wav"}}
生成CanonicalizedQueryString
3ff89070a25e4091c94f03ad3cf014d712aaf9e069ef654b0e7e58b2b4550e31
生成StringToSign
POST
tts.ilivedata.com
/api/v1/speech/synthesis
3ff89070a25e4091c94f03ad3cf014d712aaf9e069ef654b0e7e58b2b4550e31
X-AppId:81900001
X-TimeStamp:2024-11-01T07:59:59Z
HMAC计算得到的签名
1nNkKezG9XgkbCau9aENhDDRJhoTMHAI85NnjY+Mm4k=
HTTP响应
字段名
类型
描述
errorCode
Number
0,表示成功
errorMessage
String
提示消息
data
ResponseData
响应数据
ResponseData
字段名
类型
描述
taskId
String
任务唯一标识
响应示例
Sample Response
{
"errorCode": 0,
"errorMessage": "Success.",
"data": {
"taskId": "ap_xxxxxxxxxxx"
}
}
语音合成
服务概述
- 通过云上曲率的人工智能技术,将文本内容转换为自然流畅的语音。
服务申请
语音合成 API 采用全流程自助申请模式。用户可前往云上曲率官网(https://www.ilivedata.com/)注册并激活账号后,在控制台创建语音合成项目,即可获得 appId 和服务密钥(secretKey)。
如需开通更多服务,可在“管理控制台 > 总览”页面中进行相关配置。
接入方式
参数规范
-
请求URL: https://tts.ilivedata.com/api/v1/speech/synthesis/submit
-
请求方法: POST
HTTP请求头
请求头 | 值 | 描述 |
---|---|---|
Content-Type | application/json;charset=UTF-8 | 请求体类型 |
Accept | application/json;charset=UTF-8 | 接受的返回类型 |
X-AppId | 例:81900001 | 项目或应用的唯一标识符 |
X-TimeStamp | 例:2024-07-01T07:59:59Z | 请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2024-07-01T07:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。 |
Authorization | 例:Njl86M/jY6zZaZoGhZdGO+GI/8+yGFECusGH1yQHUFE= | 签名值 |
请求方法:POST
请求体:
参数 | 是否必需 | 类型 | 描述 |
---|---|---|---|
text | 必须 | String | 文本内容,长度范围[1,10000] |
language | 可选 | String | 文本内容所属语种,推荐传入此语言参数, 不传则使用自动语种检测结果 |
fallbackLanguage | 可选 | String | 回落语种,当文本检测结果为不支持语种时,使用此语种生成对应音频 |
voice | 可选 | VoiceSetting | 合成声音相关配置,参数为空时使用语种对应的系统默认声音 |
output | 可选 | OutputSetting | 输出音频相关配置 |
VoiceSetting:
参数 | 必需 | 类型 | 描述 |
---|---|---|---|
name | 可选 | String | 预置音色库或音色注册的音色名称 |
OutputSetting:
参数 | 必需 | 类型 | 描述 |
---|---|---|---|
format | 可选 | String | 选择输出合成音频格式,候选为pcm、wav、mp3,默认为wav |
请求体示例
Request Sample
{
"text": "您好,欢迎来到云上曲率.",
"language": "zh-CN",
"voice": {
"audio": "https:/xxxxxxx.wav"
},
"output": {
"format": "wav"
}
}
请求签名:
当用户请求语音合成API时,可以使用appId和secretKey对请求做签名,当API收到带签名信息的请求之后,将使用相同的算法验证签名,如果发现签名不一致,API将会返回401给用户。
如果API验证签名一致,且appId对应的用户有权限操作请求的资源,则请求成功,否则API返回401。
通过 HTTP 请求 Header 发送签名
方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:
Authorization: Njl86M/jY6zZaZoGhZdGO+GI/8+yGFECusGH1yQHUFE=
签名计算方法
1.构造规范化的请求字符串(Canonicalized Query String)
将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)
CanonicalizedQueryString = hex(sha256(jsonBody))
2.构造被签名字符串 StringToSign ("\n” 代表ASCII里的换行符)
StringToSign = HTTPMethod + "\n" +
HostHeaderInLowercase + "\n" +
HTTPRequestURI + "\n" +
CanonicalizedQueryString <从上一步得到> + "\n" +
"X-AppId:" + SAME_APPID_IN_HEADER + "\n" +
"X-TimeStamp:" + SAME_TIMESTAMP_IN_HEADER
HTTPRequestURI是请求URI的绝对路径,不包含请求串。如果HTTPRequestURI为空,也要保留一个正斜杠 ( / )
使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。
3.StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法
有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
4.将上一步的结果转换为BASE64串
5.将BASE64串放入HTTP请求Header的Authorization
签名示例
下面是appId & secretKey & audio的示例
appId=81900001
secrectKey=****
audio_base64="IyFBTVItV0IKJFACQCLrVZflEqx2xCbkB6pst/TYz3z1zlzeTP"
下面是示例请求体
{"text":"您好,欢迎来到云上曲率.","language":"zh-CN","voice":{"audio":"https:/xxxxxxx.wav"},"output":{"format":"wav"}}
生成CanonicalizedQueryString
3ff89070a25e4091c94f03ad3cf014d712aaf9e069ef654b0e7e58b2b4550e31
生成StringToSign
POST
tts.ilivedata.com
/api/v1/speech/synthesis
3ff89070a25e4091c94f03ad3cf014d712aaf9e069ef654b0e7e58b2b4550e31
X-AppId:81900001
X-TimeStamp:2024-11-01T07:59:59Z
HMAC计算得到的签名
1nNkKezG9XgkbCau9aENhDDRJhoTMHAI85NnjY+Mm4k=
HTTP响应
字段名 | 类型 | 描述 |
---|---|---|
errorCode | Number | 0,表示成功 |
errorMessage | String | 提示消息 |
data | ResponseData | 响应数据 |
ResponseData
字段名 | 类型 | 描述 |
---|---|---|
taskId | String | 任务唯一标识 |
响应示例
Sample Response
{
"errorCode": 0,
"errorMessage": "Success.",
"data": {
"taskId": "ap_xxxxxxxxxxx"
}
}