FunASR 离线转写本地部署全攻略:从环境到上手的完整路径
FunASR 离线转写本地部署全攻略从环境到上手的完整路径【免费下载链接】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 是达摩院开源的语音识别工具包集 VAD、离线转写、标点恢复、ITN 于一体。按下面的步骤操作你可以在自己的机器上完成 FunASR 本地部署把 wav、mp3 等文件转成带标点的文字全程不上传云端。快速开始3步拉起离线转写服务部署前先看最低要求项目最低要求推荐配置CPU4核16核可支撑约64路并发内存8GB32GB系统Linux x86_64已安装 Docker获取项目源码git clone https://gitcode.com/GitHub_Trending/fun/FunASR cd FunASR执行 一键部署脚本它会引导你选择 ASR 模型、拉取 Docker 镜像并自动下载 VAD/ASR/标点三类模型bash runtime/deploy_tools/funasr-runtime-deploy-offline-cpu-zh.sh脚本默认把模型和日志放在funasr-runtime-resources/目录预留至少 5GB 磁盘空间不建议放在系统盘。脚本输出 server is running 即表示服务已启动默认监听 10095 端口。用 Python 客户端发一条音频验证cd runtime/python/websocket pip install -r requirements_client.txt python funasr_wss_client.py --host 127.0.0.1 --port 10095 \ --mode offline --audio_in ./asr_example.wav控制台返回带标点的文本说明本地部署成功。工作原理一条音频的完整旅程客户端通过 WebSocket 连上 10095 端口的 funasr-wss-server逐帧上传音频。服务端先经 FSMN-VAD 做语音端点检测把音频切成只含人声的片段再由 Paraformer-Large 声学模型解码出字序列期间语言模型与热词偏置会纠正专名最后 CT-Transformer 补上标点ITN 模块把一百二十三这类读法还原为123最终返回带时间戳和标点的文本。⚙️ 进阶配置并发、模型与热词调并发线程数。当并发转写时 CPU 利用率上不去、或单文件处理偏慢时再动它脚本默认已按核数自动分配。在 run_server.sh 启动参数中显式指定nohup bash run_server.sh \ --decoder-thread-num 8 \ --io-thread-num 4 \ --model-thread-num 1 log.txt 21 预期效果decoder-thread-num 即最大并发路数保持 decoder-thread-num × model-thread-num 等于 CPU 总核数最均衡。切换到时间戳模型。需要输出句子级时间戳时把--model-dir换成带 vad-punc 的版本--model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx预期效果返回结果中每句都附带 begin_time/end_time 字段改完参数需重启服务生效。挂热词文件。专名、产品名识别率上不去时准备一个 hotwords.txt每行一个词FunASR 20 达摩院 10用--hotword指向该文件并重启服务预期列表中术语的识别率明显提升权重数值越大偏置越强。场景实战单文件与批量转写单文件转写python funasr_wss_client.py --host 127.0.0.1 --port 10095 \ --mode offline --audio_in ./meeting.wav --use_itn 1--audio_in支持 wav/mp3/mp4也支持网络 URL--use_itn 1开启逆文本规范化--output_dir把结果写入指定目录预期输出终端打印带标点、数字已规范化的文本例如好的我们三点开会。批量转写先写一个 wav.scp每行名字 路径会议1 /data/audio/meeting1.mp3 客户2 /data/audio/call2.wav再执行python funasr_wss_client.py --host 127.0.0.1 --port 10095 \ --mode offline --audio_in ./wav.scp --output_dir ./results \ --thread_num 4预期输出results/下每个文件对应一份转写文本--thread_num 4表示 4 路并发发送。Web 界面浏览器打开 html5 页面即可上传文件或直接麦克风转写无需写任何代码。 排障与避坑如果脚本报 port already allocated通常是 10095 已被其他进程占用。用ss -lntp | grep 10095找到占用者杀掉后重试或在启动时换一个空闲端口。如果客户端提示 SSL 证书校验失败是因为服务端默认挂的是自签名证书。测试阶段可加--ssl 0关闭客户端校验正式环境建议在服务端传--certfile 0关掉 SSL或替换为受信任证书。如果某个词反复被识别成同音字多半是词表问题。建一个 hotwords.txt 挂到服务上重启后该词全局生效个别客户端也可单独通过--hotword传一份只对自己生效的热词。从一键脚本拉起离线转写服务到线程参数控制并发、热词文件兜住专名核心动作就这三件。参数细节与定制流程见 离线转写 SDK 文档流式识别与 2pass 模式可以参考 快速开始指南。服务已经跑起来了剩下的事就是喂音频。【免费下载链接】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),仅供参考