Views
No views yet
[S01], [S02], and beyond.[S01] and [S02] without a separate diarization pipeline.
trust_remote_code=True.-) indicates that the result is unavailable.| Model | AISHELL‑4 | Alimeeting | Podcast | Movies | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CER↓ | cpCER↓ | Δcp↓ | CER↓ | cpCER↓ | Δcp↓ | CER↓ | cpCER↓ | Δcp↓ | CER↓ | cpCER↓ | Δcp↓ | |
| Doubao | 18.18 | 27.86 | 9.68 | 25.25 | 37.57 | 12.31 | 7.93 | 10.54 | 2.61 | 9.94 | 30.88 | 20.94 |
| ElevenLabs | 19.58 | 37.95 | 18.36 | 25.70 | 36.69 | 10.99 | 8.50 | 11.34 | 2.85 | 11.49 | 17.85 | 6.37 |
| GPT-4o | - | - | - | - | - | - | - | - | - | 14.37 | 23.67 | 9.31 |
| Gemini 2.5 Pro | 42.70 | 53.42 | 10.72 | 27.43 | 41.64 | 14.21 | 7.38 | 10.23 | 2.85 | 15.46 | 24.15 | 8.69 |
| Gemini 3 Pro | 22.75 | 27.43 | 4.68 | 26.75 | 32.84 | 6.09 | - | - | - | 8.62 | 14.73 | 6.11 |
| VIBEVOICE ASR | 21.40 | 24.99 | 3.59 | 27.40 | 29.33 | 1.93 | 27.94 | 48.30 | 20.36 | 14.59 | 42.54 | 27.94 |
| MOSS Transcribe Diarize 0.9B | 14.84 | 15.83 | 0.99 | 24.86 | 22.17 | -2.69 | 5.97 | 7.37 | 1.40 | 6.36 | 12.76 | 6.40 |
| MOSS Transcribe Diarize Pro | 13.78 | 14.02 | 0.24 | 18.22 | 13.94 | -4.27 | 4.46 | 6.97 | 2.51 | 5.86 | 11.78 | 5.92 |
trust_remote_code=True.1conda create -n moss-transcribe-diarize python=3.12 -y
2conda activate moss-transcribe-diarize
3
4git clone https://github.com/OpenMOSS/MOSS-Transcribe-Diarize.git
5cd MOSS-Transcribe-Diarize
6
7pip install --index-url https://download.pytorch.org/whl/cu128 torch torchaudio
8pip install -e .1import torch
2from transformers import AutoModelForCausalLM, AutoProcessor
3
4from moss_transcribe_diarize import parse_transcript
5from moss_transcribe_diarize.inference_utils import (
6 build_transcription_messages,
7 generate_transcription,
8 resolve_device,
9)
10
11model_id = "OpenMOSS-Team/MOSS-Transcribe-Diarize"
12audio_path = "audio.wav"
13
14device = resolve_device("auto")
15dtype = torch.bfloat16 if device.type == "cuda" else torch.float32
16
17model = AutoModelForCausalLM.from_pretrained(
18 model_id,
19 trust_remote_code=True,
20 dtype="auto",
21).to(dtype=dtype).to(device).eval()
22
23processor = AutoProcessor.from_pretrained(
24 model_id,
25 trust_remote_code=True,
26)
27
28messages = build_transcription_messages(audio_path)
29result = generate_transcription(
30 model,
31 processor,
32 messages,
33 max_new_tokens=2048,
34 do_sample=False,
35 device=device,
36 dtype=dtype,
37)
38
39print(result["text"])
40
41for segment in parse_transcript(result["text"]):
42 print(segment.start, segment.end, segment.speaker, segment.text)processor.apply_chat_template(messages, tokenize=False) renders text with audio placeholders.processor(text=text, audio=audios) computes Whisper input features and expands audio placeholders.model.generate(...) produces timestamped transcription and diarization text.请将音频转写为文本,每一段需以起始时间戳和说话人编号([S01]、[S02]、[S03]…)开头,正文为对应的语音内容,并在段末标注结束时间戳,以清晰标明该段语音范围。请将音频转写为文本,每一段需以起始时间戳和说话人编号([S01]、[S02]、[S03]…)开头,正文为对应的语音内容,并在段末标注结束时间戳,以清晰标明该段语音范围。热词提示:热词1, 热词2, 热词3/v1/audio/transcriptions endpoint. If you are using a CUDA 12 environment, SGLang is currently not supported; use vLLM instead. Install sglang-omni by following the installation guide, then download the model:hf download OpenMOSS-Team/MOSS-Transcribe-Diarize1sgl-omni serve \
2 --model-path OpenMOSS-Team/MOSS-Transcribe-Diarize \
3 --port 8000 \
4 --max-running-requests 16 \
5 --cuda-graph-max-bs 16 \
6 --mem-fraction-static 0.80response_format=verbose_json when you need parsed speaker segments. json returns the raw transcript text only.1curl -X POST http://localhost:8000/v1/audio/transcriptions \
2 -F model=OpenMOSS-Team/MOSS-Transcribe-Diarize \
3 -F file=@audio.wav \
4 -F response_format=verbose_jsonmax_new_tokens so the decoder can finish the full diarized transcript:1curl -X POST http://localhost:8000/v1/audio/transcriptions \
2 -F model=OpenMOSS-Team/MOSS-Transcribe-Diarize \
3 -F file=@audio.wav \
4 -F response_format=verbose_json \
5 -F max_new_tokens=65536cu129; for CUDA 13 environments, use cu130.1uv pip install -U vllm \
2 --torch-backend=auto \
3 --extra-index-url https://wheels.vllm.ai/68b4a1d582818e67adc903bf1b8fc5a5447da2fa/cu1291uv pip install -U vllm \
2 --torch-backend=auto \
3 --extra-index-url https://wheels.vllm.ai/68b4a1d582818e67adc903bf1b8fc5a5447da2fa/cu130vllm serve OpenMOSS-Team/MOSS-Transcribe-Diarize --trust-remote-code1curl http://localhost:8000/v1/audio/transcriptions \
2 -F model="OpenMOSS-Team/MOSS-Transcribe-Diarize" \
3 -F file=@"audio.wav" \
4 -F response_format="json" \
5 -F temperature="0"1mtd-subtitle-web \
2 --model OpenMOSS-Team/MOSS-Transcribe-Diarize \
3 --host 127.0.0.1 \
4 --port 7860http://127.0.0.1:7860, upload an audio/video file, review the parsed subtitle segments, then download JSON/SRT/ASS or burn an MP4 if ffmpeg and ffprobe are available on PATH.1mtd-subtitle /path/to/input.mp4 \
2 --model OpenMOSS-Team/MOSS-Transcribe-Diarize \
3 --out-dir runs/example \
4 --render[start_time][Sxx]transcribed speech[end_time][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]start_time and end_time are timestamps in seconds.[S01], [S02], and similar labels are anonymous model-generated speaker labels.1@misc{moss_transcribe_diarize_2026,
2 title={MOSS Transcribe Diarize Technical Report},
3 author={{MOSI.AI}},
4 year={2026},
5 eprint={2601.01554},
6 archivePrefix={arXiv},
7 primaryClass={cs.SD},
8 url={https://arxiv.org/abs/2601.01554}
9}