识别输入和输出参数
更新时间:2021-12-09
输入参数
场景:
- 在线识别:百度语音服务器将录音识别出文字,包括长语音
- 离线命令词:离线识别出预定义的固定短语
- 在线语义:百度语音服务器将录音识别出文字,并将服务器端的语义解析结果一起返回
- 本地语义:在识别出文字的基础上(包括离线命令词识别), 对文字做语义分析。任意网络状况。
使用网络状况:
- 在线 : 涵盖在线识别,在线语义及在线识别后的本地语义解析。
- 离线 : 涵盖离线命令词,及离线命令词识别后的本地语义解析。
共支持4个语种 ,语种请在 ASR_START输入事件中的PID参数中设置
- 中文普通话 (全部场景)
- 中文四川话(离线命令词及语义不支持)
- 粤语(离线命令词及语义不支持)
- 英语(离线命令词及语义不支持)
识别输入事件
,以下参数均为SpeechConstant类的常量,如SpeechConstant.ASR_START**, 实际的String字面值可以参见SpeechConstant类或自行打印
事件名 | 类型 | 值 | 场景 | 描述 |
---|---|---|---|---|
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 输入事件参数
事件参数 | 类型/值 | 场景 | 常用程度 | 描述 |
---|---|---|---|---|
APP_ID | String | 全部 | 推荐 | 开放平台创建应用后分配的鉴权信息,填写后会覆盖 AndroidManifest.xml中定义的。AndroidManifest.xml填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。 |
APP_KEY | String | 全部 | 推荐 | 开放平台创建应用后分配的鉴权信息,填写后会覆盖 AndroidManifest.xml中定义的。AndroidManifest.xml填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。(设备数sdk不需要) |
SECRET | String | 全部 | 推荐 | 开放平台创建应用后分配的鉴权信息,填写后会覆盖 AndroidManifest.xml中定义的。AndroidManifest.xml填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。(设备数sdk不需要) |
APP_SN | String | 全部 | 推荐 | 开放平台创建应用后分配的鉴权信息,分为设备数绑定和产品线绑定两种方式 |
PID | int | 在线 | 常用 | 根据识别语种,输入法模型及是否需要在线语义,来选择PID。默认1537 |
LM_ID | int | 在线 | 常用 | 自训练平台上线后的模型Id,必须和自训练平台的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:文件路径 资源路径或回调方法名 |
全部 | 高级 | 该参数支持设置为: a. pcm文件,系统路径,如:/sdcard/test/test.pcm;音频pcm文件不超过3分钟 b. pcm文件, JAVA资源路径,如:res:///com/baidu.test/16k_test.pcm;音频pcm文件不超过3分钟 c. InputStream数据流,#方法全名的字符串,格式如:”#com.test.Factory.create16KInputStream()”(解释:Factory类中存在一个返回InputStream的方法create16kInputStream()),注意:必须以井号开始;方法原型必须为:public static InputStream create16KInputStream()。 超过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 | 在线 | 不常用 | 在选择1537开头的pid(输入法模式)的时候,是否禁用标点符号 |
true | 禁用标点 | |||
false(默认) | 不禁用标点,无法使用本地语义 | |||
PUNCTUATION_MODE | int | 在线 | 不常用 | 在选择1537开头的pid(输入法模式)的时候,标点处理模式。需要设置DISABLE_PUNCTUATION为fasle生效 |
0 (默认) | 在线 | 打开后处理标点 | ||
1 | 在线 | 关闭后处理标点 | ||
2 | 在线 | 删除句末标点 | ||
3 | 在线 | 将所有标点替换为空格 | ||
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 | 全部 | 不常用 | 识别取消的提示音 |
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。
- 语言:目前支持中文普通话,四川话,粤语,和英语四个
- 输入法模型:适用于较长的句子输入。默认有标点,不支持在线语义; 开启标点后,不支持本地语义。
- 自训练平台模型: 在输入法模型的基础上,可以自行上传词库和句库,生成您自己的训练模型。
- 在线语义:在线语义只支持普通话(本地语义也是只支持普通话)。在线语义对识别结果的文字,再做结构化解析,找到语句的“关键词”。在线语义详细说明请查看“语义理解协议”文档。
- Unit 2.0 语义:功能类似在线语义,但是可以自定义解析。
语音识别pid
PID | 语言 | 模型 | 是否有标点 | 在线语义 | 备注 |
---|---|---|---|---|---|
1537 | 普通话 | 输入法模型 | 有标点(逗号) | 不支持 | 默认PID |
15372 | 普通话 | 输入法模型 | 加强标点(逗号、句号、问号、感叹号) | 不支持 | |
15373 | 普通话 | 输入法模型 | 加强标点(逗号、句号、问号、感叹号) | 支持通用场景语义解析 | |
1737 | 英语 | 无标点 | 不支持 | ||
17372 | 英语 | 加强标点(逗号、句号、问号) | 不支持 | ||
1637 | 粤语 | 有标点(逗号) | 不支持 | ||
16372 | 粤语 | 加强标点(逗号、句号、问号、感叹号) | 不支持 | ||
1837 | 四川话 | 有标点(逗号) | 不支持 | ||
1936 | 普通话 | 远场模型 | 有标点(逗号) | 不支持 | |
19362 | 普通话 | 远场模型 | 加强标点(逗号、句号、问号、感叹号) | 不支持 | |
19363 | 普通话 | 远场模型 | 加强标点(逗号、句号、问号、感叹号) | 支持通用场景语义解析 |
外加Unit 2.0功能的 pid
PID | 语言 | 模型 | 是否有标点 | 在线语义 | 备注 |
---|---|---|---|---|---|
15374 | 普通话 | 输入法模型 | 加强标点(逗号、句号、问号、感叹号) | 支持百度UNIT | |
19364 | 普通话 | 远场模型 | 加强标点(逗号、句号、问号、感叹号) | 支持百度UNIT |
语音自训练平台
语音自训练平台上,训练实时语音识别基础模型,可以在Android SDK上添加训练上线的模型ID。注意必须填写上线模型给出的PID。示例 获取专属模型参数pid:1537 modelid:1235
, 可在SDK参数中填写 PID=8001;同时LM_ID 设置为1235。
具体功能及使用说明请参考文档 “自训练平台手册”
PID | 语言 | 模型 | 是否有标点 | 在线语义 | 备注 |
---|---|---|---|---|---|
1537 | 普通话 | 输入法模型 | 逗号 | 不支持 | |
15372 | 普通话 | 输入法模型 | 加强标点(逗号、句号、问号、感叹号) | 不支持 |
输出参数
语音回调事件统一由 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 |
检测到第一句话说话开始。SDK只有第一句话说话开始的回调,没有长语音每句话说话结束的回调。 | |||
CALLBACK_EVENT _ASR_END |
检测到第一句话说话结束。SDK只有第一句话说话结束的回调,没有长语音每句话说话结束的回调。 | |||
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 |
长语音额外的回调,表示长语音识别结束。使用infile参数无此回调,请用ASR_EXIT 代替 | |||
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 |
离线模型卸载成功回调 |