百度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並獲取識別結果。