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

输入参数

识别输入参数

场景:

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

使用网络状况:

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

共支持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 全部 推荐 开放平台创建应用后分配的鉴权信息,在AuthUtil工具类中填入自己的鉴权信息,填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。
APP_KEY String 全部 推荐 开放平台创建应用后分配的鉴权信息,在AuthUtil工具类中填入自己的鉴权信息,填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。
SECRET String 全部 推荐 开放平台创建应用后分配的鉴权信息,在AuthUtil工具类中填入自己的鉴权信息,填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。
PID int 在线 常用 根据识别语种,输入法模型及是否需要在线语义,来选择PID。默认1537,即中文输入法模型,不带在线语义。PID具体值及说明见下一个表格。 其中输入法模型是指适用于长句的输入法模型模型适用于短语。
LM_ID int 在线 常用 自训练平台上线后的模型Id,必须和自训练平台的PID连用。
DECODER int 全部 常用 离在线的并行策略
0 (默认) 在线 纯在线(默认)
2 离线 离在线融合(在线优先),离线命令词功能需要开启这个选项。
VAD String 全部 高级 语音活动检测, 根据静音时长自动断句。注意不开启长语音的情况下,SDK只能录制60s音频。长语音请设置BDS_ASR_ENABLE_LONG_SPEECH参数
VAD_DNN(默认) 高级 新一代VAD,各方面信息优秀,推荐使用。
VAD_TOUCH 不常用 关闭语音活动检测。注意关闭后不要开启长语音。适合用户自行控制音频结束,如按住说话松手停止的场景。功能等同于60s限制的长语音。需要手动调用ASR_STOP停止录音
BDS_ASR_ENABLE_LONG_SPEECH boolean 全部 常用 是否开启长语音。 即无静音超时断句,开启后需手动调用ASR_STOP停止录音。 请勿和VAD=touch联用!优先级大于VAD_ENDPOINT_TIMEOUT 设置
true 开启长语音
false(默认) 关闭长语音,无法识别超过60s的语音
VAD_ENDPOINT_TIMEOUT int 全部 高级 静音超时断句及长语音
0 在线 常用 开启长语音。即无静音超时断句。手动调用ASR_STOP停止录音。 请勿和VAD=touch联用!
800ms 全部 高级 不开启长语音。开启VAD尾点检测,即静音判断的毫秒数。
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 普通话 输入法模型 加强标点(逗号、句号、问号、感叹号) 不支持

具体功能参数

鉴权信息

描述:APP_ID, APP_KEY, SECRET3个鉴权信息决定是否拥有识别、唤醒、离线命令词等权限

请求示例:设置APP_ID, APP_KEY, SECRET

{"appid":155905xx,"secret":"y7S7hAI894BB3LF1yHYmvQEusxxxxxx ","key":"q2uPyBe6LmWTZlvb0gxxxxxx","accept-audio-volume":false}

设置语言、模型、自定义词库、语义

描述:PID参数决定调用哪个识别模型,即决定了语言,模型,及是否支持自定义词库和在线语义解析。

  1. 语言共有4种:中文普通话、英语、粤语及四川话。
  2. 输入法模型/远场模型:分别适用于长句输入/短句输入/离麦克风较远的音频输入。
  3. 在输入法模型下自定义词库生效。
  4. 只有输入法或者远场模型,才可以开启在线语义解析。(下节描述)
  5. 自训练平台 及 百度UNIT 需要使用特定的pid

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 在线识别=>设置=>PID,语种

请求示例: 英语 输入法模型

{"pid":1737,"accept-audio-volume":false}

长语音

描述:开启长语音识别功能,此时VAD参数不能设为touch;长语音可以识别数小时的音频。注意选输入法模型。

BDS_ASR_ENABLE_LONG_SPEECH= true 或 VAD_ENDPOINT_TIMEOUT = 0 都可以开启长语音

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 在线识别=>设置=>长语音及VAD时长设置

请求参数示例: 开启长语音,不能与VAD=touch联用

{"enable.long.speech":true,"accept-audio-volume":false}{"accept-audio-volume":false,"vad.endpoint-timeout":0}

设置静音时长进行断句

描述:普通识别的录音限制60s。连续xxxms静音后,SDK认为一句话结束。VAD_ENDPOINT_TIMEOUT=800,作用是静音断句的时长设置。使用长语音功能时不能使用这个参数。

VAD_ENDPOINT_TIMEOUT =800

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 在线识别=>设置=>长语音及VAD时长设置

