[Android]百度語音識別集成過程記錄

集成說明:

在百度AI控制臺建立好自己的應(yīng)用之后跌前,下載SDK包聊替,解壓之后把core作為一個module直接導(dǎo)入每篷,參照以下流程即可正驻,需要權(quán)限申請陪腌,完整代碼參考demo或者百度的文檔

demo:

https://git.dev.tencent.com/zhoulei26/android-scarlet.git
百度原文檔

1 初始化

1.1 初始化EventManager對象

注意識別事件管理器只能維持一個梗逮,請勿同時使用多個實(shí)例

    private val asr: EventManager by lazy{
        // 基于sdk集成1.1 初始化EventManager對象
        // 第一個參數(shù)是Activity或其它Context類
      EventManagerFactory.create(activity, "asr")
    }

1.2 自定義輸出事件類

需要實(shí)現(xiàn)EventListener的輸出事件回調(diào)接口骇钦。該類需要處理SDK在識別過程中的回調(diào)事件所禀。

class BaiduyuyinFragment : BaseFragment(), EventListener

1.3 注冊自己的輸出事件類

就是把1.1 和 1.2 兩個關(guān)聯(lián)起來

asr.registerListener(yourListener)

2.1 設(shè)置識別輸入?yún)?shù)

val params = LinkedHashMap<String, Any>()
params[SpeechConstant.ACCEPT_AUDIO_VOLUME] = false
val json = JSONObject(params).toString()

離線模式額外設(shè)置

params[SpeechConstant.DECODER] = 2
params[SpeechConstant.ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH] ="assets://baidu_speech_grammar.bsg"
asr.send(SpeechConstant.ASR_KWS_LOAD_ENGINE, JSONObject(params).toString(), null, 0, 0)

離線命令詞: 斷網(wǎng)時激活蛹屿,只能識別預(yù)定義的短語屁奏。聯(lián)網(wǎng)時,強(qiáng)制使用在線識別错负。固定短語的語法需要從控制臺“離線詞&本地語義”模塊預(yù)定義并下載為baidu_speech_grammar.bsg文件

2.2 發(fā)送start開始事件

asr.send(SpeechConstant.ASR_START , json, null, 0, 0)

3 收到回調(diào)事件

3.1開始回調(diào)事件

即在1.2環(huán)節(jié)EventListener接口中處理回調(diào)事件
完整參數(shù)說明參見文章開頭百度原文檔
我們重點(diǎn)關(guān)注name==“CALLBACK_EVENT_ASR_PARTIAL”時的params
將params轉(zhuǎn)換成對象

val param=GsonUtils.fromJson(params, AsrPartial::class.java)

param.best_result //best_result即為我們需要的最佳結(jié)果

data class AsrPartial(
    val best_result: String,
    val error: Int,
    val origin_result: OriginResult,
    val result_type: String,
    val results_recognition: List<String>
)


data class OriginResult(
    val corpus_no: Long,
    val err_no: Int,
    val result: Result,
    val sn: String,
    val voice_energy: Double
)

data class Result(
    val word: List<String>
)

4控制識別

//發(fā)送停止錄音事件坟瓢,提前結(jié)束錄音等待識別結(jié)果
asr.send(SpeechConstant.ASR_STOP, null, null, 0, 0); 
//取消本次識別,取消后將立即停止不會返回識別結(jié)果
asr.send(SpeechConstant.ASR_CANCE, null, null, 0, 0);

離線語音識別注意點(diǎn):

  1. 官網(wǎng)申請應(yīng)用時的包名與build.gradle里一致犹撒,這步?jīng)]做會導(dǎo)致離線命令詞或者喚醒報“no licence” 錯誤.

  2. 離線引擎識別失敗 折联。離線識別引擎只能識別grammar文件中約定好的固定的話術(shù),即使支持的話術(shù)识颊,識別率也不如在線诚镰。請確保說的話清晰,是grammar中文件定義的祥款,測試成功一次后清笨,可以保存錄音,便于測試刃跛。實(shí)測識別率非常低!

  3. 離線識別文件在官網(wǎng)--控制臺--語音技術(shù)--離線詞&語義設(shè)置中,設(shè)置下載,之后替換掉assets中的同名文件即可.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抠艾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桨昙,更是在濱河造成了極大的恐慌检号,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛙酪,死亡現(xiàn)場離奇詭異齐苛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)滤否,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門脸狸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人藐俺,你說我怎么就攤上這事炊甲。” “怎么了欲芹?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵卿啡,是天一觀的道長。 經(jīng)常有香客問我菱父,道長颈娜,這世上最難降的妖魔是什么剑逃? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮官辽,結(jié)果婚禮上蛹磺,老公的妹妹穿的比我還像新娘。我一直安慰自己同仆,他們只是感情好萤捆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著俗批,像睡著了一般俗或。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上岁忘,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天辛慰,我揣著相機(jī)與錄音,去河邊找鬼干像。 笑死帅腌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝠筑。 我是一名探鬼主播狞膘,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼什乙!你這毒婦竟也來了挽封?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤臣镣,失蹤者是張志新(化名)和其女友劉穎辅愿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忆某,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡点待,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弃舒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癞埠。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖聋呢,靈堂內(nèi)的尸體忽然破棺而出苗踪,到底是詐尸還是另有隱情,我是刑警寧澤削锰,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布通铲,位于F島的核電站,受9級特大地震影響器贩,放射性物質(zhì)發(fā)生泄漏颅夺。R本人自食惡果不足惜朋截,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吧黄。 院中可真熱鬧部服,春花似錦、人聲如沸稚字。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胆描。三九已至,卻和暖如春仗阅,著一層夾襖步出監(jiān)牢的瞬間昌讲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工减噪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留短绸,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓筹裕,卻偏偏與公主長得像醋闭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朝卒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容