语音合成接口
更新时间:2025-06-19
接口说明
新增功能:支持多语言音频合成
接口调用域名:https://open.xiling.baidu.com
接口鉴权和通用字段说明请查阅:接口通用说明
异步任务方式合成语音音频,同步接口和流式接口暂不开放。音频合成需要购买【交互组件-语音合成】组件,操作参考:平台操作指引
接口列表
提交音频合成任务
POST /api/digitalhuman/open/v1/tts/text2audio/submit
Content-Type: application/json;charset=utf-8
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
text | string | 是 | 字符长度不超过 2000。支持 SSML 标签(仅限中文音色),使用说明见SSML使用说明 • 当 lan 参数非'auto'时,请自行确认文本与所选语言是否一致,如不一致合成成功后会导致发音异常。 |
person | string | 是 | 发音人ID,可用发音人列表参考:公共音色库,或克隆自有音色:音色克隆和查询接口 |
lan | string | 否 | 注:仅有LITE版克隆音色及公共音色库中的支持多语言的音色支持该参数。 • 支持参数列表:'Chinese', 'Chinese,Yue', 'English', 'Russian', 'Spanish', 'French', 'Portuguese', 'German', 'Turkish', 'Dutch', 'Ukrainian', 'Vietnamese', 'Indonesian', 'Japanese', 'Italian', 'Korean', 'Thai', 'Polish', 'Romanian', 'Greek', 'Czech', 'Finnish', 'Hindi', 'auto' |
speed | int | 否 | 语速:5是正常值,0-15的取值范围。越大语速越快,默认值5 |
volume | int | 否 | 音量:5是正常值,0-15的取值范围,越大音量越大,默认值5 |
pitch | int | 否 | 音调:5是正常值,0-15的取值范围。越大音调越高,默认值5 |
outputFormat | string | 否 | 音频输出格式,支持mp3和wav,默认mp3 |
sampleRate | int | 否 | 输出音频的每秒采样次数,目前只支持16000 |
callbackUrl | string | 否 | 接口调用方接受任务回调通知的url,规则和接口说明参考任务回调说明,回调消息字段见下面回调参数表格。 |
返回参数
参数 | 类型 | 说明 |
---|---|---|
taskId | string | 任务ID,用于调用任务查询接口查询任务状态 |
错误码
错误码 | 描述 |
---|---|
23002 | 音色ID不存在 |
10006 | 参数校验不通过 |
50004 | 余额不足 |
请求示例
JavaScript
1{
2 "text":"今天阳光好好呀,适合出去玩",
3 "person":"5132",
4 "speed":5,
5 "volume":5,
6 "pitch":5,
7 "outputFormat":"mp3",
8 "sampleRate":16000
9}
返回示例
JavaScript
1{
2 "code": 0,
3 "message": {
4 "global": "success"
5 },
6 "result": {
7 "taskId": "t2a-xxx"
8 },
9 "requestId": "a829316c-aa14-42be-839e-d2e432b58cca",
10 "success": true
11}
回调参数
- type: AUDIO_GENERATE
- data:
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
taskId | string | 是 | 任务ID |
status | string | 是 | 状态: SUCCESS(合成成功) FAILED(合成失败) |
failedCode | int | 否 | 失败错误码 |
failedMessage | string | 否 | 失败错误信息 |
audioUrl | string | 否 | 音频文件地址,文件会保存 7 天 |
duration | int | 否 | 音频时长,单位 ms |
textTimestamp | Array<Sentence> | 是 | 文本时间戳信息 |
-- content | string | 是 | 拆分的句子内容 |
-- startTimestamp | long | 是 | 句子开始时间戳,单位毫秒(ms) |
-- endTimestamp | long | 是 | 句子结束时间戳,单位毫秒(ms) |
查询音频合成任务状态
GET /api/digitalhuman/open/v1/tts/text2audio/task
请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
taskId | string | 是 | 任务ID |
返回参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
status | string | 是 | 状态: SUBMIT(已提交待合成) GENERATING(合成中) SUCCESS(合成成功) FAILED(合成失败) |
failedCode | int | 否 | 失败错误码,具体见下面表格 |
failedMessage | string | 否 | 失败错误信息 |
audioUrl | string | 否 | 音频文件地址,文件会保存 7 天 |
duration | int | 否 | 音频时长,单位 ms |
textTimestamp | Array<Sentence> | 是 | 文本时间戳信息 |
-- content | string | 是 | 拆分的句子内容 |
-- startTimestamp | long | 是 | 句子开始时间戳,单位毫秒(ms) |
-- endTimestam | long | 是 | 句子结束时间戳,单位毫秒(ms) |
createTime | string | 是 | 创建时间,示例:2024-04-29T20:28:06 |
updateTime | string | 是 | 更新时间,示例:2024-04-29T20:28:06 |
failedCode 说明
错误码 | 描述 |
---|---|
24001 | 语音合成服务调用异常 |
24002 | 音频编码失败 |
24010 | 语音合成任务执行失败 |
请求示例
Plain
1GET /api/digitalhuman/open/v1/tts/text2audio/task?taskId=t2a-xxx
返回示例
JavaScript
1{
2 "code": 0,
3 "message": {
4 "global": "success"
5 },
6 "result": {
7 "taskId": "t2a-xxx",
8 "status": "SUCCESS",
9 "audioUrl": "https://meta-human-editor-test.bj.bcebos.com/xxxx.mp3",
10 "duration": 3110,
11 "textTimestamp": [
12 {
13 "content": "今天阳光好好呀",
14 "startTimestamp": 0,
15 "endTimestamp": 1720
16 },
17 {
18 "content": "适合出去玩",
19 "startTimestamp": 1720,
20 "endTimestamp": 3110
21 }
22 ],
23 "createTime": "2025-03-26T14:27:39",
24 "updateTime": "2025-03-26T14:28:12"
25 },
26 "requestId": "010c6b17-7fcd-4a61-9602-e8eeece2602e",
27 "success": true
28}