news 2026/10/26 16:45:53

MOSS-Transcribe-Diarize 命令行批量处理:mtd-subtitle 导出 SRT/ASS/JSON 完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MOSS-Transcribe-Diarize 命令行批量处理:mtd-subtitle 导出 SRT/ASS/JSON 完整指南

MOSS-Transcribe-Diarize 命令行批量处理:mtd-subtitle 导出 SRT/ASS/JSON 完整指南

【免费下载链接】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 端到端音频理解模型,支持 50+ 语言,能一次性完成长音频转写、说话人分离(S01、S02…)、时间戳标注和声学事件感知;其配套命令行工具mtd-subtitle则把这一能力封装成一条命令:输入一个音视频文件,自动产出SRT / ASS / JSON字幕文件,还能用 FFmpeg 把字幕直接烧录进 MP4。本文就是它的批量处理完整指南,看完即可上手。

3 步装好 mtd-subtitle 命令

整个项目通过 pip 安装,安装后即可使用mtd-subtitle和mtd-subtitle-web两个命令(入口定义见 pyproject.toml):

git clone https://gitcode.com/gh_mirrors/mo/MOSS-Transcribe-Diarize.git cd MOSS-Transcribe-Diarize uv venv --python 3.12 .venv source .venv/bin/activate uv pip install -e ".[torch-runtime]" --torch-backend=auto

💡 有 NVIDIA GPU 的同学建议再装uv pip install flash-attn,长音频推理速度明显更快。命令行入口位于 moss_transcribe_diarize/app/cli.py。

mtd-subtitle 工作流程:一条命令完成转写

模型的输入是原始音频,输出是带时间戳和说话人标签的紧凑转写流(如[0.48][S01]大家好[1.66]),架构图如下:

mtd-subtitle 的完整工作流只有 4 步(逻辑见 cli.py):

  1. 转写:加载模型,把音频转成带[Sxx]说话人标签和时间戳的文本流
  2. 解析:解析转写流为结构化字幕片段(时间、说话人、文本)
  3. 导出:同时写出raw_transcript.txt、segments.json、subtitle.srt、subtitle.ass四个文件
  4. 烧录(可选):加--render时调用 FFmpeg 生成带硬字幕的output.mp4

命令结束后,终端会打印一份 JSON 摘要:输出目录、片段数量、各文件路径、token 数和耗时,方便直接接入脚本。

一键批量处理命令与参数详解

最小可用命令:

mtd-subtitle /path/to/input.mp4 \ --model OpenMOSS-Team/MOSS-Transcribe-Diarize \ --out-dir runs/example \ --render

常用参数一览:

参数作用默认值
第一个位置参数输入音频或视频路径(mp4 / wav / m4a 等)必填
--out-dir输出目录,不存在会自动创建自动按时间戳生成runs/cli_…
--model模型路径或 Hub 模型 ID本地pretrained/目录
--backend推理后端:hf(本地)或vllm(远程服务)hf
--device/--dtype计算设备与精度,auto自动选择 GPUauto/bf16
--max-new-tokens最大生成 token 数,长音频务必调大2048
--decodinggreedy(稳定)或sample(配合--temperature)greedy
--prompt自定义提示词,可在默认转写提示后追加"热词提示:xxx"提升专名准确率默认转写+分离提示
--render追加:用 FFmpeg 烧录 ASS 字幕生成output.mp4关闭

批量处理很简单——CLI 一次处理一个文件,用 shell 循环即可跑完整个目录:

