MOSS Transcribe Diarize 0.9B

MOSS Transcribe Diarize 0.9B jointly generates transcript text, timestamps, and anonymous speaker labels. speech-swift now provides a native 128K MLX runtime for long recordings alongside the existing short-form CoreML backend.

Offline, not streaming

The complete recording must be available before generation begins. No streaming checkpoint is published for this MOSS model, and it emits no partial transcript while recording.

At a Glance

ModelMOSS Transcribe Diarize 0.9B
RoleOffline joint transcription and diarization with model-generated speaker labels and timestamps
BackendsMLX with 131,072 dynamic context tokens; CoreML with a fixed 1,024-token state
OutputPlain transcript plus timestamped speaker segments
LanguagesUpstream claims 50+ languages; its model card does not publish an exhaustive list
LicenseApache License 2.0
StatusAvailable through speech transcribe --engine moss and the MossTranscribe Swift product
SourceOpenMOSS-Team/MOSS-Transcribe-Diarize
Swift productMossTranscribe
CLI / runtimespeech transcribe --engine moss

Use

CoreML INT8 remains the compatibility default. Select MLX for the upstream long-context behavior; INT5 is the MLX default.

# CoreML INT8: short-form default.
.build/release/speech transcribe recording.wav --engine moss

# MLX INT5: dynamic 128K context.
.build/release/speech transcribe meeting.wav --engine moss --backend mlx

# MLX INT8 quality reference, with an optional lower-memory KV cache.
.build/release/speech transcribe meeting.wav --engine moss --backend mlx --model int8 --kv-cache int8

Model Links

How the 128K path works

The encoder still processes Whisper-sized 30-second chunks. The runtime concatenates every resulting audio embedding into one prompt before decoding, so speaker labels can use the complete recording context. Transcript tokens are then generated autoregressively; “single pass” does not mean simultaneous token generation.

INT5 vs INT8

VariantASR WER / CERASR RTFASR peak RSSDiarization DER / JERDiarization RTF
MLX INT58.55% / 6.36%0.0281,196 MiB28.05% / 26.56%0.065
MLX INT88.27% / 5.98%0.0321,407 MiB28.02% / 25.79%0.085

INT5 is the recommended MLX default: its two weight files total 987.0 MiB instead of 1,200.1 MiB, with a 0.28-point English WER cost and effectively equal DER on this five-file slice. The benchmark used identical FP16 audio weights, greedy decoding, and FP16 KV caches.

The ASR fixture is the first 80 English-US test clips from google/fleurs. The diarization files are from the CC-BY-4.0 VoxConverse test mirror; they are not the Community-1 development slice used by the separate CoreML benchmark.

Limits and memory