FunASR 上 Android:从服务端到 App 的三步实时语音识别部署
2026/9/7 6:00:51 网站建设 项目流程

FunASR 上 Android:从服务端到 App 的三步实时语音识别部署

【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR

做车载语音助手、直播实时字幕,核心诉求都一样:你说的话要几百毫秒内变成屏幕上的文字。FunASR 是端到端语音识别工具包,VAD、识别、标点、逆文本规整开箱即用,也支持 Android 移动端部署:模型跑在服务器上,手机侧只是一个轻量的 WebSocket 客户端。下面带你用一套 Docker 部署起实时服务,再完成 Android 实时语音识别集成。

为什么模型放服务端而不是手机

FunASR 的 Android 方案不把模型塞进手机:客户端通过 WebSocket 把音频流推给服务端,模型推理在服务端完成,再回传文字。Paraformer 这类模型有几百 MB,手机的算力和存储都吃力;更重要的是换模型、调热词只改服务端,客户端不用发版。这种"端-云"拆分让 App 保持轻量,迭代也快。

⚙️ 服务端:三步启动 FunASR 2pass 服务

安装 Docker

服务器上两条命令装好 Docker,已安装可跳过:

curl -O https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/shell/install_docker.sh sudo bash install_docker.sh

卡住了就看 Docker Installation。

拉取镜像并挂载模型目录

这一步是 FunASR Docker 部署的核心:拉取官方实时 CPU 镜像,用一条docker run起容器。两个参数值得弄懂——-v把宿主机目录映射到容器内/workspace/models,模型和热词文件都放这里;-p 10096:10095把容器内服务端口 10095 映射到宿主机 10096,这就是后面 Android 客户端要连的地址。

sudo docker pull \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13 mkdir -p ./funasr-runtime-resources/models sudo docker run -p 10096:10095 -it --privileged=true \ -v $PWD/funasr-runtime-resources/models:/workspace/models \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13

启动 FunASR 2pass 实时服务

容器起来后,进入容器内FunASR/runtime目录执行run_server_2pass.sh,首次运行会自动下载模型。命令里各参数一一对应组件:--vad-dir端点检测、--model-dir离线高精主模型、--online-model-dir流式模型先出初稿、--punc-dir加标点、--lm-dir语言模型纠偏、--itn-dir逆文本规整、--hotword加载热词文件。2pass 流程就是流式模型快速响应、离线模型修正,客户端收到的是修正加标点后的结果。

cd FunASR/runtime nohup bash run_server_2pass.sh \ --download-model-dir /workspace/models \ --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ --model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx \ --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx \ --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx \ --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ --itn-dir thuduj12/fst_itn_zh \ --hotword /workspace/models/hotwords.txt > log.txt 2>&1 &

换模型、改端口、调推理线程数,到 SDK 进阶指南 的"服务端用法详解"一节查。

📱 客户端:从打开项目到看到识别结果

打开 AndroidClient 项目

示例客户端在仓库runtime/android/AndroidClient/目录,用最新版 Android Studio 直接打开即可。

按住即说的交互方式

App 只有一个流程:按住按钮开始录音识别,松开结束,识别结果实时滚动上屏。服务器地址和热词都能在菜单栏调整。

安装 APK 并首次配置服务器地址

用 Android Studio 编译出 APK 装到手机,首次启动填入刚才服务端的 WebSocket 地址(例如服务器IP:10096),之后随时可在菜单栏改。连上之后,按住说话就能看到结果。

WebSocket 协议:手机和服务端怎么对话

手机与服务端走 WebSocket 协议通信。FunASR 同时提供 Python、CPP、Java、C# 等语言的客户端示例,想自己写客户端,看 SDK 进阶指南 的"客户端用法详解"。

卡住了去哪里查

部署卡住,先查 实时语音听写服务开发指南 和 FQA,这是主要排错入口。若 FunASR 后续增加端侧本地推理形态,Android 客户端将不再依赖服务器,实时语音识别可完全在手机上完成。

【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询