识别输入和输出参数

输入参数

场景:

  • 在线识别:百度语音服务器将录音识别出文字,包括长语音
  • 离线命令词:离线识别出预定义的固定短语
  • 在线语义:百度语音服务器将录音识别出文字,并将服务器端的语义解析结果一起返回
  • 本地语义:在识别出文字的基础上(包括离线命令词识别), 对文字做语义分析。任意网络状况。

使用网络状况:

  • 在线 : 涵盖在线识别,在线语义及在线识别后的本地语义解析。
  • 离线 : 涵盖离线命令词,及离线命令词识别后的本地语义解析。

共支持4个语种 ,语种请在 ASR_START输入事件中的PID参数中设置

  • 中文普通话 (全部场景)
  • 中文四川话(离线命令词及语义不支持)
  • 粤语(离线命令词及语义不支持)
  • 英语(离线命令词及语义不支持)

识别输入事件

以下参数均为SpeechConstant类的常量,如SpeechConstant.ASR_START

事件名 类型 场景 描述
ASR_START String
(JSON结构的字符串)
json内的参数
见下文
“ASR_START 参数”
全部 开始一次识别。 注意不要连续调用ASR_START参数。下次调用需要在CALLBACK_EVENT_ASR_EXIT回调后,或者在ASR_CANCEL输入后。
ASR_STOP 全部 停止录音
ASR_CANCEL 全部 取消本次识别
ASRKWS
LOAD_ENGINE
String
(JSON结构的字符串)
json内的参数
见下文
“ASR_KWS_LOAD_ENGINE 参数”
离线命令词
ASRKWS
UNLOAD_ENGINE
离线命令词 高级

ASR_START 输入事件参数

