ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

FunASR 部署路径选择矩阵:从 Colab 试跑到 vLLM 加速与 Kubernetes 部署

FunASR 部署路径选择矩阵:从 Colab 试跑到 vLLM 加速与 Kubernetes 部署 FunASR 部署路径选择矩阵从 Colab 试跑到 vLLM 加速与 Kubernetes 部署【免费下载链接】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 面向不同场景浏览器冒烟测试、离线批处理、OpenAI 兼容 API、Docker/Kubernetes 服务、实时流式、vLLM 加速的最短部署路径。读完后你可以按产品、演示、基准测试或内部工作流的要求选中最小的起步配置并在吞吐、延迟与集成需求明确后平滑迁移到更重的运行时同时掌握每个路径对应的仓库入口文件、命令行参数与验证边界。一、文档定位先选最短路径再谈规模化部署选择矩阵 是一份需求 → 部署路径的决策指南核心原则是先从满足要求的最小配置开始当吞吐throughput、延迟latency、集成integration要求明确时再迁移到更重的 runtime。文档同时提示了一个新入口中文、英文、日文转写可以直接从 Transformers 5.17.0 的原生路径起步使用官方FunAudioLLM/Fun-ASR-Nano-2512-hfcheckpoint详见 Transformers 原生指南。需要注意其边界该路径提供 CPU 示例属于独立于 FunASR toolkit 与服务的路径原生输出只有文本不包含时间戳、说话人标签与 HTTP 服务器能力。二、快速决策表11 条部署路径一览决策表是本文的核心内容完整覆盖以下 11 条路径。每条路径给出了适用场景、起始文档与关键运维注意事项路径适用场景起始文档运维注意事项Colab notebook浏览器冒烟测试、首次评估、可分享的 demoColab 快速开始无需本地环境首次运行会下载模型GPU runtime 更快Python APINotebook、离线作业、首次模型评估README 快速开始最简路径batching、重试、文件管理由调用方负责OpenAI 兼容 API私有语音 API、Agent、Dify/LangChain/AutoGen 风格客户端OpenAI API 示例对已支持 OpenAI 音频 API 的应用接入最方便Docker Compose API可复现的本地冒烟测试、小型内部服务OpenAI API Docker 文档默认 CPU使用 CUDA 前需换成支持 CUDA 的镜像Kubernetes API集群服务化的内部语音 APIKubernetes 模板从私有ClusterIP起步扩大范围前先加认证、TLS、网络策略、GPU 调度Runtime WebSocket 服务实时字幕、会议、呼叫中心流Runtime 服务文档部分结果partial result、端点检测endpointing、长音频流是关键需求时使用vLLM 加速Fun-ASR-Nano 原生文件转写或 split-engine 解码官方原生验证记录、split-engine 指南两条路径的 checkpoint 与 API 不同不适用于非自回归 ParaformerMOSS-Transcribe-Diarize长音频多说话人转写、时间戳、说话人标签第三方 MOSS 指南OpenMOSS 的 Apache-2.0 模型已集成进 FunASRAutoModel可选backendhf、backendvllm、backendsglang模型的发布与维护仍由 OpenMOSS 负责MCP serverClaude/Cursor/桌面 Agent 的语音工具MCP 示例适合把 ASR 结果作为本地工具传给 Agent字幕生成器长音频/视频生成 SRT/VTT字幕示例可读性优先时启用 verbose 分段与说话人标签批处理 ASR 脚本归档、会议、数据集等重复性离线任务批处理示例生产环境需补上队列、manifest、重试日志从这张表可以看出 FunASR 的部署谱系从零依赖的浏览器 notebook到Kubernetes 集群服务再到Agent 工具链MCP和离线批处理各路径互不冲突可按需组合。三、高频场景深度解析3.1 想用 vLLM 跑 Fun-ASR-Nano两条互不兼容的路径文档明确指出 Fun-ASR-Nano 有两条 vLLM 集成路径checkpoint 与 API 都不同不能混用Split-engine 路径使用基础模型FunAudioLLM/Fun-ASR-Nano-2512由 FunASR 负责音频处理、vLLM 只跑 LLM decoder。详见 split-engine 指南。该指南在 安装与环境一节 中给出了vllm0.19.1加固定 FunASR 源码 commit 的起步环境并强调这不是完整的依赖锁文件也不是对每种 GPU 的干净安装验证split-engine 环境与下文的原生vllm serve验证环境应保持隔离。Native 路径vLLM 直接运行整个音频模型官方 checkpoint 为FunAudioLLM/Fun-ASR-Nano-2512-vllm。基础模型的配置与 checkpoint 之间不能互换。关于 native 路径的验证边界官方原生验证记录 给出了可核对的事实该记录对应模型 revisiona4362c943d48951f98ca2a62181cc028970270c5、vLLM 0.27.1、既有 H100 环境下的功能确认。文档特别提醒两点模型 revision 不是 FunASR 包版本依赖准备与执行步骤以验证记录为准记录中的环境为 Python 3.12.3、vLLM 0.27.1cu129、Torch 2.13.0cu129、Transformers 5.15.0、单卡 H100 80GBFP32/eager 启动验证范围有限只覆盖了文件输入的/v1/audio/transcriptions/v1/realtime、干净安装、长音频、说话人分离、生产吞吐均未验证。不能把它当作对 FunASR SDK 或其他 checkpoint 的验证实际运维音频与负载必须单独评估。3.2 5 分钟内试用 FunASR只动浏览器走 Colab 快速开始。对应 notebook 会安装 FunASR 与运行时依赖有 Colab GPU 时自动用cuda:0、否则用 CPU用paraformer-zh VAD 标点模型转写公开样例与本地上传音频并输出可分享的 transcript JSON。本地从 README 快速开始 的 Python API 入手。选型纠结参考 模型选择指南。3.3 需要云转写的本地替代OpenAI 兼容 API核心入口为四个端点/v1/audio/transcriptions文件转写/v1/models模型列表/health健康检查Swagger docs交互式 API 文档建议先用sensevoice做冒烟测试再把现有 SDK 或 HTTP 客户端按 OpenAI API 示例 接入。仓库源码可以印证这些端点的实现。examples/openai_api/server.py 中定义了MODEL_CONFIGS模型注册表目前内置四个 aliasalias底层模型说明sensevoiceiic/SenseVoiceSmall搭配fsmn-vadmax_single_segment_time30000paraformerparaformer-zh搭配 VAD 与ct-punc标点模型paraformer-enparaformer-en搭配 VADfun-asr-nanoFunAudioLLM/Fun-ASR-Nano-2512HF hub、trust_remote_codemoss-transcribe-diarizeOpenMOSS-Team/MOSS-Transcribe-Diarize固定model_revisionHF backend几个实现细节值得注意转写端点接收file、model、language、response_formatjson或verbose_json四个表单字段上传文件先落临时文件再交给AutoModel.generate(input..., batch_size1)verbose_json模式下会把sentence_info换算成以秒为单位的start/end并透传speaker字段见 transcribe 实现服务器内置 n8n 兼容别名客户端固定传whisper-1时会被映射到启动时预加载的默认模型resolve_openai_transcription_model这是为了兼容 n8n 等写死 OpenAI 模型名的工作流/health返回device、models_loaded已加载与models_available可加载两类信息便于运维区分模型未加载和模型不存在。3.4 可复现的容器 demoDocker Compose 两步走前提Docker Engine Docker Compose 插件且命令在FunASR 仓库根目录执行。文档强调该命令不会覆盖已有.env命令行显式传入的 port/device/model 优先级高于本次运行继承的环境变量host 侧监听只绑定 loopback但这不构成认证网关。共享前请先阅读安全指南。第一步启动本地 SenseVoice CPU 服务FUNASR_HOST_PORT127.0.0.1:8000 FUNASR_DEVICEcpu FUNASR_MODELsensevoice \ docker compose -f examples/openai_api/docker-compose.yml up --build这一步对应 examples/openai_api/docker-compose.yml端口映射为${FUNASR_HOST_PORT:-8000}:8000FUNASR_DEVICE、FUNASR_MODEL均有 CPU/sensevoice 默认值模型缓存挂载到命名卷funasr-cache并固定shm_size: 2gb。镜像由 examples/openai_api/Dockerfile 构建基于python:3.10-slim安装ffmpeg、git、libsndfile1再从 PyPI 安装funasr、fastapi、uvicorn[standard]、python-multipart容器内以--host 0.0.0.0启动并内置指向/health的HEALTHCHECK。第二步在第二个终端、同样的仓库根目录用 Python 3.10 验证。冒烟客户端只依赖标准库宿主机无需安装 FunASRpython3 examples/openai_api/smoke_test.py --base-url http://127.0.0.1:8000 --model sensevoice --response-format verbose_jsonsmoke_test.py 的行为细节与文档描述一一对应当前目录没有sample.wav时才下载公开中文语音样例存在则复用--sample-url可覆盖依次输出health、/v1/models元数据与转写 JSONverbose_json--response-format支持json/verbose_json两种取值HTTP 错误会打印状态码与响应体并返回非零退出码。文档对结果的解读边界同样重要值得原样记住退出码成功不代表验证了识别质量或并发性能请肉眼检查文本客户端不发送 Authorization安全指南中仅限转写的网关策略会拒绝该冒烟测试用到的/health、/v1/models元数据路由——所以本地部署与带网关的对外部署是两套安全假设CPU 镜像只复制 example server 而 FunASR 从 PyPI 安装依赖版本未固定不要据此声称可复现应记录实际包版本与 image digest只改FUNASR_DEVICE不会自动引入 CUDA 依赖或容器 GPU 访问GPU 镜像与调度需单独准备验证并查阅 HTTP 部署指南 与所选模型的硬件要求。3.5 流式与实时字幕选 Runtime WebSocket 服务runtime 文档。文档要求在生产前用真实音频验证六项参数与行为chunk size、VAD、endpointing、标点、说话人分离、重连以及客户端背压backpressure。Kubernetes 路径同理examples/openai_api/kubernetes/funasr-api.yaml 的模板从私有ClusterIP起步内置 readiness/liveness/startup 三类/health探针、20Gi 缓存 PVC 与 2Gi 内存型/dev/shm在扩大暴露范围之前应先补齐认证、TLS、网络策略与 GPU 调度。四、上线前 Readiness Checklist矩阵文档在结尾给出六条上线自检项可直接抄进部署手册确定模型 alias 并固化到部署说明中记录 FunASR 版本、模型版本、device、CUDA/PyTorch 版本、Docker 镜像 tag 与完整命令行至少各跑 1 条公开冒烟样本与真实私有样本每个请求记录音频时长、模型、device、延迟、响应格式、错误类型向受信网络之外暴露 API 前先加上传大小限制、认证、TLS、限流并对照安全指南卡住时携带部署路径、命令/配置、日志、模型、device、音频特征等信息在项目 issue 跟踪器中按 Deployment Help 模板开 issue。五、如何选择三条判断线索结合决策表与上述源码细节可以用三条线索快速定位路径要不要 HTTP 接口不要 → Python API / Colab / 批处理脚本要 OpenAI 协议 → OpenAI APICompose 起步K8s 规模化要长音频流与 partial result → Runtime WebSocket。要不要时间戳/说话人/长音频多讲者普通文件转写用sensevoice/paraformeralias 足够需要时间戳分段用verbose_json需要说话人标签与长音频多讲者则考虑moss-transcribe-diarize。要不要 GPU 吞吐Fun-ASR-Nano 且只跑文件转写评估 vLLM 的 split-engine 或 native 路径并严格按 验证记录 与 split-engine 指南 各自的 checkpoint、版本与验证边界执行两者不互通非自回归 Paraformer 不适用 vLLM 加速路径。【免费下载链接】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),仅供参考
返回列表