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/FunASRDocker 是 FunASR 运行时runtime最常用的交付方式之一但不同镜像对应完全不同的使用路径PythonAutoModelSDK、C 运行时服务与开发环境在镜像中的角色和边界并不相同。本文以 Docker 与运行时镜像 为主干结合仓库中 Dockerfile.online.cpu、online-cpu-entrypoint.sh 等源码完整讲解镜像选型、拉取前的安全检查、离线/在线/GPU 服务镜像的选用以及从当前源码重建在线 CPU 运行时的完整流程读完后你可以独立完成一次合规、可复现的 FunASR 容器化部署。拉取镜像前先确定你的执行路径FunASR 仓库提供的是三种不同的产品而不是一个万能镜像PythonAutoModelSDK面向训练、推理脚本开发使用from funasr import AutoModel编程接口C 运行时服务面向生产部署提供离线文件转写、实时语音听写online/2pass等服务通过 WebSocket 等协议对外提供开发环境用于二次开发与模型调试通常需要单独的 Python/PyTorch 容器。这三者不能混用。尤其要注意在已发布的运行时镜像里升级 Python 包并不会重新编译其内部的 C 可执行文件也不会让该服务自动支持所有 Python 模型。镜像内 C 服务所支持的模型、协议与参数由镜像构建时确定的运行时 SDK 决定。因此选镜像之前必须先想清楚要用哪条路径。1. 检查宿主机 Docker 环境无论使用哪条路径第一步都是确认宿主机 Docker 可用docker version docker infoLinux 环境按 Docker Engine 安装说明 操作macOS/Windows 使用 Docker DesktopWindows 参考。不要将未经审查的安装脚本通过管道交给高权限 shell 执行例如curl ... | sudo bash这类模式应先下载、审查脚本内容再执行。GPU 容器还需要兼容的宿主机驱动与容器 GPU 运行时配置。--gpus all只是向容器请求设备访问权限不会安装驱动也不会把 CPU 镜像变成 GPU 镜像。使用镜像前请确认镜像架构与宿主机匹配如arm64与amd64不能混用。2. 选择运行时或开发路径仓库记录的四条主要路径及对应镜像/构建入口如下表。表格中的精确镜像引用来自当前工作区文档属于仓库中有据可查的引用并不代表这些镜像仓库的可用性、安全更新或推理能力已在本轮文档审查中验证部署前请自行核验。路径仓库记录的镜像或构建入口后续指南离线 C CPU 服务registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7CPU 服务指南离线 C GPU 服务registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-gpu-0.2.1GPU 服务指南在线/两遍 C CPU 服务registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13在线服务指南从当前源码重建在线 CPU 运行时Dockerfile.online.cpu使用 digest 锁定的基础镜像同上会重编译 C 服务并安装当前源码Python SDK 开发单独选择并验证的 Python/PyTorch 环境源码安装记录基础镜像 digest 和依赖版本历史镜像仅作参考不作为当前推荐上述持续维护的源码构建路径与页面旧版本推荐的历史开发镜像不同registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-py38-torch1.11.0-tf1.15.5-1.8.1该 ModelScope 开发镜像目前仅保留作历史查阅不作为当前 FunASR 运行时推荐也不保证与新模型依赖兼容。同理旧 CPU 标签funasr-runtime-sdk-cpu-0.4.1也属于历史记录完整的镜像演进可查阅运行时版本历史——其中记录了从 2023 年 0.1.0 到 2024 年 0.4.7 期间各标签的变更如 2024.03.05 起支持 arm64 平台、2024.05.15 适配 FunASR 1.0 模型结构、2024.09.26 修复内存泄漏等新部署请以当前运行时部署指南为准。3. 先检查镜像不对外暴露服务拿到一个镜像后正确做法是先进入容器 shell 检查环境而不是直接启动对外服务。以下以离线 CPU 运行时为例在 POSIX shell 中、切换到希望存放独立模型目录的位置后执行IMAGEregistry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7 docker pull $IMAGE docker image inspect $IMAGE --format {{.Os}}/{{.Architecture}} {{json .RepoDigests}} mkdir -p ./funasr-models docker run --rm -it --name funasr-runtime-shell \ --mount typebind,src$(pwd)/funasr-models,dst/workspace/models \ --entrypoint /bin/bash $IMAGE这段命令依次完成拉取镜像并固定到变量$IMAGE便于后续复用检查镜像元数据docker image inspect输出操作系统/架构以及RepoDigests镜像 digest用于确认镜像架构与宿主机匹配、记录可复现的精确版本标识创建模型挂载目录./funasr-models以交互式 shell 启动临时容器--rm表示退出即删除容器-it进入交互终端--mount typebind将宿主机模型目录绑定到容器内/workspace/models--entrypoint /bin/bash覆盖默认入口。请注意这仅启动了 shell并不是已经配置好的转写服务。输入exit后临时容器会被删除但绑定挂载目录中的模型文件会保留在宿主机。如需从另一终端查看或停止该容器docker ps --filter namefunasr-runtime-shell docker stop funasr-runtime-shell安全基线模型选择、可执行文件参数、协议与客户端用法请查阅对应服务指南离线见 CPU 服务指南 与 GPU 服务指南在线见 在线服务指南。发布测试端口时先绑定回环地址例如-p 127.0.0.1:10095:10095在配置好访问控制与传输安全TLS之前不要直接暴露到公网。避免以下高危操作--privileged特权模式、挂载宿主机根目录如-v /:/workspace、将凭据烘焙进镜像、未经审查地开放公网端口。部分历史指南中的命令权限较宽如--privilegedtrue应结合自身实际需求评估取舍不要直接照搬。4. 从源码构建在线 CPU 运行时对于在线/两遍2passC CPU 服务这条路径仓库提供了持续维护的源码构建入口。审查 Dockerfile 与构建上下文后在仓库根目录执行docker build -f runtime/dockerfile/Dockerfile.online.cpu \ -t funasr-online-cpu:local .funasr-online-cpu:local是本地自行选择的构建标签不是镜像仓库发行版本。构建成功后启动与验证请按在线运行时指南执行注意源码更新后已有镜像不会自动包含新提交需要重新构建。Dockerfile 源码解析构建在做什么Dockerfile.online.cpu 的关键步骤结合仓库内测试 test_online_cpu_dockerfile.py 的断言可以相互印证ARG BASE_IMAGEregistry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13sha256:2a54c20f6b9e2fd253b24abd5c083545751485bcc26e038ed12eab3380c86d51 FROM ${BASE_IMAGE}以公开的funasr-runtime-sdk-online-cpu-0.1.13多架构镜像为工具链基底并用manifest digestsha256:...锁定保证构建可复现COPY . /workspace/FunASR复制当前工作区源码pip install --no-cache-dir -e ./对源码做可编辑安装按TARGETARCH分别选择amd64/arm64对应的 onnxruntime 与 ffmpeg 目录然后执行cmake -S runtime/websocket -B runtime/websocket/build -DCMAKE_BUILD_TYPERelease -DENABLE_PORTAUDIOOFF -DONNXRUNTIME_DIR... -DFFMPEG_DIR...并cmake --build重编译 C WebSocket 服务EXPOSE 10095声明服务端口VOLUME [/workspace/models]声明模型挂载点入口设置为online-cpu-entrypoint.sh。此外Dockerfile.online.cpu.dockerignore 会在构建上下文中排除.git、.github、__pycache__、web-pages等无关内容避免把大体积缓存与页面代码带入镜像。入口脚本与环境变量覆盖online-cpu-entrypoint.sh 是容器的默认入口。它首先支持透传任意命令exec $否则会以一组环境变量默认值启动funasr-wss-server-2pass环境变量默认值作用FUNASR_DOWNLOAD_MODEL_DIR/workspace/models模型下载目录FUNASR_MODEL_DIRdamo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx离线非流式ASR 模型FUNASR_ONLINE_MODEL_DIRdamo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx在线流式ASR 模型FUNASR_VAD_DIRdamo/speech_fsmn_vad_zh-cn-16k-common-onnx语音端点检测模型FUNASR_PUNC_DIRdamo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx标点预测模型FUNASR_ITN_DIRthuduj12/fst_itn_zh逆文本正则化ITN模型FUNASR_LM_DIRdamo/speech_ngram_lm_zh-cn-ai-wesp-fstN-gram 语言模型FUNASR_DECODER_THREAD_NUM自动取nproc解码线程数决定支持的最大并发路数FUNASR_IO_THREAD_NUM由解码线程数推导IO 线程数FUNASR_MODEL_THREAD_NUM1每路识别内部线程数控制 ONNX 模型并行FUNASR_PORT10095服务监听端口FUNASR_HOTWORD_FILE${model_root}/hotwords.txt服务端热词文件每行一个热词格式热词 权重例如阿里巴巴 20也就是说直接运行docker run -p 10096:10095 funasr-online-cpu:local就会以默认模型组合在 10095 端口启动 2pass 服务需要更换模型、线程或端口时通过上述环境变量覆盖即可例如docker run --rm -p 10096:10095 \ -e FUNASR_MODEL_DIRiic/SenseVoiceSmall-onnx \ -e FUNASR_PORT10095 \ -v $PWD/funasr-runtime-resources/models:/workspace/models \ funasr-online-cpu:local在线2pass服务集成了实时 VAD、流式与非流式两套 Paraformer-large、标点预测等多模型协同既能实时转文字又能在说话句尾用高精度转写结果修正输出并支持多路并发请求。更详细的服务端参数如--decoder-thread-num、--io-thread-num、--certfile/--keyfileSSL 配置、热词加载等见在线服务指南。5. Python SDK 开发与离线/在线路径如何衔接如果你需要的是 Python SDK 开发路径不要在运行时镜像里强行pip install升级 Python 包前面已经说明这不会重编译 C 服务。正确做法是在审查过的 Python/PyTorch 容器中按源码安装指南安装当前工作区源码可编辑安装python -m pip install -e .并记录基础镜像 digest 与依赖版本然后运行 SDK 教程 完成第一次转写需要 C 高并发服务时再回到本页的运行时镜像路径离线见 CPU 服务指南、GPU 服务指南在线见在线服务指南。6. 容器内依然要遵守的约束容器化部署不改变 FunASR 的软件/模型许可与安全边界模型缓存与离线准备模型权重与 Python 包分开下载由 hub 客户端管理缓存断网复现时应先在联网机器上准备完整模型快照含 VAD、标点、说话人等分模型传输完整目录后在禁用外连的环境中验证详见安装与安全说明。远程代码信任默认保持trust_remote_codeFalse只有模型确实需要且代码已经审查时才开启本地目录并不天然可信。许可分离FunASR 软件采用 MIT 许可模型权重采用各自条款软件与模型分别许可请查看对应模型卡与模型仓库说明。测试记录可复现性测试记录应包含精确镜像 digest、源码 commit 和模型 revision。结语FunASR 的 Docker 部署并不复杂但先选路径、再拉镜像是关键前提离线 C CPU/GPU 服务、在线 2pass 服务与 Python SDK 开发分别对应不同的镜像与文档入口。拉取镜像后先进入 shell 检查元数据与架构只绑定回环地址发布测试端口避免特权模式与宿主根目录挂载需要跟随最新源码时用 Dockerfile.online.cpu 从仓库根目录重建并通过 online-cpu-entrypoint.sh 暴露的环境变量灵活覆盖模型、线程与端口。更多运行时路径可继续阅读运行时概览与快速开始。【免费下载链接】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),仅供参考
返回列表