语音识别REST API识别率非常低!
gsu6tayfgc 发布于2017-02 浏览:1935 回复:7
0
收藏

header("Content-type: text/html; charset=utf-8");

define('AUDIO_FILE', "./aaa.wav");

$url = "http://vop.baidu.com/server_api";


//put your params here

$cuid = "这里是MAC地址";

$apiKey = "APIKEY!!!!!!!!!!";

$secretKey = "SECRETKEY!!!!!!!!!!!!!!!!!!!";


$auth_url = "http://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=".$apiKey."&client_secret=".$secretKey;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $auth_url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

$response = curl_exec($ch);

if(curl_errno($ch))

{

    print curl_error($ch);

}

curl_close($ch);

$response = json_decode($response, true);

$token = $response['access_token'];

var_dump($token);

$audio = file_get_contents(AUDIO_FILE);

$base_data = base64_encode($audio);

$array = array(

        "format" => "wav",

        "rate" => 8000,

        "channel" => 1,

        "lan" => "zh",

        "token" => $token,

        "cuid"=> $cuid,

        //"url" => "http://www.xxx.com/sample.pcm",

        //"callback" => "http://www.xxx.com/audio/callback",

        "len" => filesize(AUDIO_FILE),

        "speech" => $base_data,

        );

$json_array = json_encode($array);

$content_len = "Content-Length: ".strlen($json_array);

$header = array ($content_len, 'Content-Type: application/json; charset=utf-8');


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_POSTFIELDS, $json_array);

$response = curl_exec($ch);

if(curl_errno($ch))

{

    print curl_error($ch);

}

curl_close($ch);

echo $response;

$response = json_decode($response, true);

var_dump($response);


?>

这是我的代码  基本上就是百度官方的样板改了一下格式路径(顺便吐槽一下官方的$auth_url里面地址都是错的)

用样板的test.pcm是正常的

可是用自己的音频就不正常了  我是按照百度的要求压制的音频

wav格式 16bit  16K的采样率 单声道 60秒之内

但是识别出来的东西完全不能用


{"corpus_no":"6389828892940933490","err_msg":"success.","err_no":0,"result":["点啊恩撑死想你时你是女神真是,日语n,是雪儿,嗯,嗯嗯嗯嗯五,n久没,和我与继母,除,与,嗯嗯嗯同意的,你是英雄与美女,求美女,风雪无阻,种子,嗯嗯,嗯,嗯啊你说不行么嗯嗯,嗯嗯嗯,恩格尔,嗯,呢,"],"sn":"48699572061487747973"}


跪求指点  我是哪里搞错了  万分感谢!!!

收藏
点赞
0
个赞
共7条回复 最后由用户已被禁言回复于2022-04
#8用户已被禁言回复于2020-01
#7 okjianghua666回复
官方样例不报错,没问题

说明你的工程没有问题,可以将报错的音频反馈至官方QQ群:588369236。群管理员会协助你排查音频错误原因。

0
#7okjianghua666回复于2020-01

官方样例不报错,没问题

0
#6用户已被禁言回复于2020-01
#5 okjianghua666回复
[图片]这是我的音频格式,大神看看哪里不对吗

官方示例音频测试会报错吗?

0
#5okjianghua666回复于2020-01

这是我的音频格式,大神看看哪里不对吗

0
#4用户已被禁言回复于2020-01
#3 okjianghua666回复
遇到同样问题

题主的问题是采用率错误,格式要求16K,音频是8K的。可以检查一下,也可以测试官方示例音频看能否正确识别。

0
#3okjianghua666回复于2020-01

遇到同样问题

0
#2nickms回复于2017-02

已回复邮件,是由于采样率设置有误

0
TOP
切换版块