文章正文
語音識別的功能的應(yīng)用場景
將語音實時識別為文字狼犯,適用于語音聊天余寥、語音輸入领铐、語音搜索、語音下單宋舷、語音指令绪撵、語音問答等多種場景。
我們還是利用百度API祝蝠,語音識別功能音诈,給大家講解如何使用。API主要就是要學(xué)會看文檔绎狭,小編一直都強(qiáng)調(diào)细溅,api的思路都是差不多。
編碼之前儡嘶,首先要登錄百度云喇聊,注冊應(yīng)用,拿到相應(yīng)的key與SECRET_KEY蹦狂,下載SDK誓篱。
SDK安裝步驟
語音識別 PHP SDK目錄結(jié)構(gòu)
├──?AipSpeech.php?????????????//語音識別
└──?lib
????├──?AipHttpClient.php????????//內(nèi)部http請求類
????├──?AipBCEUtil.php???????????//內(nèi)部工具類
????└──?AipBase??????????????????//Aip基類
使用PHP SDK開發(fā)驟如下:
1.在官方網(wǎng)站下載php SDK壓縮包。
2.將下載的aip-php-sdk-version.zip
解壓后凯楔,復(fù)制AipSpeech.php以及l(fā)ib/*到工程文件夾中窜骄。
3.引入AipSpeech.php
新建AipSpeech
AipSpeech是語音識別的PHP SDK客戶端,為使用語音識別的開發(fā)人員提供了一系列的交互方法摆屯。
參考如下代碼新建一個AipSpeech:
require_once?'AipSpeech.php';
//?你的?APPID?AK?SK
const?APP_ID?=?'你的?App?ID';
const?API_KEY?=?'你的?Api?Key';
const?SECRET_KEY?=?'你的?Secret?Key';
$client?=?new?AipSpeech(APP_ID,?API_KEY,?SECRET_KEY);
在上面代碼中啊研,常量APP_ID
在百度智能云控制臺中創(chuàng)建,常量API_KEY
與SECRET_KEY
是在創(chuàng)建完畢應(yīng)用后鸥拧,系統(tǒng)分配給用戶的党远,均為字符串,用于標(biāo)識用戶富弦,為訪問做簽名驗證沟娱,可在AI服務(wù)控制臺中的應(yīng)用列表中查看。
準(zhǔn)備一段語音腕柜,要對段保存的這段語音的語音文件進(jìn)行識別:代碼如下
//?識別本地文件
$client->asr(file_get_contents('audio.pcm'),?'pcm',?16000,?array(
????'dev_pid'?=>?1536,
));
返回的json數(shù)據(jù)
//?成功返回
{
????"err_no":?0,
????"err_msg":?"success.",
????"corpus_no":?"15984125203285346378",
????"sn":?"481D633F-73BA-726F-49EF-8659ACCC2F3D",
????"result":?["北京天氣"]
}
//?失敗返回
{
????"err_no":?2000,
????"err_msg":?"data?empty.",
????"sn":?null
}
這里有個簡單的例子济似,可以參考一下。
<?php??
require_once?'AipSpeech.php';
//?你的?APPID?AK?SK
const?APP_ID?=?'10533442';
const?API_KEY?=?'eb8vDMwPyec1DGxecYQRzEjz';
const?SECRET_KEY?=?'56ac673eafc3a65f49dd37d8dd8f27e8';
$client?=?new?AipSpeech(APP_ID,?API_KEY,?SECRET_KEY);
//?識別本地文件
$li?=?$client->asr(file_get_contents('./test.wav'),?'wav',?16000,?array(
????'lan'?=>?'zh',
));
interface?Msg{
????function?getMsg();
}
class?Result?implements?Msg{
????protected?$res?=?null;
????protected?function?__construct($re){
????????$this->res?=?$re;
????}
????public??function?getMsg(){}
}
class?Success?extends?Result{
????public?function?__construct($re){
????????parent::__construct($re);
????}
????public?function?getMsg(){
????????if?($this->res['err_msg']?==?'success.')?{
????????????//?var_dump($this->res);exit;
????????????echo??$this->res['result'][0];
????????}
????}
}
$tmp?=?new?Success($li);
$tmp->getMsg();
更多的知識教程盏缤,請大家多多看文檔
http://ai.baidu.com/docs/#/ASR-Online-PHP-SDK/top