资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

短语音识别REST-API-NodeSDK

安装语音识别 Node SDK

语音识别 Node SDK目录结构

├── src
│  ├── auth                                //授权相关类
│  ├── http                                //Http通信相关类
│  ├── client                              //公用类
│  ├── util                                //工具类
│  └── const                               //常量类
├── AipSpeech.js                      //语音识别交互类
├── index.js                               //入口文件
└── package.json                           //npm包描述文件

支持 node 版本 4.0+

查看源码

Nodejs SDK代码已开源,您可以查看代码、或者在License范围内修改和编译SDK以适配您的环境。

github链接:https://github.com/Baidu-AIP/nodejs-sdk

直接使用node开发包步骤如下

1.在官方网站下载node SDK压缩包。

2.将下载的aip-node-sdk-version.zip解压后,复制到工程文件夹中。

3.进入目录,运行npm install安装sdk依赖库

4.把目录当做模块依赖

其中,version为版本号,添加完成后,用户就可以在工程中使用语音识别 Node SDK。

直接使用npm安装依赖

npm install baidu-aip-sdk

6.调用示例可以参考 https://github.com/Baidu-AIP/sdk-demo

新建AipSpeechClient

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

用户可以参考如下代码新建一个AipSpeechClient:

var AipSpeechClient = require("baidu-aip-sdk").speech;

// 设置APPID/AK/SK
var APP_ID = "你的 App ID";
var API_KEY = "你的 Api Key";
var SECRET_KEY = "你的 Secret Key";

// 新建一个对象,建议只保存一个对象调用服务接口
var client = new AipSpeechClient(APP_ID, API_KEY, SECRET_KEY);

为了使开发者更灵活的控制请求,模块提供了设置全局参数和全局请求拦截器的方法;本库发送网络请求依赖的是request模块,因此参数格式与request模块的参数相同

更多参数细节您可以参考request官方参数文档

var HttpClient = require("baidu-aip-sdk").HttpClient;

// 设置request库的一些参数,例如代理服务地址,超时时间等
// request参数请参考 https://github.com/request/request#requestoptions-callback
HttpClient.setRequestOptions({timeout: 5000});

// 也可以设置拦截每次请求(设置拦截后,调用的setRequestOptions设置的参数将不生效),
// 可以按需修改request参数(无论是否修改,必须返回函数调用参数)
// request参数请参考 https://github.com/request/request#requestoptions-callback
HttpClient.setRequestInterceptor(function(requestOptions) {
    // 查看参数
    console.log(requestOptions)
    // 修改参数
    requestOptions.timeout = 5000;
    // 返回参数
    return requestOptions;
});

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

语音识别

接口描述

向远程服务上传整段语音进行识别

请求说明

举例,要对段保存有一段语音的语音文件进行识别:

let fs = require('fs');
let voice = fs.readFileSync('assets/voice/16k_test.pcm');

let voiceBuffer = new Buffer(voice);

// 识别本地文件
client.recognize(voiceBuffer, 'pcm', 16000).then(function (result) {
    console.log('<recognize>: ' + JSON.stringify(result));
}, function(err) {
    console.log(err);
});

// 识别本地文件,附带参数
client.recognize(voiceBuffer, 'pcm', 16000, {dev_pid: 1537, cuid: Math.random()}).then(function (result) {
    console.log('<recognize>: ' + JSON.stringify(result));
}, function(err) {
    console.log(err);
});

接口函数说明:

// 识别本地语音文件
client.recognize(speech, format, rate, {lan: 'ct', cuid: Math.random(), ptc: 1}});
参数 类型 描述 是否必须
speech Buffer 建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写
format String 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写。推荐pcm文件
rate int 采样率,16000、8000,固定值
cuid String 用户唯一标识,用来区分用户,填写机器 MAC 地址或 IMEI 码,长度为60以内
dev_pid Int 不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见下面的表格
lan(已废弃) String 历史兼容参数,请使用dev_pid。如果dev_pid填写,该参数会被覆盖。语种选择,输入法模型,默认中文(zh)。 中文=zh、粤语=ct、英文=en,不区分大小写。

dev_pid 参数列表

dev_pid 语言 模型 是否有标点 备注
1537 普通话(纯中文识别) 语音近场识别模型 有标点 支持自定义词库
1737 英语 英语模型 无标点 不支持自定义词库
1637 粤语 粤语模型 有标点 不支持自定义词库
1837 四川话 四川话模型 有标点 不支持自定义词库

返回数据参数详情

参数 类型 是否一定输出 描述
err_no int 错误码
err_msg int 错误码描述
sn int 语音数据唯一标识,系统内部产生,用于 debug
result int 识别结果数组,提供1-5 个候选结果,string 类型为识别的字符串, utf-8 编码

返回样例:

// 成功返回
{
  "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
}
上一篇
短语音识别REST-API-C#SDK
下一篇
短语音识别REST-API-C++SDK