开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

识别输入和输出参数

输入参数

场景:

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

使用网络状况:

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

共支持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,即中文输入法模型,不带在线语义。PID具体值及说明见下一个表格。 其中输入法模型是指适用于长句的输入法模型模型适用于短语。
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
离线模型卸载成功回调