ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

FunASR 离线转写完整指南:在服务器上搭建高并发的本地 ASR 服务

FunASR 离线转写完整指南:在服务器上搭建高并发的本地 ASR 服务 FunASR 离线转写完整指南在服务器上搭建高并发的本地 ASR 服务【免费下载链接】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/FunASRFunASR 是达摩院语音实验室开源的语音识别工具包。这篇指南只讲一件事把 FunASR 离线转写服务部署到你自己的服务器上——用 Docker CPU 镜像加一键脚本默认端口 10095单文件、批量清单、Web 界面三种用法都覆盖适合做内网落地、会议录音转写、隐私敏感场景的工程师。FunASR 离线转写链路VAD、识别、标点、ITN 一次跑完FunASR 的离线软件包把整条链路整合在一个 C 服务里先用 FSMN VAD 做语音端点检测再用 Paraformer-large 做声学识别接着补标点最后叠加 ITN逆文本规范化和 ngram 语言模型。输出是带标点的文字并附带字级别时间戳。服务端内置 ffmpeg所以 mp3、mp4 这类带容器格式的音视频可以直接喂进去不需要预先转 wav。并发方面官方在 16 核 Xeon8269CY上的 CPU 基准测试结果可以作为参考单路 int8 推理 RTF 约 0.04864 路并发时 RTF 低到 0.0031也就是说十几小时的音频在几分钟内能跑完。如果你只想要更轻量的方案仓库里还有一套 Python 版 WebSocket 服务runtime/python/websocket支持 online、offline、2pass 三种模式但并发能力远不如 C 版适合先跑通流程再上生产。离线部署的最低配置要求先看机器够不够用。文档给出的推荐档位是三档都是纯 CPU、无需 GPUCPU内存单机可支撑并发典型用途4 核8G约 32 路小规模试用、单机测试16 核32G约 64 路部门级日常转写64 核128G约 200 路大批量集中处理软件侧只需要 Docker。一键脚本本身是 bash 脚本Linux 服务器直接跑Windows 用户装好 Docker DesktopWSL2 后端后进 WSL2 执行即可不必折腾 .NET 之类的环境。一键部署脚本从克隆源码到服务上线最小可行路径就是三步。克隆仓库进入runtime/deploy_tools以 root 运行离线部署脚本git clone https://gitcode.com/GitHub_Trending/fun/FunASR cd FunASR/runtime/deploy_tools sudo bash funasr-runtime-deploy-offline-cpu-zh.sh脚本是交互式向导按提示走完六步拉取可用镜像与模型清单依次选择 ASR、VAD、标点、LM 四类模型输入宿主机端口直接回车用默认的 10095确认参数然后自动装 Docker如果缺失并拉取镜像、启动容器。模型会自动下载到本地funasr-runtime-resources/models目录示例音频和客户端代码放在同级的samples目录里部署参数记录在~/.funasr_offline/config服务控制台日志在~/.funasr_offline/server_console.log。验证转写服务是否正常工作验证只保留一种最直接的办法用 Python WebSocket 客户端转一条样例音频能打印出带标点的文本就算通过。客户端 SSL 和 ITN 默认都是开启的本机自签证书环境下给客户端加--ssl 0即可cd FunASR/runtime/python/websocket pip install -r requirements_client.txt python funasr_wss_client.py --host 127.0.0.1 --port 10095 \ --mode offline --ssl 0 \ --audio_in 你的音频路径单文件转写与批量处理单文件转写就是上面的命令--audio_in指向任意一个音频或视频文件--use_itn默认开 1把二零二四读成2024这类规范化想关闭传 0。批量转写走 kaldi 风格的清单文件准备一个wav.scp每行编号 空格 音频路径然后把--audio_in指向这个 scp 文件再加--output_dir指定结果落盘目录python funasr_wss_client.py --host 127.0.0.1 --port 10095 \ --mode offline --ssl 0 \ --audio_in ./wav.scp --output_dir ./transcripts不想写命令的话仓库的runtime/html5/static/index.html是一个浏览器客户端打开页面填入 wss 地址和端口就能上传文件或对着麦克风实时转写适合做快速演示。并发不够、效果不佳、连接报错三个常见调优场景并发上不去先查服务端的线程池。--decoder-thread-num决定解码线程数也即支持的最大并发路数一键脚本默认按 CPU 核数设置IO 线程自动取解码线程的 1/4。要改的话编辑~/.funasr_offline/config里的PARAMS_DECODER_THREAD_NUM后重新走一遍脚本流程已有容器需先 remove 再装。转写效果不理想优先加热词。在模型目录放hotwords.txt每行格式是热词 权重权重 1~100建议词条长度不超过 10 个字符、总量不超过 1000 条。要更强的领域效果可以在run_server.sh里把--model-dir换成 nn 热词模型damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx需要句内时间戳则换带 vad-punc 的时间戳版模型。连接和输入报错按现象排查客户端报 SSL 错误说明两端证书没对齐客户端加--ssl 0服务端启动参数加--certfile 0关证书mp3、mp4 转不了C 服务端内置 ffmpeg 无需处理Python 客户端则要先在本机装 ffmpegWindows 上winget install ffmpeg超长音频等不到最终结果客户端的--result_timeout默认 300 秒按音频时长适当调大服务起不来先看端口——默认 10095 被占用是最常见原因换个端口重新部署即可。适用场景与延伸阅读这套组合拳最适合两类场景一是数据不能出内网的私有化部署客服质检、医疗记录、庭审转写二是没有 GPU 预算、想用纯 CPU 批量消化存量录音。往下可以继续看这几份仓库文档离线服务完整参数runtime/docs/SDK_advanced_guide_offline_zh.md各入口快速开始runtime/quick_start_zh.mdWebSocket 客户端与服务端说明runtime/python/websocket/README.md【免费下载链接】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),仅供参考
返回列表