请求示例: 连续800ms静音,表示一句话结束

{"accept-audio-volume":false,"vad.endpoint-timeout":800}

开启/关闭根据静音时长切分句子

描述:默认开启根据静音时长切分句子。通过设置VAD参数的值,当设置VAD=dnn时,表示开启VAD,此时通过设置的静音时长进行断句;开启长语音功能时,VAD必然是开启的状态;当设置VAD=touch时,表示关闭VAD,不能使用长语音功能,限制录音时长60s,在60s内的只能点击停止按钮通过发送停止事件才能停止识别。

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 在线识别=>设置=>VAD是否开启dnn或touch

请求示例: 开启VAD,根据静音时长切分句子

{"accept-audio-volume":false,"vad":"dnn"}

请求示例: 关闭VAD,60s内音频,SDK等待调用stop事件结束录音

{"accept-audio-volume":false,"vad":"touch"}

离线命令词

设置纯在线功能和离在线融合识别

DECODER 参数

  • DECODER = 0 ,表示禁用离线功能,只使用在线功能;
  • DECODER = 2 ,表示启用离线功能,但是SDK强制在线优先。

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 离线命令词功能=>开始

请求示例:DECODET=2,表示断网时,使用离线识别固定短语;

{"accept-audio-volume":false,”decoder”:2}

设定离线命令词文件路径

离线命令词只能识别bsg文件中预定义的固定短语,其中bsg文件必须在项目中设定路径,参数ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH作用就是定义离线命令词识别的bsg文件路径;该参数需要在ASR_KWS_LOAD_ENGINE加载离线资源输入事件中初始化;

ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH设置bsg文件路径

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 离线命令词功能

请求示例:定义assets目录下的离线命令词文件

{"accept-audio-data":false,"grammar":"assets:\/\/\/baidu_speech_grammar.bsg","decoder":2}

扩展离线命令词的词条部分

离线命令词bsg文件的左侧词条部分内容可通过SLOT_DATA参数进行动态覆盖,覆盖后原先的bsg文件中的左侧词条部分失效。和ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH一起使用。

SLOT_DATA扩展词条

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击全部识别=>设置=>纯在线或在线+离线命令词=>离线命令词及在线识别混合                                                       =>离线命令词及本地语义                                                       =>扩展词条

请求示例:动态修改离线命令词的词条部分

{"accept-audio-data":false,"grammar":"asset:\/\/\/baidu_speech_grammar.bsg","decoder":2, "slot-data":{"name":\["妈妈","老伍"\],"appname":\["手百","度秘”"\]}}

唤醒输入参数

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

事件名 类型 描述
WAKEUP_START json格式的字符串 json内的参数见下文“WAKEUP_START 参数” 开始识别唤醒词
WAKEUP_STOP 停止识别唤醒词

WAKEUP_START 输入事件参数

