手機斷網離線使用FunASR識別麥克風語音內容
--本地AI電話機器人
上一篇:阿里FunASR本地斷網離線識別模型簡析
下一篇:手機無網離線使用FunASR識別手機歷史通話錄音
- 一、前言
繼上一篇《阿里FunASR本地斷網離線識別模型簡析》和前面幾篇ASR相關理論的敘述,本篇章中,將阿里FunASR的語音識別整合到Android應用中,使用手機麥克風中捕獲到的語音數據進行簡單的ASR語音文字識別,將ASR識別的結果文字,按照時間順序展示到界面的列表上進行排列展示。
由于麥克風捕獲的語音數據可能會存放為wav或mp3文件,在識別檢測的結果中為了便于錄音回放時根據播放的時間戳來定位到對應的ASR文字內容。在ASR展示和本地存儲時,針對每一段帶標點的最終檢測結果,前面均加上時間戳形成【時間戳毫秒]文字內容】這樣的展示格式,便于后續進行加工和處理。
體驗和下載地址:
撥號器SDK示例app:http://120.78.211.195:8060/sdk/SdkDemo.apk
USB藍牙配件購買路徑(參考):https://item.taobao.com/item.htm?_u=pk10l4ccbcd&id=649368472986
- 二、功能入口
我們在Android應用(撥號器SDK示例app)中,主界面【功能設置】區域增加了“通話對方聲音轉文字”的復選框。勾選該復選框即可開啟FunASR的本地斷網離線ASR識別的功能。
功能開啟后,主界面將顯示【通話聲音實時ASR轉文字】的列表展示區域,如下圖所示:
為了便于錄音回放時根據播放的時間戳來定位到對應的ASR文字內容。在ASR展示和本地存儲時,針對每一段帶標點的最終檢測結果,前面均加上時間戳形成【時間戳毫秒]文字內容】這樣的展示格式(如圖中的【4000]數據也還可以..】內容即為這一段話是點擊“麥克風測試”按鈕后,第4秒開始說話的ASR解析內容)。
- 三、操作和ASR識別的方法
主界面的【通話聲音實時ASR轉文字】區域,只有一個按鈕【麥克風測試/停止錄音】。用戶可以在ASR功能加載完畢后,手動點擊該按鈕,進行手機麥克風語音數據的ASR轉文字的識別。
在識別過程中,用戶也可以自由的取消勾選【功能設置】區域的“通話對方聲音轉文字”的復選框,應用會自動停止錄音并釋放ASR模塊占用的CPU和內存資源。(運行內存會從983Mb降到250Mb左右)
- 四、ASR識別的前置條件
由前文《阿里FunASR本地斷網離線識別模型簡析》可知:App采用動態加載的方式,將FunASR的識別功能拆分為【JNI動態庫】【FunASR的模型文件】兩部分內容。
在App中,默認將上述兩部分的所有文件,下載到手機【/sdcard/ade/】目錄下解壓存放。使用時再逐個動態加載到App的運行內存,進行ASR模塊的初始化。正常情況下手機sdcard目錄中解壓后的文件目錄組織如下:
Android應用中開啟ASR功能時會嘗試從sdcard路徑中檢測是否存在對應的so庫,若動態庫或模型文件不存在,則彈出對應的提示對話框和下載進度款,如下圖所示:
如果手機中之前并未下載,初次下載動態庫速度很快(約8.1Mb)。但模型文件會下載的很慢(約667Mb),按1Mbps的下載速度,最少需要667/60s=11分鐘。
筆者個人建議,如果存在多個手機設備,可以使用電腦將動態庫和模型文件的zip壓縮包先下載到本地電腦。然后在電腦解壓后,使用adb或本地網絡傳輸將文件內容拷貝到每個手機的【/sdcard/ade/】目錄。這樣可以加快多個手機設備的ASR依賴文件的加載。
- 五、總結
本文使用前面幾篇文章中闡述的理論,簡單的將阿里FunASR的模型裝進普通的Android手機中,并使用手機麥克風來體驗ASR語音文字識別的效果。經檢驗,識別的響應速度和文字內容的準確率相當的不錯。
感興趣的讀者朋友,也可下載對應的Android應用,實際進行ASR效果的體驗(識別時可以完全斷開Wifi和4G/5G等網絡),因為本篇章內容不依賴網絡即可正常做ASR識別。