news 2026/10/24 11:51:13

MOSS-Transcribe-Diarize Python使用指南:10行代码搞定长音频转写、时间戳与说话人分离

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MOSS-Transcribe-Diarize Python使用指南:10行代码搞定长音频转写、时间戳与说话人分离

MOSS-Transcribe-Diarize Python使用指南:10行代码搞定长音频转写、时间戳与说话人分离

【免费下载链接】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+ 种语言,能一次性完成长音频转写、精确时间戳标注和说话人分离(diarization)。本指南带你用 Python 在本地 10 行代码跑起来,无需再拼接独立的 ASR 和分离系统。

🎯 为什么选择 MOSS-Transcribe-Diarize

做长音频转写时,传统方案往往是"ASR + VAD + 说话人分离"多个模型拼接,误差会逐级放大。这个模型的优势在于:

  • 一次推理出全部结果:文本、起止时间戳、说话人标签([S01]、[S02]…)在同一流中输出;
  • 面向真实场景设计:会议、通话、播客、访谈、讲座等长时、多说话人录音;
  • 轻量可本地部署:0.9B 参数,开源可商用,还可选输出生成的声学事件标注。

架构很简单:Whisper-Medium 风格的音频编码器提取声学特征,再由 Qwen3-0.6B 风格的自回归大模型直接生成带时间戳和说话人标签的转写文本。

📦 环境安装:三步跑通 Python 依赖

项目基于Python 3.12 + Transformers 5.x测试,推荐使用uv管理环境:

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

依赖定义在 pyproject.toml 中,torch-runtime会自动安装 torch/torchaudio。如果使用的是 CUDA 显卡,可再执行uv pip install flash-attn加速注意力计算。

⚡ 核心:10 行 Python 代码完成长音频转写

以下是完整可运行的最小示例:

import torch from transformers import AutoModelForCausalLM, AutoProcessor from moss_transcribe_diarize import parse_transcript from moss_transcribe_diarize.inference_utils import ( build_transcription_messages, generate_transcription, resolve_device ) model_id = "OpenMOSS-Team/MOSS-Transcribe-Diarize" device = resolve_device("auto") # 有 GPU 用 CUDA,否则自动回退 CPU model = AutoModelForCausalLM.from_pretrained( model_id, trust_remote_code=True, dtype="auto", attn_implementation="sdpa" ).to(dtype=torch.bfloat16 if device.type == "cuda" else torch.float32).to(device).eval() processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) result = generate_transcription( model, processor, build_transcription_messages("audio.wav"), max_new_tokens=2048, do_sample=False, device=device ) for seg in parse_transcript(result["text"]): print(seg.start, seg.end, seg.speaker, seg.text)

四个关键工具函数都封装在 inference_utils.py 里,流程是:build_transcription_messages构造输入 → 加载模型与处理器 →generate_transcription推理出带时间戳的文本 →parse_transcript解析为结构化片段。

🕒 看懂输出格式:[时间戳][说话人]文本[时间戳]

模型输出的原始文本是一个紧凑的流,标准格式为:

[0.48][S01]Welcome everyone[1.66][12.26][S02]The new pipeline is ready[13.81]
字段含义
[0.48]/[1.66]该段语音的起止时间(单位:秒)
[S01]/[S02]说话人编号,全程保持一致
中间正文该段时间内说出的语音内容

不想手动解析?parse_transcript会把上面的文本拆成TranscriptSegment对象,直接读取segment.start、segment.end、segment.speaker、segment.text四个属性即可,实现见 transcript_parser.py。

🔍 进阶技巧:长音频与热词设置

💡 三个实用调优点:

  1. 长音频被截断→ 调大max_new_tokens(如8192甚至65536),给解码器足够空间输出完整转写;
  2. 内存不足(OOM)→ 优先用sdpa或安装 flash-attn 后使用flash_attention_2,尽量避免eager,它在长录音上显存开销会平方级增长;
  3. 专有名词识别不准→ 给默认提示词追加热词。默认提示词定义在 inference_utils.py 的DEFAULT_PROMPT,可在末尾加上热词提示:产品名, 人名, 术语,然后传给build_transcription_messages(audio_path, prompt=...)。

📺 不写代码?内置字幕 CLI 一键导出

如果你只需要"音频进、字幕文件出",项目内置了两条命令行工作流:

# 批量处理:输出 JSON / SRT / ASS 字幕 mtd-subtitle /path/to/input.mp4 \ --model OpenMOSS-Team/MOSS-Transcribe-Diarize \ --out-dir runs/example \ --render # 若系统装有 ffmpeg,会把字幕烧录进 output.mp4

也可以启动本地 Web 界面,上传音视频后在线审核分段,再下载字幕:

mtd-subtitle-web --model OpenMOSS-Team/MOSS-Transcribe-Diarize --host 127.0.0.1 --port 7860

命令入口分别是 cli.py 与 web_cli.py,SRT/ASS/JSON 导出逻辑在 subtitle/export.py。界面支持简体中文和英文。

💡 常见问题速查

问题解决方法
没有 NVIDIA 显卡resolve_device("auto")会自动回退 CPU,精度用 float32
转写结果中途断开增大max_new_tokens
显存 OOM换用flash_attention_2或sdpa,避免eager
想微调模型参考仓库中的 FINETUNING.md

小结

MOSS-Transcribe-Diarize 把"转写 + 时间戳 + 说话人分离"合成了一次推理,10 行 Python 代码就能在本地跑通,配合内置 CLI 还能直接产出可烧录的字幕文件。更多细节可阅读中文文档 README_zh.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/15 16:33:06

选具备正规医疗器械注册证的家用康复理疗品牌指南

选具备正规医疗器械注册证的家用康复理疗品牌指南在面对琳琅满目的康复设备时,消费者应优先关注产品的合规性。审慎判断显示,选择持有二类或一类医疗器械注册证的产品是降低使用风险的基础。只有经过药监部门审批的设备,其安全性和有效性才具…

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

Codex桌面版更新后无法加载组织设置?Windows排查修复指南

1. 问题现象与排查思路总览Codex 桌面版在 Windows 上更新之后直接打不开,启动时弹出一句「无法加载组织设置」,然后窗口一闪就没了。这个现象我最近帮人处理过好几次,症状几乎一模一样:更新前好好的,更新完就废&#…

作者头像 李华
网站建设 2026/10/15 18:42:15

word文件内存大怎么变小?3种实用方法快速搞定

52页的技术方案文档,2万8千字,里面塞了40多张截图,另存之后一看——86MB。 合租室友小赵半夜给我发了条语音方阵,连发七八条,每条开头都是"哥你睡了吗",最后一条才说清楚:这文档明天早…

作者头像 李华
网站建设 2026/10/15 18:42:15

UE材质进阶:Custom HLSL与MPC实战指南

这几个月在项目里啃了不少材质上的硬骨头,从最初只会拖节点连蓝图,到后面被性能和多平台适配逼着去写HLSL,一路踩坑一路填。今天这篇”41”就是想把这些进阶阶段的实操经验梳理一遍。不是给你念引擎文档,而是站在美术和TA的角度&a…

作者头像 李华