尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

FunASR 本地部署三步跑通离线语音转写服务:Docker 一键部署与避坑清单

FunASR 本地部署三步跑通离线语音转写服务:Docker 一键部署与避坑清单 FunASR 本地部署三步跑通离线语音转写服务Docker 一键部署与避坑清单【免费下载链接】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 即可不需要 GPU转写数据不出内网。适用 / 不适用先判断该不该用这条路径这一节帮你在动手前判断方案是否匹配你的需求避免装完环境才发现方向错了。✅ 需要离线转写音视频文件wav、mp3、mp4 等非 wav 格式依赖 ffmpeg✅ 批量转写用 wav.scp 清单一次处理一个目录的录音✅ 隐私敏感场景录音不能外传的合规需求✅ 机器没有 GPU只有一台 Linux 服务器⚠️ 需要边说边出的低延迟实时转写本文的镜像是离线文件转写实时场景要走 online/2pass 服务是另一套部署⚠️ 要训练或微调自己的模型用 FunASR 的训练部分而不是运行时⚠️ 你的机器是 macOS 且不想碰 Docker一键脚本面向 Linux 发行版部署前检查清单5 分钟查完 6 项开始之前这一节帮你排除最常见的三类启动失败Docker 依赖缺失、端口被占、磁盘不够。检查项要求检查方式操作系统LinuxUbuntu / Debian / CentOS 等cat /etc/os-releaseDocker已安装且守护进程在运行docker info能打印服务端信息端口默认 10095 未被占用可改ss -tlnp \| grep 10095无输出磁盘预留 20GB 以上模型首次运行自动下载df -hffmpeg转写 mp4 等视频格式时才需要ffmpeg -version网络首次运行要拉取 VAD / ASR / 标点模型能访问模型仓库即可一键部署脚本位于仓库的runtime/deploy_tools/funasr-runtime-deploy-offline-cpu-zh.sh下面三步都围绕它展开。三步跑通服务从克隆到拿到第一句转写第一步获取源码做什么克隆仓库并进入部署脚本目录。git clone https://gitcode.com/GitHub_Trending/fun/FunASR cd FunASR/runtime/deploy_tools判断成功当前目录能看到funasr-runtime-deploy-offline-cpu-zh.sh。卡住了查哪里clone 失败基本是网络问题稍等重试即可。第二步一键安装做什么以管理员权限执行安装命令。sudo bash funasr-runtime-deploy-offline-cpu-zh.sh install脚本会依次交互选 Docker 镜像、选 ASR / VAD / 标点 / 语言模型一路回车用默认即 Paraformer-large FSMN-VAD CT-Transformer 标点模型覆盖通用中文、输入宿主机端口默认 10095、输入 Y 确认。判断成功终端打印 “The service has been started.”且示例客户端已下载到当前目录的funasr-runtime-resources/samples。卡住了查哪里两个文件——~/.funasr_offline/progress.txt模型下载进度和~/.funasr_offline/server_console.log服务日志如果是端口被占容器会起不来先按下一节处理方法解决。另一个细节SSL 默认开启客户端以 wss 方式连接想用明文 ws 就在 install 后追加--ssl 0。第三步转写一条音频验证做什么用部署时带下来的 Python 客户端转写一条音频。python3 ../funasr-runtime-resources/samples/python/funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in 你的.wav判断成功终端打印出完整转写文本客户端收到的最终确认里is_final: true。批量场景写一个 wav.scp每行“录音名 音频路径”--audio_in指向这个 .scp 文件结果写入--output_dir指定的目录。不想敲命令的话仓库runtime/html5目录还有一个浏览器测试页填入 wss 地址即可在网页里转写。卡住了查哪里连接超时先查端口和 SSL 开关长音频迟迟不返回时注意客户端默认等待 300 秒可用--result_timeout调大。高频问题速查5 个症状对应的原因和解法服务跑起来之后这一节帮你把最常踩的坑一次说清格式统一为现象 → 原因 → 解法。端口被占容器起不来现象install 提示端口已被占用。原因10095 被其他进程占了。解法先定位占用进程再杀进程或换端口。ss -tlnp | grep 10095换端口执行sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --host_port 20095服务会自动重启。脚本提示 docker 命令不存在现象报 “docker: command not found”。原因Docker 依赖没装。解法install 流程里自带 Docker 自动安装若安装失败手动跑runtime/deploy_tools/install_docker.sh。mp3 / mp4 转写失败现象wav 正常、mp3 报错。原因缺少 ffmpeg。解法apt 或 yum 安装 ffmpegPython 客户端侧还需ffmpeg-python包。专业术语总被识别错现象同一批专有名词反复出错。原因通用模型没见过你的词。解法在funasr-runtime-resources/models/放一份 hotwords.txt每行“热词 权重”例如阿里巴巴 20术语量大的话用 update 命令把--asr_model换成带 nn 热词的 contextual Paraformer 模型。想要带时间戳的结果现象默认输出是纯文本没有时间戳。原因默认 ASR 模型不带时间戳。解法update --asr_model换成时间戳模型 damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx。性能与调优16 核 CPU 能扛多少并发这一节只讲和你直接相关的两个问题机器够不够用、线程要不要动。FunASR 官方基准测试见runtime/docs/benchmark_onnx_cpp.md显示16 核 Xeon 机器上8 路并发转写的 RTF 约 0.0076fp32int8 量化后降到约 0.003664 路并发下服务依然稳定。也就是说单台 16 核机器足够支撑一个小团队日常的批量转写量。需要调整时只看两个参数解码线程默认等于核心数IO 线程默认核心数除以 4通过update --decode_thread_num和update --io_thread_num修改改完服务自动重启生效。下一步建议用真实数据验证生产流程demo 音频转通后别停挑 510 条你自己业务的真实录音放进 wav.scp把批量流程完整走一遍对照--output_dir里的文本检查两件事——时长是否覆盖完整音频、专业术语错了几处。术语错误率高于 2% 再回头加热词这样这套 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/FunASR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表