请求方式及参数基本说明

语音合成接口支持 POST 和 GET两种方式, 推荐POST方式请求。
正式地址:http://tsn.baidu.com/text2audiohttps://tsn.baidu.com/text2audio

  • POST 方式(推荐), 文本小于2048个中文字或者英文数字。
  • GET 方式,拼接后的url总长度不多于1000个字符,不推荐长文本合成使用。

请求方式和参数

上传参数

参数 可需 描述
tex 必填 合成的文本,使用UTF-8编码。小于2048个中文字或者英文数字。(文本在百度服务器内转换为GBK后,长度必须小于4096字节)
tok 必填 开放平台获取到的开发者access_token(见上面的“鉴权认证机制”段落)
cuid 必填 用户唯一标识,用来计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内
ctp 必填 客户端类型选择,web端填写固定值1
lan 必填 固定值zh。语言选择,目前只有中英文混合模式,填写固定值zh
spd 选填 语速,取值0-15,默认为5中语速
pit 选填 音调,取值0-15,默认为5中语调
vol 选填 音量,取值0-15,默认为5中音量
per 选填 发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
aue 选填 3为mp3格式(默认); 4为pcm-16k;5为pcm-8k;6为wav(内容同pcm-16k); 注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。

tex字段2次urlencode

由于urlencode有两个标准 RFC 1738和RFC 3986. 百度为了更好地兼容,支持1次及2次urlencode, 其中2次urlencode可以覆盖全部的特殊字符。因而推荐传递tex 参数时做2次urlencode编码。

测试用例:“1+1=2”。 一次urlencode时,“+”可能会没有合成。

POST调用方式(推荐)

将文本以及其他参数写入到body里面,利用html表单的方式将参数传递到服务端。 所有的参数都在body中。body里面的数据为:

tex=***&lan=zh&cuid=***&ctp=1&aue=3&tok=***
tex 原始参数是"百度你好“
第一次urlencode后 tex=%e7%99%be%e5%ba%a6%e4%bd%a0%e5%a5%bd
第二次urlencode后 tex=%25e7%2599%25be%25e5%25ba%25a6%25e4%25bd%25a0%25e5%25a5%25bd

GET调用方式

将所有的参数都填写到URL地址中,可以通过浏览器可以播放合成的语音结果。

https://tsn.baidu.com/text2audio?tex=***&lan=zh&cuid=***&ctp=1&tok=***

// 注意tex参数需要按照url参数标准使用url_encode UTF8编码,如合成文字为“百度你好”,url为 http://tsn.baidu.com/text2audio?tex=%e7%99%be%e5%ba%a6%e4%bd%a0%e5%a5%bd&lan=zh&cuid=***&ctp=1&tok=***

返回

需要根据 Content-Type的头部来确定是否服务端合成成功。

如果合成成功,返回的Content-Type以“audio”开头

  • aue =3 ,返回为二进制mp3文件,具体header信息 Content-Type: audio/mp3
  • aue =4 ,返回为二进制pcm文件,具体header信息 Content-Type:audio/basic;codec=pcm;rate=16000;channel=1
  • aue =5 ,返回为二进制pcm文件,具体header信息 Content-Type:audio/basic;codec=pcm;rate=8000;channel=1
  • aue =6 ,返回为二进制wav文件,具体header信息 Content-Type: audio/wav

如果合成出现错误,则会返回json文本,具体header信息为:Content-Type: application/json。其中sn字段主要用于DEBUG追查问题,如果出现问题,可以提供sn帮助确认问题。

错误示例:

{"err_no":500,"err_msg":"notsupport.","sn":"abcdefgh","idx":1}

错误码解释

错误码 含义
500 不支持输入
501 输入参数不正确
502 token验证失败
503 合成后端错误

问题反馈说明

您可以反馈至官方论坛或者QQ群。

  1. 如果是接口问题,请给出请求的url和返回的json。
  2. 如果是合成的发音错误,可以在 http://ai.baidu.com/tech/speech/tts#tts-demo 上测试。请按照以下格式反馈

    【restapi】【发音人】【在线】【错误类型】

    错误类型 分类:多音字、韵律、儿化音、TN(数字及特殊符号转换错误)、英文badcase、其他
    

反馈两个badcase示例

【restapi】【标准女声】【在线】【多音字“行”】
 文本:一行白鹭上青天
 描述:行念成(xing)
 期望:一行(hang)白鹭上青天

【restapi】【标准女声】【在线】【其他,“人”发音不准确】
 文本:小主人
 描述:“人”发音类似“任”
 期望:小主人(ren2)