MOSS-Transcribe-Diarize字幕工作台实战:视频上传、字幕校对到MP4烧录一站式流程
【免费下载链接】MOSS-Transcribe-DiarizeA 0.9B model for long-form transcription in 50+ languages with speaker diarization, timestamps, and acoustic event awareness项目地址: https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-Diarize
MOSS-Transcribe-Diarize 是一款开源的 0.9B 音频理解模型,其内置的字幕工作台(MOSS Subtitle Studio)让你无需拼接多套工具:上传视频或音频 → 自动转写并分离说话人 → 在线逐句校对 → 一键导出 SRT/ASS 或直接烧录成带字幕的 MP4。本文用一次真实工作流,带你从零跑通这条一站式字幕流水线。
认识 MOSS 字幕工作台:转写与说话人分离一步到位
传统做法是"ASR 转写 + VAD 切分 + 说话人分离"三套系统拼接,时间戳经常对不齐。而 MOSS-Transcribe-Diarize 在一次推理中同时输出带时间戳和说话人标签的转写结果,标准格式为:
[0.48][S01]大家好,欢迎来到本期访谈[3.21][3.55][S02]谢谢,我们开始吧[6.90]每个片段都有起止秒数和[S01]、[S02]等说话人标签,天然就是一份子字幕(subtitle)数据源。它支持 50+ 种语言,面向会议、访谈、播客、讲座等长时多说话人场景。
整个 Web 应用由一个 FastAPI 服务驱动,代码入口在 web_cli.py,路由定义在 server.py;字幕格式转换(SRT/ASS/JSON)则在 subtitle/export.py 中实现。
一键安装与启动步骤:5 分钟部署本地字幕工作台
⚠️ 烧录 MP4 功能需要系统已安装
ffmpeg与ffprobe(在 PATH 中可访问即可,检测逻辑见 ffmpeg.py)。
第 1 步:获取代码
git clone https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-Diarize cd MOSS-Transcribe-Diarize第 2 步:准备干净的 Python 3.12 环境并安装
uv venv --python 3.12 .venv source .venv/bin/activate uv pip install -e ".[torch-runtime]" --torch-backend=auto第 3 步:启动字幕工作台
mtd-subtitle-web \ --model OpenMOSS-Team/MOSS-Transcribe-Diarize \ --host 127.0.0.1 \ --port 7860浏览器打开http://127.0.0.1:7860即可进入界面。界面支持简体中文与英文,首次会跟随浏览器语言,也可通过页头语言选择器即时切换并记住偏好。
💡 如果你已有部署好的 vLLM 服务,可加
--backend vllm --vllm-base-url http://127.0.0.1:8000/v1复用远程推理,避免本地重复加载模型。
上传视频,自动转写并分离说话人
点击左侧导入媒体按钮,选择本地文件即可。支持的格式包括mp4 / mov / mkv / wav / mp3 / m4a等常见音视频类型。
上传后,任务状态会依次经过:
| 状态 | 含义 |
|---|---|
| 排队中 / 加载模型 | 模型首次加载到 GPU/CPU |
| 转写中 | 正在推理,进度条实时刷新 |
| 处理中 | 解析时间戳、切分字幕片段 |
| 待校对 | ✅ 转写完成,进入工作台 |
界面右上角的"推理参数"折叠区可以调整Prompt、输出 tokens、上下文上限、解码方式(greedy/sample)、温度——默认值不用改,只有长音频被截断时才需要调大"输出 tokens"后点击重新转写。任务列表支持随时删除或新建任务,后台由 jobs.py 管理任务生命周期。
字幕校对界面详解:逐句改词、改名、调样式
转写完成后进入三栏工作台:
① 左侧:视频预览 + 字幕表格
- 上方视频播放器会随播放进度高亮当前字幕,方便逐句听音对词;
- 下方表格列出每个片段的开始时间 / 结束时间 / 说话人 / 字幕文本,全部可直接点击编辑。
② 右侧检查器(Inspector)
- 说话人名称:把
[S01]映射成"主持人""嘉宾 A"等真实名字,导出和烧录时都会自动替换; - 样式组:字号(18–96)、底边距、是否显示说话人、按说话人分色;
- 改完记得点保存修改,状态栏会显示"已保存"。
③ 多说话人同框不打架
当两个片段时间重叠时,layout.py 的assign_overlap_lanes会自动为字幕分配"车道",上下错开排列,避免互相遮挡。
导出字幕与 MP4 烧录:最后一公里
校对完成后,右侧输出区域会生成 4 份文件,点击下载即可:
| 文件 | 用途 |
|---|---|
raw_transcript.txt | 模型原始转写文本 |
segments.json | 结构化片段数据,方便二次开发 |
subtitle.srt | 通用 SRT 字幕,可挂到播放器 |
subtitle.ass | 带样式的 ASS 字幕,用于烧录 |
烧录 MP4:点击醒目的烧录视频按钮,后台调用 FFmpeg 以libx264 -crf 18高质量编码,音频流直接复制,几秒钟内产出output.mp4(命令构造见 ffmpeg.py 的burn_ass_subtitles)。如果页面提示"FFmpeg 不可用",安装好 ffmpeg/ffprobe 后刷新即可,状态徽标会实时显示检测结果。
所有产物统一保存在runs/目录下,按任务分文件夹,方便归档。
进阶:命令行批量烧录,不用打开网页
批量处理视频时,一条命令就能完成"转写 → 导出 → 烧录"全流程:
mtd-subtitle /path/to/input.mp4 \ --model OpenMOSS-Team/MOSS-Transcribe-Diarize \ --out-dir runs/example \ --render该命令对应 cli.py,--render开启后会同时输出raw_transcript.txt、segments.json、subtitle.srt、subtitle.ass和烧录好的output.mp4,并在终端打印一份 JSON 摘要。适合放进脚本做批量流水线。
常见问题速查
- 长音频字幕末尾缺失?界面会提示"可能截断",把"输出 tokens"从 2048 调大(如 8192)后点击重新转写即可;
- 说话人颜色怎么调?样式组里把"颜色"从"统一"切到"按说话人",不同说话人会自动分配 8 组预置色(见 export.py 的
SPEAKER_COLORS); - 专业术语识别不准?在推理 Prompt 末尾追加"热词提示:热词1, 热词2",可显著提升专有名词准确率;
- 界面语言切换?页头下拉框选"中文/English",选择会被记住;中英文文案维护在 locales/。
小结
MOSS-Transcribe-Diarize 的字幕工作台把"转写、校对、导出、烧录"压缩进一个本地网页:模型端一次性输出时间戳 + 说话人标签,界面端提供可视化逐句校对与样式定制,FFmpeg 完成最后的 MP4 压制。对会议记录、访谈节目、播客剪辑等场景来说,这套流程让字幕生产从"多工具拼接"变成"一条命令、一个页面"。
【免费下载链接】MOSS-Transcribe-DiarizeA 0.9B model for long-form transcription in 50+ languages with speaker diarization, timestamps, and acoustic event awareness项目地址: https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-Diarize
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考