Android手機無網離線使用FunASR識別麥克風語音內容

手機斷網離線使用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識別。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87656.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87656.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87656.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Stable Diffusion 項目實戰落地:從0到1 掌握ControlNet 第五篇 線稿到高清修復:一步步教你用AI做出完美IP形象

大家好!上一篇,我們一起玩轉了字體風格變換 ,讓文字根據提示詞進行自如變換,個性十足又充滿創意! 如果你錯過了那篇文章,別擔心,趕緊點這里補課:Stable Diffusion 項目實戰落地:從0到1 掌握ControlNet 第四篇 風格化字體大揭秘:從線稿到涂鴉,ControlNet讓文字煥發新生…

Java網絡編程:TCP/UDP套接字通信詳解

TCP客戶端套接字創建與使用 Socket類基礎概念 Socket類的對象代表TCP客戶端套接字,用于與TCP服務器套接字進行通信。與服務器端通過accept()方法獲取Socket對象不同,客戶端需要主動執行三個關鍵步驟:創建套接字、綁定地址和建立連接。 客戶端…

VMware vSphere 9與ESXi 9正式發布:云原生與AI驅動的虛擬化平臺革新

2025年6月18日,VMware正式推出其旗艦虛擬化平臺vSphere 9及配套的ESXi 9操作系統,標志著企業級虛擬化技術邁入以云原生、人工智能(AI)和硬件加速為核心的新紀元。此次更新不僅在功能層面實現突破,更通過授權模式革新為…

汽車功能安全概念階段開發【相關項定義HARA】2

文章目錄 1 淺談概念階段開發2 功能安全概念階段開發2.1 相關項定義2.2 危害分析與風險評估(HARA-Hazard Analysis and Risk Assessment) 3 關鍵輸出與對后續階段的影響4 總結 1 淺談概念階段開發 概念階段開發是整個研發流程的起點和基石。它發生在任何…

WPF中依賴屬性和附加屬性

依賴屬性(DependencyProperty) 依賴屬性是WPF中的一種特殊屬性,它的實現依賴于DependencyObject類提供的基礎設施。與普通的.NET屬性不同,依賴屬性的值可以通過多種方式確定,包括繼承、樣式、數據綁定和動畫等。 主要特…

Docker 中如何實現鏡像的推送和拉取