for f in audio/*.wav; do mtd-subtitle "$f" --model OpenMOSS-Team/MOSS-Transcribe-Diarize \ --out-dir "runs/$(basename "${f%.*}")" --max-new-tokens 16384 done

经验值:1 小时长音频建议--max-new-tokens设为 16384~65536,否则解码器可能在转写完之前就停止。

SRT / ASS / JSON 三种字幕格式详解

📄 segments.json —— 结构化数据源

JSON 导出由 subtitle/export.py 生成,每个片段包含id、start、end、speaker、text五个字段,适合后续程序化处理、翻译或按说话人切分音频。

🎞 subtitle.srt —— 通用外挂字幕

SRT 是兼容性最好的字幕格式,几乎所有播放器都支持。mtd-subtitle 默认在每行前加上说话人前缀(如S01: 大家好),片段模型定义见 subtitle/models.py。

🎨 subtitle.ass —— 带说话人配色的高级字幕

ASS 导出的亮点:

  • 按说话人自动配色:为 S01、S02… 各生成独立样式,颜色从调色板循环取用
  • 自动探测视频分辨率:用 ffprobe 读取输入视频宽高写入PlayResX/PlayResY,字号按高度自适应,纯音频输入则回退 1920×1080
  • 重叠台词自动分行道:时间轴重叠的台词会上下错开显示,不会互相覆盖(逻辑见 subtitle/layout.py)

烧录到视频时,FFmpeg 命令由 app/ffmpeg.py 中的burn_ass_subtitles构造。

进阶:接入 vLLM 后端处理更大批量

如果本地显存有限,或想用推理服务集中跑大批量文件,可以把模型部署为 vLLM 服务后,让 CLI 走远程后端:

mtd-subtitle input.mp4 \ --backend vllm \ --vllm-base-url http://127.0.0.1:8000/v1 \ --max-new-tokens 65536

远程实现位于 app/vllm_runner.py,它会自动把任意格式的输入转成 WAV 字节流,通过 OpenAI 兼容的/v1/audio/transcriptions接口上传,本地无需加载模型。配合 vLLM 的高并发能力,这是吞吐最大的批量方案。

常见问题与性能技巧(避坑清单)

  • --render报错提示需要 FFmpeg:系统 PATH 中必须同时存在ffmpeg和ffprobe,先安装 FFmpeg 再重试
  • 转写在视频一半处戛然而止:--max-new-tokens太小,调大后重跑
  • 专有名词总写错:用--prompt在默认提示后追加"热词提示:产品名, 人名"
  • GPU 长音频显存不够:安装flash-attn;CLI 会自动按 FlashAttention-2 → SDPA 的优先级选择注意力后端(见 app/model_runner.py)
  • 想要可视化界面:改用mtd-subtitle-web --model OpenMOSS-Team/MOSS-Transcribe-Diarize --port 7860,打开浏览器即可上传、审阅并下载 JSON/SRT/ASS(入口见 app/web_cli.py)

总结

需求推荐做法
单个文件快速出字幕mtd-subtitle 文件 --out-dir runs/x
一个目录批量跑shell for 循环 + 独立--out-dir
大批量、省显存--backend vllm接入 vLLM 服务
直接出成品视频追加--render

MOSS-Transcribe-Diarize 用"转写+分离+时间戳"一次成型的设计,省掉了传统 ASR+VAD+说话人分离多模型拼接的烦恼;而 mtd-subtitle 把整条流水线压缩成一行命令,配合 JSON 摘要输出,天然适合写进自动化脚本。想要微调适配自己的音频域,可继续参考 FINETUNING.md。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/26 3:38:26

工业机器人控制器,为什么很多人放弃X86改用RK3588?

标签:# 工业机器人 #AMR #AGV #RK3588 #X86 工控机 #ROS2 #机器人上位机 摘要:早些年做移动机器人、协作机器人上位机,大家首选 X86 工控机,软件顺手生态成熟。但近几年大量 AGV、巡检机器人厂商批量转 RK3588。本文从工程落地角度…

作者头像 李华
网站建设 2026/10/22 23:20:18

天任医学专升本备考效果与实力展示

备考医学类考试,最让人焦虑的往往不是知识点的浩瀚,而是明明花了很多时间刷题背书,分数却总是在瓶颈期徘徊。很多医学生都有过这样的经历:白天在医院实习累得精疲力竭,晚上还要面对厚重的教材和做不完的真题&#xff0…

作者头像 李华
网站建设 2026/10/17 3:01:49

不会论文格式排版?**硕词AI**一键统一规范全篇格式

格式排版是论文定稿的基础硬性要求,格式不规范、排版混乱是很多学生论文低分、返工、延迟定稿的重要原因。多数新手不熟悉高校统一论文格式规范,不会设置字体、字号、行间距、段间距、标题层级、页码、自动目录、页眉页脚,普遍存在标题层级混…

作者头像 李华