短文本语音合成
本接口支持将短文本转换为音频,适用于对于实时性要求较高的业务场景,例如实时播报、智能硬件、数字人等。
如您希望将大量文本合成为语音,请使用长文本语音合成接口。长文本在线合成可将10万字以内文本一次性合成,异步返回音频。
- 单次请求最长1024GBK字节,请求的文字数越多则耗时越长。每120GBK字节计为1次请求,每超出120GBK字节则多计1次调用费用。
- 支持对多音字自定义标注发音,格式如 重(chong2)庆 。
- 当输入文本同时包含中英文时,优先中文发音。例如" I bought 3 books” 发音 “three”; “我们买了 3 books” 发音“三”。
- 调用接口时需要选择朗读文本的发音人。每个发音人音色不同,您可以在功能体验试听各发音人的音色。
权限说明
调用本能力需要使用API Key进行鉴权认证。获取及使用API Key的流程请参考:APIKey鉴权说明文档
请求参数
x-www-form-urlencoded
使用API Key鉴权方式时,将API Key或短期API Key放在此处。注意需要在API Key信息前加上Bearer
。示例: Bearer bce-v3/ALTAK-DaIdq27UJ9Y2UEDIWx1EF/1c511d0576aee39sd59fd73983749109qq8ciq37
待合成的音频文件格式。3为mp3格式(默认); 4为pcm-16k;5为pcm-8k;6为wav(内容同pcm-16k); 注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。
客户端类型选择。web端填写固定值1
固定值zh。语言选择,目前只有中英文混合模式,填写固定值zh
音调,取值范围0-15,如不填写则默认为5(中语调)
语速,取值范围0-15,如不填写则默认为5(中语速)
待合成的文本,文本长度必须小于1024GBK字节。
建议每次请求文本不超过120字节,约为60个汉字或者字母数字。 请注意计费统计依据:120个GBK字节以内(含120个)记为1次计费调用;每超过120个GBK字节则多记1次计费调用。
音量,基础音库取值范围0-9,精品音库取值范围0-15,默认为5中音量(取值为0时为音量最小值,并非为无声)
用户唯一标识,由调用者自行定义,用来计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内
per字段为要使用的发音人。发音人分为基础/精品/臻品/大模型音库 四类,不同的音色有不同的编号。一次调用只允许传入一个音色的编号。
基础音库包括:
度小宇=1,度小美=0,度逍遥(基础)=3,度丫丫=4
各音库里的音色会持续上新,完整音色列表请查看音色列表
精品音库包括:
度逍遥(精品)=5003,度小鹿=5118,度博文=106,度小童=110,度小萌=111,度米朵=103,度小娇=5
臻品音库包括:
度逍遥(臻品)=4003,度博文=4106,度小贤=4115,度小鹿=4119,度灵儿=4105,度小乔=4117,度小雯=4100,度米朵=4103,度姗姗=4144,度小贝=4278,度清风=4143,度小新=4140,度小彦=4129,度星河=4149,度小清=4254,度博文=4206,南方=4226
大模型音库包括:
度涵竹=4189,度嫣然=4194,度泽言=4193,度怀安=4195,度清影=4196,度沁遥=4197,度小粤=20100,度晓芸=20101,四川小哥=4257,度阿闽=4132,度小蓉=4139,台媒女声=5977,度小台=4007,度湘玉=4150,度阿锦=4134,度筱林=4172
POST https://tsn.baidu.com/text2audio
Authorization: API Key String
Content-Type: x-www-form-urlencoded
需要以x-www-form-urlencoded格式的请求体来请求,将文本以及其他参数写入到body里面,利用html表单的方式将参数传递到服务端。 请求参数见下方『请求参数』
示例代码
curl --location --request POST 'https://tsn.baidu.com/text2audio' \
--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
--header 'Content-Type: application/x-www-form-urlencoded' \ ##注意传入格式需要是x-www-form-urlencoded
--data-urlencode 'tex=今天真是个风和日丽的好日子' \ ##待合成的文本
--data-urlencode 'cuid=baidu_workshop' \ ##用户自定义id
--data-urlencode 'ctp=1' \ ##固定填入1
--data-urlencode 'lan=zh' \ ##固定填入zh
--data-urlencode 'per=5003' ##发音人id。全部发音人id列表请见文档顶部音色列表
返回响应
用于判断是否合成成功。
如果合成成功,返回的Content-Type以“audio”开头;
如果合成出现错误,Content-Type返回为application/json,其中其中sn字段主要用于DEBUG追查问题,如果出现问题,可以提供sn帮助确认问题。
如果合成成功,会直接返回合成的音频文件。输入参数aue决定了返回的音频文件格式:
aue =3 ,返回为二进制mp3文件
aue =4 ,返回为二进制pcm文件
aue =5 ,返回为二进制pcm文件
aue =6 ,返回为二进制wav文件
如调用成功,则返回合成的音频文件
错误码
常见错误码
错误码 | 含义 | 可能问题 | 自查方案 | 解决办法 |
---|---|---|---|---|
500 | 不支持输入 | 请求超时 | 1. 确认是否设置请求超时;2. 网络是否正常 | 如果设置超时时间,可以设置更长,切换网络好的环境 |
501 | 输入参数不正确 | 输出参数错误或类型不对 | 检查输入参数,以及参数类型 | 根据参数类型正确填写参数 |
502 | token验证失败 | 鉴权信息过期,鉴权额度用尽 | 1. 重新请求;2. 确认控制台应用额度,主要需区分普通发音人、精品发音人、臻品发音人 | 开通对应接口的额度 |
503 | 合成后端错误 | 合成文本中包含非gbk编码 | 文本是否是gbk编码 | 1. 替换文本;2. 如仍无法解决,向百度侧提供包含sn的报错信息,以及请求的时间戳 |
513 | 文本错误 | 合成文本涉及到特殊符号 | 文本是否有特殊符号 | 1. 替换文本;2. 如仍无法解决,向百度侧提供包含sn的报错信息,以及请求的时间戳 |
额度及权限错误码
错误码 | 含义 | 解决方法 |
---|---|---|
6 | "No permission to access data" 无权限 | 对控制台内app进行编辑,添加语音合成权限 |
13 | "Open api qps request limit reached" QPS超限 | 降低QPS用量或在控制台内购买QPS扩容 |
15 | "Open api concurrency limit reached"并发超限 | 降低并发用量或在控制台内购买QPS扩容 |
16 | "Open api characters limit reached" 字数超限 | 检查对应接口额度,区分普通发音人和精品发音人 |
18 | "Open api cluster limit reached" 集群并发超限 | 提交工单联系百度工作人员 |
330 | " invalid user_id or type for limiter" | 提交工单联系百度工作人员 |
999 | "nginx forwarding failed" | 提交工单联系百度工作人员 |
注意事项
请严格按照文档里描述的参数进行开发。请注意以下几个问题:
- 过长的文本将需要更多的请求耗时。如果对时间敏感,请请自行按照标点切割,可以采用多次请求的方式。
- 语音合成 rest api请求并发有限制配额,具体限额见网页里您的应用详情。如果默认配额不能满足需求,可直接通过控制台进行购买。
- 必填字段中,严格按照文档描述中内容填写。