@MosiAI_Official: MOSS-Transcribe-Diarize-0.9B 现已在 @huggingface 上开源。采用端到端音频到结构化转录…

X AI KOLs Following 模型

摘要

MOSS-Transcribe-Diarize-0.9B 是一个开源端到端音频理解模型,用于长篇幅多说话人转录、说话人识别和时间戳生成,由 Mosi AI 在 Apache 2.0 许可下发布。

MOSS-Transcribe-Diarize-0.9B 现已在 @huggingface 上开源。 采用端到端音频到结构化转录范式: >0.9B 开源 ASR 模型 >Apache 2.0 许可 >128k 长上下文转录 >支持最长约 90 分钟音频输入 >一次生成说话人标签 + 时间戳 >会议、打断、重叠语音的多说话人识别 >热词偏置,针对人名、术语和领域专用词汇 >在 NVIDIA RTX 4090 上约 100 token/s,RTF 约 0.017 感谢 @sgl_project @vllm_project @Prince_Canuma @lllucas 的 Day-0 支持! GitHub: https://github.com/OpenMOSS/MOSS-Transcribe-Diarize… Huggingface: https://huggingface.co/spaces/OpenMOSS-Team/MOSS-transcribe-diarize… API: https://shorturl.at/DWwe3 Live demo: https://shorturl.at/wRZ3j Technical Report:http://arxiv.org/abs/2601.01554 HF Space: https://huggingface.co/spaces/OpenMOSS-Team/MOSS-transcribe-diarize… AtomGit:https://ai.atomgit.com/OpenMOSS/MOSS-Transcribe-Diarize… SGLang-Omni: https://github.com/sgl-project/sglang-omni… vLLM: https://github.com/vllm-project/vllm… MLX-audio: https://github.com/Blaizzy/mlx-audio… Discord:https://discord.gg/SmVQHGffZU
查看原文
查看缓存全文

缓存时间: 2026/07/09 15:38

MOSS-Transcribe-Diarize-0.9B 现已在 @huggingface 上开源。采用端到端音频到结构化转录本的范式构建:

0.9B 开源 ASR 模型 Apache 2.0 许可证 128k 长上下文转录 最多支持约 90 分钟音频输入 单次生成中带有说话人标签和时间戳 支持会议、打断和重叠语音的多说话人日志 针对姓名、术语和领域特定词汇的热词偏置 NVIDIA RTX 4090 上约 100 token/s,RTF ~0.017

感谢 @sgl_project @vllm_project @Prince_Canuma @lllucas 的 Day-0 支持!

Github: https://github.com/OpenMOSS/MOSS-Transcribe-Diarize… Huggingface: https://huggingface.co/spaces/OpenMOSS-Team/MOSS-transcribe-diarize… API: https://shorturl.at/DWwe3 Live demo: https://shorturl.at/wRZ3j Technical Report: http://arxiv.org/abs/2601.01554 HF Space: https://huggingface.co/spaces/OpenMOSS-Team/MOSS-transcribe-diarize… AtomGit: https://ai.atomgit.com/OpenMOSS/MOSS-Transcribe-Diarize… SGLang-Omni: https://github.com/sgl-project/sglang-omni… vLLM: https://github.com/vllm-project/vllm… MLX-audio: https://github.com/Blaizzy/mlx-audio… Discord: https://discord.gg/SmVQHGffZU


OpenMOSS/MOSS-Transcribe-Diarize

来源:https://github.com/OpenMOSS/MOSS-Transcribe-Diarize

MOSS-Transcribe-Diarize

MOSS-Transcribe-Diarize 0.9B 是一个开源的 SOTA 端到端音频理解模型,用于长时长多说话人转录、说话人日志、时间戳和声学事件感知。MOSS-Transcribe-Diarize Pro 是一个更强的模型,整体性能更高,即将通过 API 访问提供。

新闻

  • 2026-07-09:开源了 MOSS-Transcribe-Diarize 0.9B。

目录

简介

MOSS-Transcribe-Diarize 是我们的旗舰 SOTA 模型系列,用于将现实世界中的长时长音频一次性转换为结构化的、带有说话人意识的转录本。这些模型不是将独立的 ASR 和说话人日志系统拼接在一起,而是联合执行语音转录和说话人日志,生成带时间对齐的文本,包括精确的时间戳和一致的说话人标签,如 [S01][S02] 等。专为会议、通话、播客、访谈、讲座和视频内容而构建,MOSS-Transcribe-Diarize 旨在处理长时长、杂乱、多说话人的录音,可靠性至关重要。它还可以输出可选的声学事件注释,使下游系统更丰富地了解发生了什么、谁说了话以及何时说的。

