Conclave Docs

Diarization

Who spoke when, anonymously — diart (live) and DiariZen (post-pass).

Diarization answers who spoke when — as anonymous speaker labels (Speaker 1, Speaker 2), never names. Naming is a separate, consented step (voiceprints). This is the load-bearing boundary: Capture emits {start, end, local_speaker} and nothing else.

Two engines

EngineWhenWhereAccuracy (DER)Notes
diartLive, streamingCPU~0.190pyannote streaming; drives the on-screen live preview
DiariZenPost-meeting, authoritativeGPU~0.088WavLM + VBx; overwrites the live labels with the accurate pass

The live path shows a diart preview immediately; after the meeting, the authoritative DiariZen post-pass re-diarizes for accuracy, then hands spans to VFTE for identity.

How a meeting resolves

in-person mic → diart (live) + NEAR Whisper ASR per span → live preview
finalize      → DiariZen post-pass (authoritative spans)
              → VFTE identify-spans (scoped + consented names)
              → merge by timestamp → [speaker] text transcript → enrich

The headline is the merged transcript

Diarization quality is judged by the merged [speaker] text transcript, not DER in isolation: Whisper (what was said) runs alongside the diarizer (who said it), and the two are merged by timestamp. A great DER with a garbled merge is still a bad transcript.

Licensing & production reality

DiariZen's weights are CC-BY-NC — fine for evaluation, but a clean engine is required before commercial use, which is why replacing the post-pass model is an active workstream. The live path (diart) is the firm choice for real-time; DiariZen is post-pass only. Current latency/reliability work is tracked as P0: diarization.

Source: FEATURE-SPEC.md §3.2, DIARIZATION-MIGRATION.md.

On this page