官方示例代码中心:
https://console.bce.baidu.com/support/?_=1668482508529#/api?product=AI&project=语音技术&parent=语音合成&api=text2audio&method=post
一、调试时,若提示 16: Open api characters limit reached({"convert_offline":false,"err_detail":"16: Open api characters limit reached...),表明没有合成语音取资源,按照如下路径依次进入开通领取资源即可:
登录百度只智能云 - 控制台 - 语音技术 - 服务列表 - 语音合成,根据提示,开通领取资源。
二、如何查看已领取资源:
登录百度只智能云 -控制台 - 语音技术 - 服务列表 - 资源列表 - 语音合成。
class Sample {const API_KEY = "oA4DWdlt3KIy...";const SECRET_KEY = "M5bBWfEGdFLh...";public function run() {$curl = curl_init();curl_setopt_array($curl, array(CURLOPT_URL => "https://tsn.baidu.com/text2audio", //http://tsn.baidu.com/text2audio || https://tsn.baidu.com/text2audioCURLOPT_TIMEOUT => 30,CURLOPT_RETURNTRANSFER => true,CURLOPT_SSL_VERIFYPEER => false,CURLOPT_SSL_VERIFYHOST => false,CURLOPT_CUSTOMREQUEST => 'POST',CURLOPT_POSTFIELDS => http_build_query(array(// 合成的文本,使用UTF-8编码。不超过60个汉字或者字母数字。文本在百度服务器内转换为GBK后,长度必须小于120字节。如需合成更长文本,推荐使用长文本在线合成'tex' => 'Hello 你好,短文本在线合成',// 开放平台获取到的开发者access_token(见上面的“鉴权认证机制”段落)'tok' => ''. $this->getAccessToken() .'',// 用户唯一标识,用来计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内'cuid' => 'ajVXW9G6XEYG9sUFbntQJjhZPhMp8ioK',// 客户端类型选择,web端填写固定值1'ctp' => '1',// 固定值zh。语言选择,目前只有中英文混合模式,填写固定值zh'lan' => 'zh',// 语速,取值0-15,默认为5中语速'spd' => '5',// 音调,取值0-15,默认为5中语调'pit' => '5',// 音量,取值0-15,默认为5中音量(取值为0时为音量最小值,并非为无声)'vol' => '5',// 度小宇=1,度小美=0,度逍遥(基础)=3,度丫丫=4 | 度逍遥(精品)=5003,度小鹿=5118,度博文=106,度小童=110,度小萌=111,度米朵=103,度小娇=5'per' => '1',// 3为mp3格式(默认); 4为pcm-16k;5为pcm-8k;6为wav(内容同pcm-16k); 注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。'aue' => '3')),CURLOPT_HTTPHEADER => array('Content-Type: application/x-www-form-urlencoded','Accept: */*'),));$response = curl_exec($curl);curl_close($curl);return $response;}/*** 使用 AK,SK 生成鉴权签名(Access Token)* @return string 鉴权签名信息(Access Token)*/private function getAccessToken(){$curl = curl_init();$postData = array('grant_type' => 'client_credentials','client_id' => self::API_KEY,'client_secret' => self::SECRET_KEY);curl_setopt_array($curl, array(CURLOPT_URL => 'https://aip.baidubce.com/oauth/2.0/token',CURLOPT_CUSTOMREQUEST => 'POST',CURLOPT_SSL_VERIFYPEER => false,CURLOPT_SSL_VERIFYHOST => false,CURLOPT_RETURNTRANSFER => true,CURLOPT_POSTFIELDS => http_build_query($postData)));$response = curl_exec($curl);curl_close($curl);$rtn = json_decode($response);return $rtn->access_token;}
}$rtn = (new Sample())->run();
print_r($rtn);
die;