conf = ConfServiceFacade::groupGet('system.ai'); $this->client = new \AipSpeech($this->conf['app_id2'],$this->conf['api_key2'],$this->conf['secret_key2']); } /** * 人脸检测 * @param $image //图片链接 */ public function asr($speech, $format, $rate) { return $this->client->asr($speech, $format, $rate); } public function asr2($speech) { $curl = curl_init(); if(!empty($speech)){ $data['speech'] = base64_encode($speech); $data['len'] = strlen($speech); } curl_setopt_array($curl, array( CURLOPT_URL => "https://vop.baidu.com/server_api", CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', // speech 可以通过 $this.getFileBase64Content("C:\fakepath\f39569cce93a12fdab8fd2645c30c925.wav") 方法获取 CURLOPT_POSTFIELDS =>'{"format":"wav","rate":16000,"channel":1,"cuid":"3","token":"","speech":"'.$data['speech'].'","len":'.$data['len'].',"token":"'. $this->getAccessToken() .'"}', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Accept: application/json' ), )); $response = curl_exec($curl); curl_close($curl); return $response; } /** * 文本转语音 * @param $image //图片链接 */ public function synthesis2($text) { if(empty($this->conf['app_id2'])){ return true; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://aip.baidubce.com/rpc/2.0/tts/v1/create?access_token={$this->getAccessToken()}", CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{"text":"'.$text.'","lang":"zh"}', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Accept: application/json' ), )); $response = curl_exec($curl); curl_close($curl); return json_decode($response); // print_r($response); } public function query($taskIds) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://aip.baidubce.com/rpc/2.0/tts/v1/query?access_token={$this->getAccessToken()}", CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{"task_ids":["'.$taskIds.'"]}', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Accept: application/json' ), )); $response = curl_exec($curl); curl_close($curl); $res = json_decode($response); return $res; } /** * 使用 AK,SK 生成鉴权签名(Access Token) * @return string 鉴权签名信息(Access Token) */ private function getAccessToken(){ $curl = curl_init(); $postData = array( 'grant_type' => 'client_credentials', 'client_id' => $this->conf['api_key2'], 'client_secret' => $this->conf['secret_key2'] ); curl_setopt_array($curl, array( CURLOPT_URL => 'https://aip.baidubce.com/oauth/2.0/token', CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => http_build_query($postData) )); $response = curl_exec($curl); curl_close($curl); $rtn = json_decode($response); return $rtn->access_token; } }