事件参数 类型 常用程度 描述
APP_ID String 推荐 开放平台创建应用后分配的鉴权信息,填写后会覆盖 AndroidManifest.xml中定义的。AndroidManifest.xml填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。
APP_KEY String 推荐 开放平台创建应用后分配的鉴权信息,填写后会覆盖 AndroidManifest.xml中定义的。AndroidManifest.xml填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。
SECRET String 推荐 开放平台创建应用后分配的鉴权信息,填写后会覆盖 AndroidManifest.xml中定义的。AndroidManifest.xml填写方式仅供测试使用, 上线后请使用此参数填写鉴权信息。
WP_WORDS_FILE String 常用 唤醒词bin文件路径,支持android asset目录(如assets:///wakeUp.bin)
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内部缓冲不够。
ACCEPT_AUDIO
_DATA
boolean 基本不用 默认关闭。开启后,会有音频回调(CALLBACK_EVENT_WAKEUP_AUDIO),很占资源
WP_ENGINE_LICENSE_FILE_PATH string 基本不用 不填写,在联网时会获取自动获取离线正式授权。有特殊原因可用在官网下载临时授权文件,配置此参数,支持android asset目录(如assets:///mylicense.dat)
SAMPLE_RATE int 基本不用 16000(默认值,且唤醒仅支持16k采样)

具体功能参数

设置唤醒词文件路径

唤醒词功能是本地功能使用时无需联网,只能唤醒bin文件中预定义的关键词,bin文件需要使用WP_WORDS_FILE设置路径,支持android asset目录(如assets:///wakeUp.bin);

WP_WORDS_FILE设置bin文件路径

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:精简版唤醒

请求示例:使用唤醒功能加载唤醒词bin文件;

{"kws-file":"assets:\/\/\/WakeUp.bin","accept-audio-volume":false}

语义输入参数

  • 请求参数说明
字段 是否必选 类型 备注
bot_session_list string(json) 至少有1个元素
bot_session_list[].bot_id string 当前账号在UNIT平台的创建的技能的ID
bot_session_list[].bot_session_id string 技能的session信息,由系统自动生成,client从上轮resonpse中取出并直接传递。如果为空,则表示清空session(开发者判断用户意图已经切换且下一轮会话不需要继承上一轮会话中的词槽信息时可以把bot_session_id置空,从而进行新一轮的会话)

具体功能参数

在线语义 百度UNIT

UNIT是百度最专业的语义理解和对话管理平台,为开发者预置可一键式接入的语义理解和对话管理服务,方便快捷的满足语义理解和对话管理需求。 如果需要更多的定制语义服务,可先在UNIT上进行语义解析的配置,配置说明点击这里智能对话定制与服务平台 UNIT

使用流程如下:1.登录UNIT;2.训练一个技能;3.拿到技能"bot_id":"xx";4.通过语音SDK配置对应PID(15374,19364)及参数进行调用。

UNIT支持单bot和多bot的接入,接入参数如下:

  • 单bot接入就是发送一个bot_id,示例:
{"bot_session_list":"[{\"bot_id\":\"5\",\"bot_session_id\":\"\"}]}"
  • 多bot接入就是发送多个bot_id,示例:
{"bot_session_list":"[{\"bot_id\":\"5\",\"bot_session_id\":\"\"},{\"bot_id\":\"6\",\"bot_session_id\":\"\"},\"bot_id\":\"1006\",\"bot_session_id\":\"\"}]}"
  • 返回结果:
{
    "errno":"0",
    "error_msg":"ok",
    "bot_session_list":"[{\"bot_id\":\"xx\",\"bot_session_id\":\"xxx\"},{\"bot_id\":\"xx\",\"bot_session_id\":\"xxx\"}"}]",
    "unit_response":[
        ...
    ],
}

在线语义 通用场景语义解析

PID仅普通话并且选远场模型才可以开启在线语义;在线条件下,会将识别的文本进行解析,找出文本的意图

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

demo测试:点击 在线和本地语义=>设置=>PID,语种

请求示例: 普通话 输入法模型

{"pid":15373,"accept-audio-volume":false}

本地语义

必须设置ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数生效,无论网络状况,都可以有本地语义结果。并且本地语义结果会覆盖在线语义结果。

NLU= enable表示开启本地语义

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

Demo测试:在线和本地语义=>设置=>本地语义解析enable && 本地语义文件 && 扩展词条

请求示例:设置本地语义的bsg文件路径,例如在asset目录下;

{"accept-audio-data":false,"grammar":"assets:\/\/\/baidu_speech_grammar.bsg",”pid”:1537, "slot-data":{"name":\["妈妈","老伍"\],"appname":\["手百","度秘”"\]},"nlu":"enable"}
  • 设置本地语义文件路径

使用本地语义需要设置bsg文件的路径,本地语义共用离线命令词的参数和文件。使用本地语义功能的时候,不需要作为ASR_KWS_LOAD_ENGINE的输入参数。但是需要作为ASR_START事件的输入参数。

ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数设置bsg文件路径。

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

Demo测试:在线和本地语义=>设置=>本地语义文件

请求示例:设置本地语义的bsg文件路径,例如在asset目录下;

{"accept-audio-data":false,"grammar":"assets:\/\/\/baidu_speech_grammar.bsg",”pid”:1537,”nlu”:”enable”}
  • 扩展本地语义文件的词条部分内容

bsg文件的左侧词条部分内容可通过SLOT_DATA参数进行动态覆盖,覆盖后原先的bsg文件中的左侧词条部分失效。和ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH一起使用。

SLOT_DATA参数动态覆盖bsg文件词条内容

DEMO中测试方法:(具体可参见识别安卓SDK测试文档)

Demo测试:在线和本地语义设置本地语义文件, 扩展词条

请求示例:动态覆盖bsg文件左侧词条内容

{"accept-audio-data":false,"grammar":"assets:\/\/\/baidu_speech_grammar.bsg",”pid”:1537, "slot-data":{"name":\["妈妈","老伍"\],"appname":\["手百","度秘”"\]},”nlu”:”enable”}
  • 更多UNIT问题可通过QQ群:805312106咨询沟通。