该模型接受原始音频并输出紧凑的时间戳转录本。规范的输出格式为:text [start_time][Sxx]transcribed speech[end_time]

时间戳以秒为单位表示,相邻片段连接成一个流,例如:text [0.48][S01]Welcome everyone[1.66][12.26][S02]The new transcription pipeline is ready for evaluation[13.81][14.36][S01]Great, include the diarization results in the report[18.76]

模型架构

组件规格
文本骨干Qwen3-0.6B 风格的因果解码器
音频编码器Whisper-Medium 编码器配置
音频前端WhisperFeatureExtractor,16 kHz,80 mel bins,30 秒片段
音频-文本桥接4 倍时间合并 + MLP 适配器
融合通过 masked_scatter 用音频特征替换 `<
输出格式紧凑的 [start][Sxx]text[end] 转录本,带有说话人标签如 [S01]

评估

客观评估

我们使用三个客观指标评估 MOSS-Transcribe-Diarize:字符错误率 (CER)、串联最小排列字符错误率 (cpCER) 和 Δcp。所有指标越低越好。最佳结果以粗体显示,次佳结果带下划线。短横线 (-) 表示结果不可用。

模型AISHELL-4AlimeetingPodcastMovies
CER↓cpCER↓Δcp↓CER↓
Doubao18.1827.869.6825.25
ElevenLabs19.5837.9518.3625.70
GPT-4o14.37
Gemini 2.5 Pro42.7053.4210.7227.43
Gemini 3 Pro22.7527.434.6826.75
VIBEVOICE ASR21.4024.993.5927.40
MOSS Transcribe Diarize 0.9B14.8415.830.9924.86
MOSS Transcribe Diarize Pro13.7814.020.2418.22

快速开始

环境配置

使用干净的 Python 环境。该项目已在 Python 3.12 和 Transformers 5.x 上测试。

git clone https://github.com/OpenMOSS/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

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"
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",
).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)

消息流遵循常见的 Qwen 多模态模式。聊天模板由 AutoProcessor 从模型加载:

  1. processor.apply_chat_template(messages, tokenize=False) 用音频占位符渲染文本。
  2. process_audio_info(messages, sampling_rate) 从相同的消息中加载音频波形。
  3. processor(text=text, audio=audios) 计算 Whisper 输入特征并扩展音频占位符。
  4. model.generate(...) 生成带时间戳的转录和说话人日志文本。

自定义提示词和热词

默认提示词针对带时间戳的转录和说话人日志进行了优化:

请将音频转写为文本,每一段需以起始时间戳和说话人编号([S01]、[S02]、[S03]...)开头,正文为对应的语音内容,并在段末标注结束时间戳,以清晰标明该段语音范围。

要添加热词,请在默认提示词后附加一个简短提示:

请将音频转写为文本,每一段需以起始时间戳和说话人编号([S01]、[S02]、[S03]...)开头,正文为对应的语音内容,并在段末标注结束时间戳,以清晰标明该段语音范围。热词提示:热词1, 热词2, 热词3

更多提示词配方可在 examples/prompts.md 中找到。相同的提示词可以传递给 build_transcription_messagesmtd-subtitlemtd-subtitle-web

使用 vLLM 提供服务

MOSS-Transcribe-Diarize 支持通过兼容 OpenAI 的转录 API 进行 vLLM 服务。请使用包含 MOSS-Transcribe-Diarize 模型注册的固定 vLLM 每日构建版本。选择以下命令之一:对于 CUDA 12 环境,使用 cu129;对于 CUDA 13 环境,使用 cu130

uv pip install -U vllm \
  --torch-backend=auto \
  --extra-index-url https://wheels.vllm.ai/68b4a1d582818e67adc903bf1b8fc5a5447da2fa/cu129

或者:

uv pip install -U vllm \
  --torch-backend=auto \
  --extra-index-url https://wheels.vllm.ai/68b4a1d582818e67adc903bf1b8fc5a5447da2fa/cu130
vllm serve OpenMOSS-Team/MOSS-Transcribe-Diarize --trust-remote-code
curl http://localhost:8000/v1/audio/transcriptions \
  -F model="OpenMOSS-Team/MOSS-Transcribe-Diarize" \
  -F file=@"audio.wav" \
  -F response_format="json" \
  -F temperature="0"

使用 SGLang Omni 提供服务

推荐使用 SGLang Omni (https://github.com/sgl-project/sglang-omni) 通过兼容 OpenAI 的 /v1/audio/transcriptions 端点来服务 MOSS-Transcribe-Diarize。按照安装指南 (https://github.com/sgl-project/sglang-omni/blob/main/docs/get_started/installation.md) 安装 sglang-omni,然后下载模型:

hf download OpenMOSS-Team/MOSS-Transcribe-Diarize

服务模型:

sgl-omni serve \
  --model-path OpenMOSS-Team/MOSS-Transcribe-Diarize \
  --port 8000 \
  --max-running-requests 16 \
  --cuda-graph-max-bs 16 \
  --mem-fraction-static 0.80

当需要解析的说话人片段时,请使用 response_format=verbose_jsonjson 仅返回原始转录文本。

curl -X POST http://localhost:8000/v1/audio/transcriptions \
  -F model=OpenMOSS-Team/MOSS-Transcribe-Diarize \
  -F [email protected] \
  -F response_format=verbose_json
import requests

with open("audio.wav", "rb") as f:
    resp = requests.post(
        "http://localhost:8000/v1/audio/transcriptions",
        data={
            "model": "OpenMOSS-Team/MOSS-Transcribe-Diarize",
            "response_format": "verbose_json",
        },
        files={"file": ("audio.wav", f, "audio/wav")},
        timeout=300,
    )
resp.raise_for_status()
payload = resp.json()
print(payload["text"])
for segment in payload.get("segments", []):
    print(f"[{segment['start']:.2f}-{segment['end']:.2f}] {segment['text']}")

对于较长的多说话人音频,请提高 max_new_tokens 以便解码器能够完成完整的带说话人日志的转录本:

curl -X POST http://localhost:8000/v1/audio/transcriptions \
  -F model=OpenMOSS-Team/MOSS-Transcribe-Diarize \
  -F [email protected] \
  -F response_format=verbose_json \
  -F max_new_tokens=65536

| 参数 | 类型 | 默认值 | 描述 | |—|—|—|—|—| | file | file | 必需 | 以多部分表单数据上传的音频文件 | | model | string | 服务器默认值 | 模型标识符 | | language | string | 未设置 | 可选语言提示 | | response_format | string | json | jsonverbose_jsontext | | temperature | float | 模型默认值 (0.0) | 采样温度 | | max_new_tokens | int | 5120 | 最大生成 token 数;对于长音频请提高,例如 65536 | | prompt | string | 未设置 | 可选指令覆盖;省略则使用内置的转录+说话人日志提示词 |

有关基准测试、性能数据和实现细节,请参阅 SGLang Omni 指南 (https://github.com/sgl-project/sglang-omni/blob/main/docs/cookbook/moss_transcribe_diarize.md)。以下是在单个 H100 上针对短序列和长序列多说话人 ASR 任务报告的结果。

movies 短序列 ASR:

并发数吞吐量 (req/s)平均延迟 (s)平均 RTFaudio_s/s
12.570.3880.061229.76
24.890.4090.065956.55
46.620.5130.079076.64
86.800.5330.081078.70
167.080.6590.092281.98

aishell4_long 长序列 ASR:

并发数吞吐量 (req/s)平均延迟 (s)平均 RTFaudio_s/s
10.02245.20.019750.64
20.03260.70.026574.25
40.036105.60.046181.64
80.040172.60.075490.62
160.043282.80.123798.83

字幕 Web 应用

该软件包还包含一个本地字幕工作流,用于上传、审阅、字幕导出,以及可选的 FFmpeg 烧录:

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

打开 http://127.0.0.1:7860,上传音频/视频文件,审阅解析后的字幕片段,然后下载 JSON/SRT/ASS 格式,或者如果 ffmpegffprobePATH 中,则烧录 MP4。

对于批量处理:

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

引用

如果您使用了 MOSS-Transcribe-Diarize,请引用技术报告:

@misc{moss_transcribe_diarize_2026,
  title={MOSS Transcribe Diarize Technical Report},
  author={{MOSI.AI}},
  year={2026},
  eprint={2601.01554},
  archivePrefix={arXiv},
  primaryClass={cs.SD},
  url={https://arxiv.org/abs/2601.01554}
}

Star 历史

相似文章

OpenMOSS-Team/MOSS-TTS-v1.5 · Hugging Face

Reddit r/LocalLLaMA

MOSS-TTS v1.5是一个更新的开源文本转语音模型,具有改进的多语言合成(支持31种语言)、更稳定的零样本语音克隆以及显式的内联停顿控制。

OpenMOSS-Team/MOSS-TTS-Nano-100M

Hugging Face Models Trending

MOSS-TTS-Nano是一个开源的多语言语音生成模型,仅0.1B参数,专为实时TTS设计,可直接在CPU上运行而无需GPU。由OpenMOSS团队和MOSI.AI发布,它支持简单的本地部署,用于Web服务和产品集成。