从 Deepgram / AssemblyAI 迁移到自托管 FunASR:接入与验收清单

评估自托管语音转写时,真正要迁移的是应用契约:上传方式、模型选择、鉴权、结果结构和运行责任。本文以 FunASR 1.4.15 的包内 funasr-server 为边界,介绍文件转写的接入路径。它不是 Deepgram / AssemblyAI 专有 API 或 SDK 的直接替换,也不提供完整云服务功能对等承诺。

先列迁移清单,再选择模型

应用环节迁移时要验证什么
请求协议把现有 SDK 或 HTTP 调用映射到目标路由、multipart 文件上传及其实际声明的字段。连接地址、请求头和参数都需要检查。
任务方式本地示例是一次文件上传转写,不是流式会话、异步任务队列或回调服务。原应用依赖这些流程时,需要单独实现或选择对应部署服务。
结果结构明确文本、时间单位、分段、说话人标签以及空结果的映射。说话人分离标签不是实名身份识别;不同模型提供的信息不同。
故障处理检查鉴权失败、无效文件、超时、重试与过载行为;客户端超时不等于后台推理已经取消。
运行责任安排容量、监控、升级、数据留存及故障恢复。用自己的音频评估质量,不按未经验证的语言或价格排名选型。

先参考模型选型指南部署矩阵。需要转写与说话人分离时,可评估第三方模型 MOSS-Transcribe-Diarize 的集成路径;不要把任一后端的能力推定为所有 FunASR 服务都具备。

最小本地接入:先验证 JSON 文本

前提:已经准备并验证过的独立 FunASR 1.4.15 环境。本段不是从零安装教程。运行下列命令的 Python 和 funasr-server 必须来自同一个已激活环境,且 funasr==1.4.15、PyTorch、音频依赖、FastAPI、Uvicorn、python-multipart、模型权重访问及音频文件均已准备好。平台依赖参见安装指南;其他版本需要重新核对行为。

python -c 'from importlib.metadata import version; assert version("funasr") == "1.4.15", version("funasr")'
python -m pip check

版本检查和 pip check 只检查包元数据,不能证明 CUDA、音频解码或实际转写可用。下方明确选择 SenseVoice CPU 做接入验证,不是性能建议;不要在同一端口同时启动多个服务。另有仓库示例 HTTP 服务指南可作实现对照,但它准备并启动的是 example server,不是本文所要求的包内 1.4.15 环境。

funasr-server --host 127.0.0.1 --port 8000 --model sensevoice --device cpu

在同一主机另一个终端提交有权处理的 audio.wav。返回文本会写到终端,请勿把私人转写内容放进公开日志。

curl --fail --show-error --silent --max-time 120 \
  http://127.0.0.1:8000/v1/audio/transcriptions \
  -F "file=@audio.wav" \
  -F "model=sensevoice" \
  -F "response_format=json"

预期结构是包含 text 的 JSON 对象,具体内容取决于音频与模型。120 秒是示例客户端超时,不是可处理音频时长或吞吐承诺。使用 OpenAI Python SDK 的基本调用可参考本地转写接入指南;这不意味着原厂商 SDK 可以原样使用。

明确返回格式边界

response_format包内处理器的行为
json返回含 text 的 JSON 对象。
verbose_json返回结构化 JSON,包括 segmentsduration 等字段;具体时间与说话人信息依赖模型和实际结果。
text返回 JSON 字符串,不是普通纯文本响应。
srt不生成 SRT 字幕,落入 JSON 文本对象分支;HTTP 200 不能证明返回了字幕文件。
vtt不生成 VTT 字幕,同样落入 JSON 文本对象分支。

该路由声明 filemodellanguageresponse_format 和扩展字段 spk;其他字段被请求接受不代表已经应用。

包内服务的字段应通过私有或受限的运维路径访问运行中服务的 /openapi.json,并核对固定版本包内处理器源码示例服务 API schema描述的是另一种实现,不是包内处理器的完整字段说明。包内服务、仓库示例、vLLM 与 llama.cpp 的默认值、参数和响应结构并不通用。

上线前的三项验收

  1. 契约:在旧、新实现上运行有代表性的受控请求,核对字段、文本解析、时间单位、错误与超时;不要以一次 200 响应作为全部兼容证据。
  2. 质量:用业务录音检查关键实体、多人重叠、分段与低质量音频。参考会议转写验收清单,记录模型、硬件和版本。
  3. 安全与运维:验证网关认证和后端不可绕过;容器的 127.0.0.1 指向容器自身,跨容器需设计受限网络。按需要评估计算、存储、带宽、监控和维护成本,另行核对所用模型权重许可证。

自托管提供数据处理的控制空间,不自动保证音频从不落盘、日志不含转写或零成本。临时文件、代理、客户端及留存策略都要纳入检查。本文不比较厂商当前价格,也不声称新的准确率或性能测试结果。

相关文章