百度Android语音识别SDK分在线与离线两种。这篇文章介绍在线SDK的用法。php
在线SDK是以JAR包和动态连接库形式公布和使用。可以从百度开放云平台站点中下载SDK及使用说明文档。css
http://developer.baidu.com/wiki/index.php?title=docs/cplat/media/voicehtml
完毕语音SDK的集成分下面几步。本文将一步步介绍SDK集成方法。java
一、注冊开放开放平台 android
点击管理控制台。选择移动应用管理git
选择建立应用,填写应用名称网络
可以看到右上角有ID、API KEY、Secret KEY。点击可以复制其内容,保存这些字符串,在使用语音SDK时会用到。ide
二、申请开启语音识别服务 。选择媒体云---语音识别,点击申请开启服务,填写理由。
post
等待对接成功this
三、使用语音识别SDK前的准备
以前准备了SDK开发包以及ID、API KEY、Secret KEY。
首先将开发包中的lib中的库加入到project中
声明权限
SDK有两种实现语音识别的方式,一种是直接使用SDK中的语音识别控件。一种是使用SDK中的语音识别服务。
语音识别控件方式
语音识别控件BaiduASRDigitalDialog。提供了整套语音交互、提示音、音量反馈、动效反馈。开发人员初始化一个BaiduASRDigitalDialog对象,并设置相关參数及结果回调,调用Show()方法就可以弹出对话框開始识别。识别结束后会在回调中获得识别结果。
识别对话框支持的參数定义在BaiduASRDigitalDialog中以PARAM_前缀的常量。列表例如如下:
PARAM_API_KEY |
string |
|
开放平台认证API_key |
PARAM_SECRET_KEY |
string |
|
开放平台认证Secret_key |
PARAM_LANGUAGE |
string |
LANGUAGE_CHINESE |
语种,取值定义在VoiceRecognitionConfig类中前缀为LANGUAGE_的常量 |
PARAM_PARTIAL_RESULTS |
boolean |
true |
连续上屏 |
PARAM_NLU_ENABLE |
boolean |
false |
是否语义解析。 Prop为输入时暂不支持语义,请显示指定为其余领域。 |
PARAM_NLU_PARAMS |
string |
|
预留语义解析參数 |
PARAM_PROP |
int |
PROP_INPUT |
领域參数。定义在VoiceRecognitionConfig类中前缀为PROP_的常量 |
PARAM_PORMPT_TEXT |
string |
“请说话” |
对话框提示语 |
PARAM_PROMPT_SOUND_ENABLE |
boolean |
true |
提示音,需要集成SDK包Raw目录的资源 |
PARAM_DIALOG_THEME |
int |
THEME_BLUE_LIGHTBG |
样式。 定义在前缀为THEME_的常量中 |
PARAM_TIPS |
String[] |
|
引导语列表 |
PARAM_SHOW_TIPS_ON_START |
boolean |
false |
对话框弹出时首先显示引导语列表 |
PARAM_SHOW_TIP |
boolean |
false |
识别启动3秒未检測到语音,随机出现一条引导语 |
PARAM_SHOW_HELP_ON_SILENT |
boolean |
false |
静音超时后将“取消”button替换为“帮助” |
方法 |
參数 |
描写叙述 |
enableBeginSoundEffect |
int soundResourceId 启动提示音资源Id |
设置開始提示音,soundResourceId为放置在Raw目录的资源Id。
|
enableEndSoundEffect |
int soundResourceId 说话结束提示音资源Id |
检測到用户说话结束播报的提示音,非识别结束 |
setSampleRate |
int rate 採样率 |
设置音频採样率, 一般建议开发人员不指定採样频率。由BDVRClient本身主动依据当前网络环境选择採样频率。WiFi环境下将使用16kHz採样。移动网络下将使用8kHz採样,来节省流量。 參考常量定义 SAMPLE_RATE_8K 8K採样率 SAMPLE_RATE_16K 16K採样率 |
setProp |
int prop |
开发人员可以经过指定垂直分类来获取更精准的语音识别结果。 注:垂直分类眼下支持地图,音乐。视频。APP。网址,开发人员需要注意设定採样频率时仅仅能在这五种垂直分类中选择。 若指定其余分类,可能会影响识别结果的精度。 參考PROP_前缀的常量定义。 |
setUseDefaultAudioSource |
boolean useDefaultSource |
设置是否使用缺省的录音。 假设不使用,用户需要调用VoiceRecognitionClient对象的feedAudioBuffer方法为识别器提供语音数据 |
enableNLU |
|
启用语义解析,仅仅在搜索模式起做用 |
getSampleRate |
|
获取当前识别採样率 |
setLanguage |
String Language |
设置语种。 眼下支持的语种有中文普通话(LANGUAGE_CHINESE)、中文粤语(LANGUAGE_CANTONSE)、英文(LANGUAGE_ENGLISH)。 |
開始语音识别,BDVRClient在開始识别后。会启动录音、预处理、上传到server并获取识别结果。