最近更新时间:2024.05.09 14:32:35
首次发布时间:2024.04.25 10:44:40
说明
目前该能力只对企业客户开放,如需测试或接入须先进行企业认证,然后联系火山引擎商务人员申请账号白名单。
接口调用方式与TTS一致,可以参考如下链接,将参数做对应修改后即可使用:
使用账号申请部分申请到的appid&access_token进行调用
文本一次性送入,后端边合成边返回音频数据
使用账号申请部分申请到的appid&access_token进行调用
文本全部合成完毕之后,一次性返回全部的音频数据
字段 | 含义 | 层级 | 格式 | 必需 | 备注 |
---|---|---|---|---|---|
app | 应用相关配置 | 1 | dict | ✓ | |
appid | 应用标识 | 2 | string | ✓ | 需要申请 |
token | 应用令牌 | 2 | string | ✓ | 可传任意非空字符串 |
cluster | 业务集群 | 2 | string | ✓ | volcano_tts |
user | 用户相关配置 | 1 | dict | ✓ | |
uid | 用户标识 | 2 | string | ✓ | 可传任意非空字符串,传入值可以通过服务端日志追溯 |
audio | 音频相关配置 | 1 | dict | ✓ | |
voice_type | 音色类型 | 2 | string | ✓ | |
encoding | 音频编码格式 | 2 | string | wav / pcm / ogg_opus / mp3,默认为 pcm | |
speed_ratio | 语速 | 2 | float | [0.8,2],默认为1,通常保留一位小数即可 | |
request | 请求相关配置 | 1 | dict | ✓ | |
reqid | 请求标识 | 2 | string | ✓ | 需要保证每次调用传入值唯一,建议使用 UUID |
text | 文本 | 2 | string | ✓ | 合成语音的文本,长度限制 1024 字节(UTF-8编码) |
operation | 操作 | 2 | string | ✓ | query(非流式,http只能query) / submit(流式) |
备注:
暂时不支持时间戳能力
暂时不支持ssml能力
暂时不支持音高,音量调节
大模型音色语种支持中英混
请求示例
{ "app": { "appid": "appid123", "token": "access_token", "cluster": "volcano_tts", }, "user": { "uid": "uid123" }, "audio": { "voice_type": "zh_male_M392_conversation_wvae_bigtts", "encoding": "mp3", "speed_ratio": 1.0, }, "request": { "reqid": "uuid", "text": "字节跳动语音合成", "operation": "query", } }
字段 | 含义 | 层级 | 格式 | 备注 |
---|---|---|---|---|
reqid | 请求 ID | 1 | string | 请求 ID,与传入的参数中 reqid 一致 |
code | 请求状态码 | 1 | int | 错误码,参考下方说明 |
message | 请求状态信息 | 1 | string | 错误信息 |
sequence | 音频段序号 | 1 | int | 负数表示合成完毕 |
data | 合成音频 | 1 | string | 返回的音频数据,base64 编码 |
addition | 额外信息 | 1 | string | 额外信息父节点 |
duration | 音频时长 | 2 | string | 返回音频的长度,单位ms |
响应示例
{ "reqid": "reqid", "code": 3000, "operation": "query", "message": "Success", "sequence": -1, "data": "base64 encoded binary data", "addition": { "duration": "1960", } }
错误码 | 错误描述 | 举例 | 建议行为 |
---|---|---|---|
3000 | 请求正确 | 正常合成 | 正常处理 |
3001 | 无效的请求 | 一些参数的值非法,比如operation配置错误 | 检查参数 |
3003 | 并发超限 | 超过在线设置的并发阈值 | 重试;使用sdk的情况下切换离线 |
3005 | 后端服务忙 | 后端服务器负载高 | 重试;使用sdk的情况下切换离线 |
3006 | 服务中断 | 请求已完成/失败之后,相同reqid再次请求 | 检查参数 |
3010 | 文本长度超限 | 单次请求超过设置的文本长度阈值 | 检查参数 |
3011 | 无效文本 | 参数有误或者文本为空、文本与语种不匹配、文本只含标点 | 检查参数 |
3030 | 处理超时 | 单次请求超过服务最长时间限制 | 重试或检查文本 |
3031 | 处理错误 | 后端出现异常 | 重试;使用sdk的情况下切换离线 |
3032 | 等待获取音频超时 | 后端网络异常 | 重试;使用sdk的情况下切换离线 |
3040 | 后端链路连接错误 | 后端网络异常 | 重试 |
3050 | 音色不存在 | 检查使用的voice_type代号 | 检查参数 |
错误返回:
"message": "quota exceeded for types: xxxxxxxxx_lifetime"
错误原因:试用版用量用完了,需要开通正式版才能继续使用
错误返回:
"message": "quota exceeded for types: concurrency"
错误原因:并发超过了限定值,需要减少并发调用情况或者增购并发
错误返回:
"message": "Fail to feed text, reason Init Engine Instance failed"
错误原因:voice_type / cluster 传递错误
错误返回:
"message": "illegal input text!"
错误原因:传入的text无效,没有可合成的有效文本。比如全部是标点符号或者emoji表情,或者使用中文音色时,传递日语,以此类推。多语种音色,也需要使用language指定对应的语种
错误返回:
"message": "authenticate request: load grant: requested grant not found"
错误原因:鉴权失败,需要检查appid&token的值是否设置正确,同时,鉴权的正确格式为
headers["Authorization"] = "Bearer;${token}"
错误返回:
"message': 'extract request resource id: get resource id: access denied"
错误原因:语音合成已开通正式版且未拥有当前音色授权,需要在控制台购买该音色才能调用。标注免费的音色除BV001_streaming及BV002_streaming外,需要在控制台进行下单(支付0元)