baiduSpeechRecognizer

来自于:开发者立即使用

概述

语音识别(Automatic Speech Recognition,ASR):也被称为自动语音识别,其目标是将人类的语音中的词汇内容转换为计算机可读的输入, 例如按键、二进制编码或者字符序列。本模块集成百度语音sdk,能够快速方便的为开发者提供语音识别技术,使用本模块需要到百度语音开放 平台去生成应用,并获取应用 id,apiKey,以及 keySecret(调用 createSpeechRecognizer 方法时,需要传入),具体申请流程请访问 百度语音官网

使用此模块之前需先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:baiduSpeechRecognizer
  • 参数:appid, apikey, secretkey
  • 配置示例:

  <!-- Android 配置方法 -->
  <meta-data name="com.baidu.speech.APP_ID" value="6536447"/>
  <meta-data name="com.baidu.speech.API_KEY" value="8MAxI5o7VjKSZOKeBzS4XtxO"/>
  <meta-data name="com.baidu.speech.SECRET_KEY" value="Ge5GXVdGQpaxOmLzc8fOM8309ATCz9Ha"/>

  <!-- iOS 配置方法 -->
  <feature name="baiduSpeechRecognizer">
    <param name="ios_sr_appid" value="8989834"/>
    <param name="ios_sr_apikey" value="8MAxI5o7VjKSZOKeBzS4XtxO"/>
    <param name="ios_sr_secretkey" value="Ge5GXVdGQpaxOmLzc8fOM8309ATCz9Ha"/>
  </feature>
  • 字段描述:

    appid: (必须配置)百度语音平台获取的应用id

    apikey: (必须配置)百度语音平台获取的apiKey

    secretkey:(必须配置) 百度语音平台获取的secretKey

模块接口

createSpeechRecognizer

创建语音识别器

createSpeechRecognizer(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true  // 布尔类型; 表示初始化是否成功
}

示例代码

var speechRecognizer = api.require('baiduSpeechRecognizer');
speechRecognizer.createSpeechRecognizer(function(ret) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startListening

开始语音识别

startListening({param}, callback(ret, err))

params

sample:

  • 类型:数字
  • 描述:采样率
  • 取值范围:
    • 8000 (离线不支持)
    • 16000

infile:

  • 类型:字符串
  • 描述:(可选项)音频源文件路径 (只支持 fs://)

outfile:

  • 类型:字符串
  • 描述:(可选项)保存识别过程产生的录音文件的路径 (只支持 fs://)

baseFile:

  • 类型:字符串
  • 描述:(可选项)离线基础资源的路径(该资源需到百度语音平台->离线资源去下载)(只支持 fs://)

lmFile:

  • 类型:字符串
  • 描述:(可选项)离线垂直资源的路径(该资源需要到百度语音平台->离线资源去下载)(只支持 fs://)

grammer:

  • 类型:字符串
  • 描述:(可选项)离线识别的语法(该文件需要到 http://yuyin.baidu.com/asr去生成)
  • 备注:该参数只适应于Android系统,不支持iOS

language:

  • 类型:字符串
  • 描述:(可选项)语种,默认是cmn-Hans-CN 。
  • 取值范围:
    • cmn-Hans-CN 中文普通话
    • sichuan-Hans-CN 中文四川话(离线暂不支持)
    • yue-Hans-CN 粤语(离线暂不支持)
    • en-GB 英语

nlu:

  • 类型:布尔
  • 描述:(可选项)是否启用语义解析,默认是否。

vad:

  • 类型:字符串
  • 描述:(可选项)语音活动检测,默认是input.
  • 取值范围:
    • search 搜索模式,适合短句输入
    • input 输入模式,适合短信、微博内容等长句输入

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,
    result: '识别结果'  // 字符串类型; 引擎返回的识别结果
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 100,        // 数字类型; 错误返回码; 取值范围如下:

}
  • 错误码对照表:
    • 0 未知错误
    • 1 网络超时
    • 2 网络错误
    • 3 录音错误
    • 4 服务端错误
    • 5 客户端调用错误
    • 6 超时
    • 7 没有识别结果
    • 8 引擎忙
    • 9 缺少权限
    • 10 语音数据处理过程出错
    • 11 本地网络连接出错
    • 12 离线识别出错
    • 13 引擎未创建

示例代码

var speechRecognizer = api.require('baiduSpeechRecognizer');
speechRecognizer.startListening({
    sample: 16000,
    infile: 'fs://infile.pcm',
    outfile: 'fs://outfile.pcm',
    language: 'cmn-Hans-CN',
    nlu: true,
    grammar: 'widget://gmr.bsg',
    vad: 'search'
}, function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopListening

停止录音,但是识别将继续

stopListening()

示例代码

var speechRecognizer = api.require('baiduSpeechRecognizer');
speechRecognizer.stopListening();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setVolumeChangeListener

设置音量监听

setVolumeChangeListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    volume: 10  // 数字类型; 实时音量大小,单位:分贝(db)
}

示例代码

var speechRecognizer = api.require('baiduSpeechRecognizer');
speechRecognizer.setVolumeChangeListener(function(ret) {
    api.toast({ msg: "volume: " + ret.volume, duration: 100, location: "bottom" });
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancel

取消本次识别,已有录音也将不再识别

cancel()

示例代码

var speechRecognizer = api.require('baiduSpeechRecognizer');
speechRecognizer.cancel();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

destroy

销毁语音识别器,释放资源

destroy()

示例代码

var speechRecognizer = api.require('baiduSpeechRecognizer');
speechRecognizer.destroy();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本