FunASR 离线语音转写:Windows 本地部署 64 路并发实操手册
【免费下载链接】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)、标点恢复(PUNC)等全链路能力。在 Windows 上做本地部署,即可跑通完全离线的语音转写:音频不出本机、无需 GPU,16 核 CPU 能支撑 64 路并发。
上图为 FunASR 的整体布局:模型库、训练推理库、运行时与服务层四层,Windows 用户日常打交道的主要是后两层。
没有显卡能不能跑,数据会不会出本地
部署 ASR 服务前,大多数人最关心两个问题:要不要显卡、音频数据去哪里。
- 不需要 GPU:Windows SDK 2.0 支持中/英文离线文件转写,纯 CPU 即可运行,适合企业本地化部署
- 数据留在本地:语音数据完全在本机处理,不上传云端,适合金融客服、医疗记录、司法审讯等隐私敏感场景
- 性能有具体数字:16 核 CPU 服务器支持 64 路并发请求,实时率(RTF)低至 0.0076
- 输入格式省心:集成 FFmpeg,wav、mp3、mp4 等常见音视频可直接转写,无需预先转码
Windows 离线语音识别部署前要准备什么
硬件配置怎么选
| 档位 | CPU 核心 | 内存 | 支持并发 | 适用场景 |
|---|---|---|---|---|
| 基础 | 4 核 | 8GB | 32 路 | 个人 / 小团队 |
| 标准 | 16 核 | 32GB | 64 路 | 部门级应用 |
| 企业 | 64 核 | 128GB | 200 路 | 大规模集群 |
系统与软件要求
- 操作系统:Windows 10/11 专业版(64 位)
- 运行时:.NET Framework 4.8 或更高版本
- 容器:Docker Desktop for Windows,需启用 WSL2 后端;家庭版用户需先开启 WSL2,步骤可查微软官方文档
离线转写服务怎么启动
部署流程是「拉取项目 → 一键脚本 → 验证」三步,全程只需按脚本提示选项。
1. 拉取项目并进入部署目录
git clone https://gitcode.com/GitHub_Trending/fun/FunASR.git cd FunASR/runtime/deploy_tools2. 执行一键部署脚本
双击运行funasr-runtime-deploy-offline-cpu-zh.bat(同目录另有 shell 版funasr-runtime-deploy-offline-cpu-zh.sh,适合 WSL / Git Bash 环境),按提示完成配置:
- 模型类型:1 = 基础转写,2 = 带时间戳转写,3 = 热词增强
- 服务端口:默认 10095,可自定义
- 工作目录:建议选 D 盘等非系统盘,避免权限问题
如果提示docker: command not found,先安装 Docker Desktop 并重启电脑。
服务启动后,每条音频会走完整离线转写链路:语音端点检测 → 声学模型解码 → 标点预测 → 逆文本规范化(ITN),输出带标点、数字已规范化的文本。
3. 验证服务状态
- 浏览器方式:打开
http://localhost:10095,能看到服务状态页即部署成功 - 命令行方式:
curl http://localhost:10095/health预期返回{"status":"healthy","version":"2.0"}。
转写任务怎么调用:单文件、批量与 Web 界面
单文件转写
仓库在runtime/python/websocket目录提供了 Python WebSocket 客户端:
python funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "C:/meeting_recording.wav" --use_itn 1常用参数:
--audio_in:支持 wav/mp3/mp4 等格式,也支持网络音频 URL--use_itn 1:开启数字规范化,例如 "123" 输出为「一百二十三」--hotword:指定热词文件路径,提升专业术语识别准确率
批量文件处理
先建一个wav.scp文件,每行「标识 路径」,例如会议记录1 C:/audio/meeting1.mp3。转写时把--audio_in指向该 scp 文件,并追加--output_dir "C:/transcripts",结果会统一落到指定输出目录。
免代码的 Web 界面
在浏览器打开runtime/html5/static/index.html,即可上传文件转写或实时录音转文字,适合不想写代码的场景。
生产化调优:并发、长音频与日常运维
线程与内存怎么调
- 解码线程数 ≈ CPU 核心数 ÷ 2,IO 线程数 ≈ 核心数 ÷ 4。例如 16 核机器可设为 8/4:
funasr-runtime-deploy-offline-cpu-zh.bat update --decode_thread_num 8 --io_thread_num 4 - 超过 1 小时的超长音频,启用分片处理:
... update --max_single_audio_length 3600 - 按行业换用专用模型:医疗
damo/speech_paraformer-large_asr_nat-zh-cn-16k-medical-vocab5000-pytorch,金融damo/speech_paraformer-large_asr_nat-zh-cn-16k-financial-vocab8404-pytorch,通过update --asr_model <模型名>替换
服务管理命令与日志
| 操作 | 命令 |
|---|---|
| 启动 | funasr-runtime-deploy-offline-cpu-zh.bat start |
| 停止 | funasr-runtime-deploy-offline-cpu-zh.bat stop |
| 重启 | funasr-runtime-deploy-offline-cpu-zh.bat restart |
| 状态 | funasr-runtime-deploy-offline-cpu-zh.bat status |
服务日志在workspace/logs目录;性能方面可用 Windows 性能监视器跟踪 CPU 与内存占用。更细粒度的部署参数,可查 离线部署进阶文档。
三个高频问题
- 端口被占用(容器闪退、日志报 "port is already allocated"):用
netstat -ano | findstr :10095找到占用进程,再执行taskkill /PID <进程ID> /F强制结束 - 转写准确率不理想:到 模型列表 换更新的模型;在
workspace/hotwords.txt中按「热词 权重」逐行添加热词;用 Audacity 等工具把音频统一为 16kHz 采样率 - 防火墙拦截:执行
netsh advfirewall firewall add rule name="FunASR" dir=in action=allow protocol=TCP localport=10095放行入站端口
这套本地方案目前主要落在四类需求上:金融客服质检、医疗语音病历、司法审讯转写、教育课堂字幕。后续版本计划补充多语言混合转写、GPU 加速、实时自定义词典更新,以及更丰富的 API 与 SDK。
【免费下载链接】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),仅供参考