事件参数 类型/值 场景 常用程度 描述
PID int 在线 常用 根据识别语种,搜索或输入法模型及是否需要在线语义,来选择PID。默认1536,即中文搜索模型,不带在线语义。PID具体值及说明见下一个表格。 其中输入法模型是指适用于长句的输入法模型,可以带有标点符号,但没有在线语义;搜索模型适用于短语,没有标点符号,但可以使用在线语义和本地语义;如输入法模型开启标点符号时,没有本地语义;此外远场模型是指离麦克风较远的音频输入,可以有在线语义和本地语义
DECODER int 全部 常用 离在线的并行策略
0 (默认) 在线 纯在线(默认)
2 离线 离在线融合(在线优先),离线命令词功能需要开启这个选项。
VAD String 全部 高级 语音活动检测, 根据静音时长自动断句。注意不开启长语音的情况下,SDK只能录制60s音频。静音时长及长语音请设置VAD_ENDPOINT_TIMEOUT参数
VAD_DNN(默认) 高级 新一代VAD,各方面信息优秀,推荐使用。
VAD_TOUCH 高级 关闭语音活动检测。注意关闭后不要开启长语音。适合用户自行控制音频结束,如按住说话松手停止的场景。功能等同于60s限制的长语音。需要手动调用ASR_STOP停止录音
VAD_ENDPOINT
_TIMEOUT
int 全部 高级 静音超时断句及长语音
0 在线 常用 开启长语音。即无静音超时断句。手动调用ASR_STOP停止录音。 请勿和VAD=touch联用!
>0(毫秒),默认800ms 在线 高级 不开启长语音。开启VAD尾点检测,即静音判断的毫秒数。建议设置800ms-3000ms
IN_FILE String:文件路径
资源路径或回调方法名
全部 高级 该参数支持设置为:文件系统路径,如:/sdcard/test/test.pcm;
java资源路径,如:res:///com/baidu.test/16k_test.pcm;录音文件不要超过3分钟
数据源方法全名,格式如:”#com.test.Factory.create16KInputStream()”(解释:Factory类中存在一个返回InputStream的方法create16kInputStream()),注意:必须以井号开始;方法原型必须为:public static InputStream yourMethod()。 超过3分钟的录音文件,请在每次read中sleep,避免SDK内部缓冲不够。
OUT_FILE String :文件路径 全部 高级 保存识别过程产生的录音文件, 该参数需要开启ACCEPT_AUDIO_DATA后生效
AUDIO_MILLS int:毫秒 全部 高级 录音开始的时间点。用于唤醒+识别连续说。SDK有15s的录音缓存。如设置为(System.currentTimeMillis() - 1500),表示回溯1.5s的音频。
NLU String 本地语义 高级 本地语义解析设置。必须设置ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数生效,无论网络状况,都可以有本地语义结果。并且本地语义结果会覆盖在线语义结果。本参数不控制在线语义输出,需要在线语义输出见PID参数
disable(默认) 高级 禁用
enable 高级 启用
enable-all 不常用 在enable的基础上,临时结果也会做本地语义解析
ASROFFLINE
ENGINE_GRAMMER
_FILE_PATH
String:文件路径
支持assets路径
本地语义 高级 用于支持本地语义解析的bsg文件,离线和在线都可使用。NLU开启生效,其它说明见NLU参数。注意bsg文件同时也用于ASR_KWS_LOAD_ENGINE离线命令词功能。
SLOT_DATA String(JSON格式) 本地语义 高级 与ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数一起使用后生效。 用于代码中动态扩展本地语义bsg文件的词条部分(bsg文件下载页面的左侧表格部分),具体格式参见代码示例或者demo
DISABLE_PUNCTUATION boolean 在线 高级 在选择PID为长句(输入法模式)的时候,是否禁用标点符号
true 禁用标点
false(默认) 不禁用标点,无法使用本地语义
ACCEPT_AUDIO
_DATA
boolean 全部 高级 是否需要语音音频数据回调,开启后有CALLBACK_EVENT_ASR_AUDIO事件
true 需要音频数据回调
false (默认) 不需要音频数据回调
ACCEPT_AUDIO
_VOLUME
boolean 全部 高级 是否需要语音音量数据回调,开启后有CALLBACK_EVENT_ASR_VOLUME事件回调
true (默认) 需要音量数据回调
false 不需要音量数据回调
SOUND_START int:资源ID 全部 不常用 说话开始的提示音
SOUND_END int:资源ID 全部 不常用 说话结束的提示音
SOUND_SUCCESS int:资源ID 全部 不常用 识别成功的提示音
SOUND_ERROR int:资源ID 全部 不常用 识别出错的提示音
SOUND_CANCEL int:资源ID 全部 不常用 识别取消的提示音
APP_ID String 全部 基本不用 开放平台创建应用后分配,填写后会覆盖 androidManifest.xml中定义的
APP_KEY String 全部 基本不用 开放平台创建应用后分配,填写后会覆盖 androidManifest.xml中定义的
SECRET String 全部 基本不用 开放平台创建应用后分配,填写后会覆盖 androidManifest.xml中定义的
SAMPLE_RATE int 全部 基本不用 采样率 ,固定及默认值16000
16000(默认)
ASR_OFFLINE
_ENGINE _LICENSE
_FILE_PATH
String :文件路径 ,
支持assets路径
离线命令词 基本不用 临时授权文件路径。SDK在联网时会获取自动获取离线正式授权。有特殊原因可用在官网创建应用时下载通用临时授权文件。临时授权文件测试期仅有15天,不推荐使用。
使用正式授权时请确认官网应用设置的包名与APP自身的包名相一致。目前离线命令词和唤醒词功能需要使用正式授权。

ASR_KWS_LOAD_ENGINE 输入事件参数

事件参数 类型 场景 常用程度 描述
SLOT_DATA String JSON格式 本地语义 高级 与ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数一起使用后生效。 用于代码中动态扩展离线命令词bsg文件的词条部分(bsg文件下载页面的左侧表格部分),具体格式参见代码示例或者demo
DECODER int 2 固定值:2,离在线的并行策略
ASROFFLINE
ENGINE_GRAMMER
_FILE_PATH
String 文件路径,
支持assets路径
用于支持离线命令词(同时也是本地语义)解析的bsg文件,离线断网时可以使用。NLU开启生效,其它说明见NLU参数。注意bsg文件同时也用于ASR_KWS_LOAD_ENGINE离线命令词功能。

