简述PHP如何实现语音识别功能

摘要

语音识别功能现在已经很普遍,用PHP如何实现语音识别功能呢?这些功能都需要有一定的技巧,接下来,由IT培训网来详细描述一下,用PHP语言如何实现语音识别功能。PHP如何实现语音识别功能?1、语音识别的功能的应用场景将语音实时识

语音识别功能现在已经很普遍,用PHP如何实现语音识别功能呢?这些功能都需要有一定的技巧,接下来,由IT培训网来详细描述一下,用PHP语言如何实现语音识别功能。

简述PHP如何实现语音识别功能

PHP如何实现语音识别功能?

1、语音识别的功能的应用场景

将语音实时识别为文字,适用于语音聊天、语音输入、语音搜索、语音下单、语音指令、语音问答等多种场景。我们还是利用百度API,语音识别功能,给大家讲解如何使用。API主要就是要学会看文档,一直都强调,api的思路都是差不多。编码之前,首先要登录百度云,注册应用,拿到相应的key与SECRET_KEY,下载SDK。

2、SDK安装步骤

语音识别 PHP SDK目录结构

├── AipSpeech.php //语音识别

└── lib

├── AipHttpClient.php //内部http请求类

├── AipBCEUtil.php //内部工具类

└── AipBase //Aip基类

3、使用PHP SDK开发骤如下:

1)在官方网站下载php SDK压缩包。

2)将下载的aip-php-sdk-version.zip解压后,复制AipSpeech.php以及lib/*到工程文件夹中。

3)引入AipSpeech.php

4、新建AipSpeech

AipSpeech是语音识别的PHP SDK客户端,为使用语音识别的开发人员提供了一系列的交互方法。

参考如下代码新建一个AipSpeech:

require_once'AipSpeech.php';

// 你的 APPID AK SK

constAPP_ID='你的 App ID';

constAPI_KEY='你的 Api Key';

constSECRET_KEY='你的 Secret Key';

$client=newAipSpeech(APP_ID, API_KEY, SECRET_KEY);

在上面代码中,常量APP_ID在百度智能云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

准备一段语音,要对段保存的这段语音的语音文件进行识别:代码如下

// 识别本地文件

$client->asr(file_get_contents( 'audio.pcm'), 'pcm', 16000, array(

'dev_pid'=> 1536,

));

返回的json数据

// 成功返回

{

"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

}

这里有个简单的例子,可以参考一下。

require_once'AipSpeech.php';

// 你的 APPID AK SK

constAPP_ID='10533442';

constAPI_KEY='eb8vDMwPyec1DGxecYQRzEjz';

constSECRET_KEY='56ac673eafc3a65f49dd37d8dd8f27e8';

$client=newAipSpeech(APP_ID, API_KEY, SECRET_KEY);

// 识别本地文件

$li=$client->asr(file_get_contents('http://www.6ke.com.cn/cy/2019/1104/test.wav'), 'wav', 16000, array(

'lan'=> 'zh',

));

interfaceMsg{

functiongetMsg;

}

classResultimplementsMsg{

protected$res=null;

protectedfunction__construct($re){

$this->res=$re;

}

publicfunctiongetMsg{}

}

classSuccessextendsResult{

publicfunction__construct($re){

parent::__construct($re);

}

publicfunctiongetMsg{

if($this->res['err_msg']=='success.') {

// var_dump($this->res);exit;

echo$this->res['result'][0];

}

}

}

$tmp=newSuccess($li);

$tmp->getMsg;

匿名

发表评论

匿名网友