语音合成接口
更新时间: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}
