语音识别api php,语音识别-免费API,收集所有免费的API

该代码示例展示了如何在PHP中构造一个类来调用百度语音识别API,从16k.pcm音频文件中获取文本。类包含获取token、将JSON内容转换为数据以及发送POST请求的方法,用于处理音频转文字的过程。
摘要由CSDN通过智能技术生成

/**

* Created by PhpStorm.

* User: FZS

* Time: 2019/3/13 17:10

*/

//----------------------------------

// 百度语音识别调用类

//----------------------------------

class freeApi{

private $apiKey = false; //百度应用AppID

private $secretKey = false; //百度应用API Key

private $tokenUrl = 'https://aip.baidubce.com/oauth/2.0/token';

private $apiUrl = 'https://vop.baidu.com/server_api';

public function __construct($apikey,$secretkey){

$this->apiKey = $apikey;

$this->secretKey = $secretkey;

}

/**

* 获取token

* @return array

*/

public function getToken(){

$params = [

'grant_type' => 'client_credentials',

'client_id' => $this->apiKey,

'client_secret' => $this->secretKey,

];

$o = "";

foreach ( $params as $k => $v )

{

$o.= "$k=" . urlencode( $v ). "&" ;

}

$params = substr($o,0,-1);

return $this->returnArray($this->freeApiCurl($this->tokenUrl,$params,1));

}

/**

* 将JSON内容转为数据,并返回

* @param string $content [内容]

* @return array

*/

public function returnArray($content){

return json_decode($content,true);

}

/**

* 获取结果

* @return array

*/

public function getResult(){

$speech = file_get_contents('http://speech-doc.gz.bcebos.com/rest-api-asr/public_audio/16k.pcm');

$len = strlen($speech);

$params = [

'format' => 'pcm',

'rate' => 16000,

'dev_pid' => 1536,

'channel' => 1,

'token' => $this->getToken()['access_token'],

'cuid' => 'baidu_workshop',

'len' => $len,

'speech' => base64_encode($speech),

];

$params = json_encode($params);

return $this->returnArray($this->jsonPost($this->apiUrl,$params));

}

public function jsonPost($url,$data_json){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

curl_close($ch);

return $response;

}

/**

* 请求接口返回内容

* @param string $url [请求的URL地址]

* @param string $params [请求的参数]

* @param int $ipost [是否采用POST形式]

* @return string

*/

public function freeApiCurl($url,$params=false,$ispost=0){

$httpInfo = array();

$ch = curl_init();

curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );

curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );

curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );

curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );

curl_setopt( $ch, CURLOPT_TIMEOUT , 60);

curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );

if( $ispost )

{

curl_setopt( $ch , CURLOPT_POST , true );

curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );

curl_setopt( $ch , CURLOPT_URL , $url );

}

else

{

if($params){

curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );

}else{

curl_setopt( $ch , CURLOPT_URL , $url);

}

}

$response = curl_exec( $ch );

if ($response === FALSE) {

return false;

}

$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );

$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );

curl_close( $ch );

return $response;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值