MOSS-Transcribe-Diarize

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 语音识别 🍴 复刻 138 🐛 待处理 31 👀 关注 6
GitHub ↗
GitHub 星标 ★ 2248
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源模型,免费使用,定价信息待确认

项目预览

MOSS-Transcribe-Diarize 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类语音识别
开发团队OpenMOSS
定价模式🏷️完全免费
价格说明开源模型,免费使用,定价信息待确认
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型audio,automatic-speech-recognition,multilingual,speaker-diarization,speech-recognition,subtitles,transcription
GitHub 星标★ 2248
上线时间2026-05-13 00:00:00
代码更新2026-10-21
仓库体积263 KB
本站数据更新2026-11-02
维护状态较活跃
收录时间2026-09-07
浏览次数3

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-07 · 当前星标 ★ 2248

使用教程

难度:进阶 约 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_id是HuggingFace 上的模型标识,首次运行会自动下载权重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

上一篇:wenet

下一篇:obs-localvocal

同类项目推荐

whisper-subs 开源

Jellyfin 本地自动生成字幕,音频不出服务器

Jellyfin plugin for local AI-powered subtitle generation using Whisper - all process···

★ 120 2026-09-23
cli 开源

终端一条命令,直接和 ElevenLabs 语音智能体对话

Command Line Interface to interact with ElevenLabs voice agents

★ 102 2026-10-21
OpenMinutes 开源

录音笔音频一键转文字、自动归类,随时检索复盘

OpenMinutes · 录音笔工作台:MemoTalk S1 录音的导入 · 转录 · AI 归类 · 检索复盘(···

★ 108 2026-11-02
parakeet-rs 开源

Rust 本地跑 NVIDIA Parakeet,CPU 也能极速语音转写与说话人分离

very fast speech-to-text, diarization, streaming (even in CPU) with NVIDIA Parakeet ···

★ 420 2026-09-12
DeLive 开源

抓系统声音实时出字幕,转完自动生成摘要和思维导图

System audio capture + multi-provider ASR + local-first AI review workspace. Floatin···

★ 268 2026-09-24
whisper-shortcut 开源

菜单栏一键语音,转文字、控剪贴板、AI 对话全搞定

Voice-first macOS menu bar app: dictate, voice-edit clipboard, read aloud, AI chat w···

★ 75 2026-08-09
whisper-local 开源

按住热键说话,本地秒出文字,不联网不订阅

Free, open-source, 100% offline AI dictation for Windows & macOS. Wispr Flow / Drago···

★ 158 2026-10-12
moshi-rag 开源

边聊边查,语音对话不再瞎编

MoshiRAG is a compact full-duplex speech language model augmented with asynchronous ···

★ 194 2026-10-02