语音识别及说话人分离模型(MOSS-Transcribe-Diarize)本地部署最佳实践
基于一次真实落地经历整理:在 Apple M2 Max(64GB 统一内存)上部署 OpenMOSS/MOSS-Transcribe-Diarize(0.9B 端到端音频转写 + 说话人分离),并构建 Web 应用。过程中解决了长音频(30 分钟 / 1–2 小时)在 MPS 上 OOM / 静默卡死的问题。
本文不重复项目能力说明,只讲"怎么把它跑稳、跑长"。能力研究与部署步骤见
README.md,Web 后端实现见webapp/app.py。
0. 一句话结论
不要在 Apple Silicon 上一次性推理超长音频。 端到端音频模型会把整段音频堆叠成一个巨型张量送编码器,自注意力矩阵大小 ∝ 音频长度²,几分钟可以、30 分钟必炸。正确做法是按 ≤300s 分块推理、块间重叠、时间戳偏移拼接、每块后释放 MPS 缓存。
1. 部署:把"能跑"变成"稳定跑"
1.1 固定依赖版本,杜绝解析回溯
torch>=2.8 + 未固定版本的 pip install -e . 会让 uv 陷入 version-resolution 回溯死循环(解析到 2.13、多个 transformers 版本,半小时不收敛)。