MOSS-Transcribe-Diarize

0.9B 模型搞定 50+ 语言长音频转写、说话人分离和字幕生成

MOSS-Transcribe-Diarize 是一个轻量级(0.9B 参数)的多语言长语音转写与说话人分离模型,支持 50 多种语言,并集成时间戳和声学事件识别。它解决长音频转录中常见的分段割裂、说话人混淆和事件遗漏问题,提供端到端的转写、说话人标记和字幕生成能力。核心能力包括:长音频流式处理、自动说话人分离(Diarization)、多语言识别、时间戳对齐和声学事件(如笑声、掌声)感知。项目基于 Python 实现,易于集成到现有语音处理流水线,适合会议记录、媒体字幕、访谈分析等场景。其 0.9B 的规模在保持较高准确率的同时,降低了部署门槛,适合资源受限环境。

开源 free 语音识别
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2017
维护状态 活跃
是否开源
定价模式 free

项目数据

分类语音识别
开发团队OpenMOSS
所属国家
官网地址
定价模式free
价格说明开源模型,免费使用,定价信息待确认
访问状态
是否开源
开源协议Apache-2.0
主要语言Python
技术栈/模型audio,automatic-speech-recognition,multilingual,speaker-diarization,speech-recognition,subtitles,transcription
GitHub 星标★ 2017
30天Star增速
HF 下载量
上线时间2026-05-13 00:00:00
最近更新2026-09-16 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-07
浏览次数0

使用教程

难度:进阶 约 15 分钟 部署方式:库/依赖 7 步

环境要求

  • Python 3.12(README 明确测试版本)
  • Transformers 5.x
  • uv 包管理器(用于建虚拟环境和装依赖)
  • 可选:CUDA GPU,装 flash-attn 后可用更快的注意力内核
  • 需联网从 HuggingFace 拉取 OpenMOSS-Team/MOSS-Transcribe-Diarize 权重

安装与启动步骤

  1. 1克隆仓库

    从 GitHub 拉取源码,命令执行后会在当前目录生成项目文件夹。

    git clone https://github.com/OpenMOSS/MOSS-Transcribe-Diarize.git
  2. 2进入项目目录

    后续所有安装与运行命令都在该目录下执行。

    cd MOSS-Transcribe-Diarize
  3. 3创建虚拟环境

    README 要求使用干净的 Python 环境,此处用 uv 创建 Python 3.12 的 .venv。

    uv venv --python 3.12 .venv
  4. 4激活虚拟环境

    Linux/macOS 下激活;激活后命令行前缀会出现 (.venv)。

    source .venv/bin/activate
  5. 5安装项目依赖

    以可编辑模式安装 torch-runtime 依赖组,torch 后端自动匹配本机环境。

    uv pip install -e ".[torch-runtime]" --torch-backend=auto
  6. 6可选装 flash-attn

    仅 CUDA GPU 需要,装上后可在代码里切换 flash_attention_2 加速长音频。

    uv pip install flash-attn
  7. 7运行转写示例

    把 audio_path 换成自己的 wav 文件;eager 极易 OOM,长音频请用 flash_attention_2。

    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"
    audio_path = "audio.wav"
    
    device = resolve_device("auto")
    dtype = torch.bfloat16 if device.type == "cuda" else torch.float32
    
    model = AutoModelForCausalLM.from_pretrained(
        model_id,
        trust_remote_code=True,
        dtype="auto",
        attn_implementation="sdpa",
    ).to(dtype=dtype).to(device).eval()
    processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
    
    messages = build_transcription_messages(audio_path)
    result = generate_transcription(
        model,
        processor,
        messages,
        max_new_tokens=2048,
        do_sample=False,
        device=device,
        dtype=dtype,
    )
    
    print(result["text"])
    
    for segment in parse_transcript(result["text"]):
        print(segment.start, segment.end, segment.speaker, segment.text)

关键配置

配置项必填说明示例
model_idHuggingFace 上的模型标识,首次运行会自动下载权重OpenMOSS-Team/MOSS-Transcribe-Diarize
audio_path待转写的音频文件路径,README 示例为 wav 格式audio.wav
attn_implementation注意力实现,sdpa 为默认;装 flash-attn 后可换 flash_attention_2sdpa
max_new_tokens生成的最大 token 数,长音频可适当调大2048
do_sample是否采样,转写任务建议关闭以保证结果稳定False

如何确认成功

脚本打印出转写文本,且 parse_transcript 逐段输出 start、end、speaker、text,说明模型加载与说话人分离均成功。

常见问题

Q:长音频运行时报显存不足(OOM)怎么办?

A:不要用 eager,它的显存随音频长度平方增长。装上 flash-attn 并把 attn_implementation 设为 flash_attention_2,或退回 sdpa。

Q:对 Python 和 Transformers 版本有要求吗?

A:README 说明项目在 Python 3.12 与 Transformers 5.x 下测试通过,建议按文档用 uv venv --python 3.12 建干净环境。

Q:没有 GPU 能跑吗?

A:可以。resolve_device("auto") 会自动选设备,CPU 上 dtype 会回退为 float32,但速度较慢。

Q:支持哪些语言,能不能标出笑声掌声?

A:支持 50 多种语言;模型是端到端音频理解模型,除转写和说话人分离外,还带时间戳与声学事件感知能力。

注意事项

  • 官方另有 MOSS-Transcribe-Diarize Pro,性能更强,可通过在线 playground 使用。
  • README 提到项目带有 CLI 和字幕 Web UI(支持中英文),但未给出具体命令,需自行查阅仓库说明。
  • 需要微调请参考仓库中的 FINETUNING.md。
  • README 明确 CLI 与 Web 应用会自动按 sdpa、flash_attention_2、eager 的顺序挑选最佳后端。

核心亮点

  • 模型仅 0.9B 参数,推理成本低,适合边缘部署
  • 支持 50+ 语言,覆盖广泛,长音频处理不丢上下文
  • 集成说话人分离和时间戳,输出可直接用于字幕制作

不足之处

  • 0.9B 模型在极嘈杂或重口音场景下准确率可能不如大模型
  • 文档/社区待观察

适用场景

  • 会议录音自动生成带说话人标记的会议纪要
  • 视频/播客生成多语言字幕及时间轴
  • 访谈或客服录音的说话人分离与内容检索

替代项目

WhisperX、pyannote.audio、faster-whisper

项目介绍

MOSS-Transcribe-Diarize 是一个语音识别领域的开源项目,官方简介:A 0.9B model for long-form transcription in 50+ languages with speaker diarization, timestamps, and acoustic event awareness。项目使用 Python 开发,在 GitHub 上获得 1852 星标。

上一篇:wenet

下一篇:obs-localvocal

同类项目推荐

obs-localvocal 开源

直播录屏时,本地AI实时生成字幕,保护隐私零延迟

OBS plugin for local speech recognition and captioning using AI

★ 1613 2026-09-10
LiveCaptions-Translator 开源

实时捕获系统音频,一键翻译成你懂的语言

Lightweight and powerful real-time audio/speech translation tool based on Windows Li···

★ 3713 2026-08-10
speechbrain 开源

一站式 PyTorch 语音工具箱,快速搞定识别、说话人验证等任务

A PyTorch-based Speech Toolkit

★ 11823 2026-08-26
whisper-diarization 开源

给语音转写加上说话人标签,会议记录一目了然

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

★ 5649 2026-08-13