语义解析设置,在线使用时,会在识别结果的文本基础上同时输出语义解析的结果(该功能需要在官网的应用里设置“语义解析设置”)。

PID 参数

在线参数, 请根据语言, 输入法或者搜索模型及是否需要在线语义,来选择PID。

  • 语言:目前支持中文普通话,四川话,粤语,和英语四个
  • 输入法模型:适用于较长的句子输入。默认有标点,不支持在线语义; 开启标点后,不支持本地语义。
  • 搜索模型:适用于较短的句子输入。无标点,支持在线语义和本地语义。
  • 在线语义:在线语义只支持普通话(本地语义也是只支持普通话)。在线语义详细说明请查看“语义理解协议”文档。
PID 语言 模型 是否有标点 在线语义 备注
1536 普通话 搜索模型 无标点 不支持 默认PID
15362 普通话 搜索模型 加强标点(逗号、句号、问号、感叹号) 不支持
15363 普通话 搜索模型 加强标点(逗号、句号、问号、感叹号) 支持
1537 普通话 输入法模型 有标点(逗号) 不支持
15372 普通话 输入法模型 加强标点(逗号、句号、问号、感叹号) 不支持
15373 普通话 输入法模型 加强标点(逗号、句号、问号、感叹号) 支持
1737 英语 无标点 不支持
17372 英语 加强标点(逗号、句号、问号) 不支持
1637 粤语 有标点(逗号) 不支持
16372 粤语 加强标点(逗号、句号、问号、感叹号) 不支持
1837 四川话 有标点(逗号) 不支持
1936 普通话 远场模型 有标点(逗号) 不支持
19362 普通话 远场模型 加强标点(逗号、句号、问号、感叹号) 不支持
19363 普通话 远场模型 加强标点(逗号、句号、问号、感叹号) 支持

输出参数

语音回调事件统一由 public void onEvent(String name, String params, byte[] data, int offset, int length) 该方法回调
其中name是回调事件, params是回调参数。(data,offset,length)缓存临时数据,三者一起,生效部分为 data[offset] 开始,长度为length。

事件名(name) 事件参数 类型 描述
CALLBACK_EVENT
_ASR_READY
引擎准备就绪,可以开始说话
CALLBACK_EVENT
_ASR_BEGIN
检测到说话开始
CALLBACK_EVENT
_ASR_END
检测到说话结束
CALLBACK_EVENT
_ASR_PARTIAL
params json 识别结果
params[results_recognition] String[] 解析后的识别结果。如无特殊情况,请取第一个结果
params[result_type] String partial_result 临时识别结果
params[result_type] String final_result 最终结果,长语音每一句都有一个最终结果
params[result_type] String nlu_result 语义结果,在final_result后回调。语义结果的内容在(data,offset,length中)
(data,offset,length) String 语义结果的内容 ,当 params[result_type]=nlu_result时出现。
CALLBACK_EVENT
_ASR_FINISH
params String(json格式) 识别结束(可能含有错误信息) 。最终识别的文字结果在ASR_PARTIAL事件 中
params[error] int 错误领域
params[sub_error] int 错误码
params[desc] String 错误描述
CALLBACK_EVENT
_ASR_LONG
_SPEECH
长语音额外的回调,表示长语音识别结束
CALLBACK_EVENT
_ASR_EXIT
识别结束,资源释放
CALLBACK_EVENT
_ASR_AUDIO
(data,offset,length) byte[] PCM音频片段 回调。必须输入ACCEPT_AUDIO_DATA 参数激活
CALLBACK_EVENT
_ASR_VOLUME
params json 当前音量回调。必须输入ACCEPT_AUDIO_VOLUME参数激活
params[volume] float 当前音量
params[volume-percent] int 当前音量的相对值(0-100)
CALLBACK_EVENT
_ASR_LOADED
离线模型加载成功回调
CALLBACK_EVENT
_ASR_UNLOADED
离线模型卸载成功回调