在 Docker 中,鏡像的推送(push)和拉取(pull)是通過與**Docker 鏡像倉庫(Registry)**交互完成的。默認倉庫是 Docker Hub,但你也可以使用私有倉庫(Harbor、Nexus、AWS ECR…

[C#] WPF - 自定義樣式(Slider篇)

一、定義樣式 在App.xaml里面定義樣式&#xff1a; <Applicationx:Class"WpfApp.StudySlider.App"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local&q…

eBPF 實戰指南:精準定位 TCP 重傳,洞察網絡瓶頸真相

更多云服務器知識&#xff0c;盡在hostol.com 你有沒有遇到過這種情況&#xff1f;網站訪問卡頓&#xff0c;接口響應慢得像蝸牛爬。你 ping 服務器沒丟包&#xff0c;CPU 內存也沒打滿&#xff0c;日志也沒報錯&#xff0c;結果就是不知道哪兒出的問題。 你用抓包分析&#x…

在 Ubuntu 系統上安裝 Docker 環境

在當今的開發環境中&#xff0c;Docker 已經成為容器化技術的主流選擇。它可以幫助開發者輕松地創建、部署和運行應用程序。本文將詳細介紹如何在 Ubuntu 系統上安裝 Docker 和 Docker Compose&#xff0c;并解決在安裝過程中可能遇到的一些常見問題。 一、安裝 Docker 1.卸載舊…

【Qt】QxORM無法刪除和更改主鍵值為0的行,否則報錯:invalid primary key

1、問題描述 使用 QxORM 刪除或者更改數據庫時,當主鍵值為 0 時,報錯: [QxOrm] invalid primary key2、原因分析 2.1 源碼分析 查找打印錯誤提示的代碼: #define QX_DAO_ERR_INVALID_PRIMARY_KEY "[QxOrm] invalid primary key" QSqlError IxDao_Help…

數學建模_線性規劃

問題背景模型介紹matlab求解 示例 問題背景 模型介紹 matlab求解 max問題轉化為min問題 > > >號轉化為 < < <號 示例 看到多個線性規劃目標 2個目標函數變成1個目標函數 后面省略

51單片機制作萬年歷

硬件設計 主控芯片&#xff1a;一般選用AT89C52單片機&#xff0c;它與MCS - 51單片機產品兼容&#xff0c;有8K字節在系統可編程Flash存儲器、32個可編程I/O口線、三個16位定時器 / 計數器等。時鐘芯片&#xff1a;常用DS1302時鐘芯片&#xff0c;能提供實時時鐘 / 日歷、定時…

Oracle CTE遞歸實現PCB行業的疊層關系

1、需求背景&#xff0c;出貨報告要實現疊板假層的處理&#xff0c;需求如下 表ID,layer,MEDIUM數據如下 第一種情況&#xff0c;layer有K的 IDlayerMEDIUM1L1-L2302L2-L3403L3-K1204K1-L4105L4-L5206L5-L6307L7-K2108K2-L8119L8-L91010L9-L1030 實現layer有K1的&#xff0c…

Kubernetes 服務發布基礎學習

一、Service 概述&#xff08;一&#xff09;Service 的定義Service 是 Kubernetes 中的一種抽象概念&#xff0c;用于定義一組 Pod 以及訪問這組 Pod 的策略。其核心作用是將一組 Pod 封裝為一個虛擬服務&#xff0c;并為客戶端提供統一的入口&#xff0c;從而實現服務的負載均…

【零基礎學AI】第21講:TensorFlow基礎 - 神經網絡搭建入門

本節課你將學到理解什么是TensorFlow&#xff0c;為什么要用它 掌握TensorFlow安裝和基本操作 學會搭建第一個神經網絡 完成手寫數字識別項目 開始之前 環境要求 Python 3.8至少4GB內存網絡連接&#xff08;用于下載數據集&#xff09; 前置知識 第1-8講&#xff1a;Python基礎…

STM32 串口USART通訊驅動

前言 本篇文章對串口Usart進行講解&#xff0c;為后面的esp8266和語音模塊控制打好基礎。 1.串口USART USART&#xff08;Universal Synchronous/Asynchronous Receiver/Transmitter&#xff0c;通用同步 / 異步收發器&#xff09; 是一種常見的串行通信接口&#xff0c;廣泛應…

pytorch版本densenet代碼講解

DenseNet 模型代碼詳解 下面是 DenseNet 模型代碼的逐部分詳細解析&#xff1a; 1. 導入模塊 import re from collections import OrderedDict from functools import partial from typing import Any, Optionalimport torch import torch.nn as nn import torch.nn.functional…

前端常見設計模式深度解析

# 前端常見設計模式深度解析一、設計模式概述 設計模式是解決特定問題的經驗總結&#xff0c;前端開發中常用的設計模式可分為三大類&#xff1a; 創建型模式&#xff1a;處理對象創建機制&#xff08;單例、工廠等&#xff09;結構型模式&#xff1a;處理對象組合&#xff08;…

React 學習(3)

核心API——React.creatElement()方法優點&#xff1a;將創建元素、添加屬性和事件、添加內容和子元素等使用原生dom需要進行復雜操作才能實現的功能集成在一個API中。1.該方法接收三個參數第一個是要創建的元素的名稱&#xff08;小寫是因為如果&#xff0c;大寫開頭會被react…

傾斜攝影無人機飛行航線規劃流程詳解

在傾斜攝影測量項目中&#xff0c;航線規劃的嚴謹性直接決定了最終三維模型的質量與完整性。照片覆蓋不全、模型空洞、紋理模糊或分辨率不達標等問題&#xff0c;往往源于規劃階段對關鍵細節的疏忽。本文將系統梳理傾斜攝影無人機航線規劃的核心流程與關鍵要點&#xff0c;旨在…