Product docs
Speaker Diarization
Offline, on-device speaker labeling after transcription—plans, model download, run and re-run, renaming, copy/export, and known limits.
Speaker Diarization
What this page is for
After a multi-speaker meeting, interview, or podcast is transcribed, you often still need “who said what.” Speaker diarization is an offline post-process after transcription finishes: it labels speakers on the completed result on your machine, without sending audio to the cloud.
It is not:
- Live speaker labels during realtime transcription or dictation
- A Whisper advanced-parameter toggle (unrelated to decoding or VAD)
- Part of dictation (see Dictation (Beta))
Plan and prerequisites
| Item | Detail |
|---|---|
| Plans | Pro and Lifetime (same entitlement gate as the desktop app; expired Pro is treated as Free) |
| Free / Standard | Note menus and Settings still show the entry in a locked state; download and run prompt an upgrade |
| Prerequisite | Transcription for that note must be finished, with usable audio |
| Model | First run needs the speakrs model pack (Settings → Model library → Other) |
If transcription is incomplete, the entry tells you to finish it first. If the model is missing, you are prompted to download before running.
First time: download the model
- Open Settings → Model library, switch to Other.
- Find Speaker Diarization and download the speakrs model pack (weights and PLDA files required by speakrs).
- After download, run diarization from a note.
You can also start from a note and follow the download prompt. Non-Pro / Lifetime users see a lock or Pro badge on the menu and download row; clicking opens the upgrade flow.
How to run
There are only two entry points (Settings is download-only):
- Note window More → Advanced Processing → Speaker Diarization
- Note list right-click → Advanced Processing → Speaker Diarization
A confirm dialog always appears first:
- Auto-detect speaker count is on by default (recommended)
- Turn auto off to enter a speaker count (about 2–20). The app forwards that value to the local engine, which tries to approach your target: it searches clustering thresholds first, then—if the result is still too high—merges surplus speakers by speaking time. This is not “set N → always get exactly N.” It works best when the audio really has about that many speakers; if the engine can only find fewer speakers than you requested, it cannot invent or split people into more speakers
- The dialog remembers your last auto / count choice
- Duration may show a rough time estimate; Cancel leaves nothing changed
While running:
- The list item can show a ring progress indicator; the menu item is disabled and may show a percent
- You can Stop at any time
- When done, colored
S1/S2badges appear on transcript lines; the list shows a speakers icon (tooltip includes count)
If the detected count looks high (for example ≥5), a “Wrong count?” style hint may appear. Open the same dialog, turn auto off, set the count, and re-run; the engine approaches the target as described above. Re-running still resets custom speaker names.
Rename and re-run
- Manage speakers (under Advanced Processing; only when a result exists): rename each speaker (about 1–20 characters). Empty name restores the default “Speaker N”. Duplicate names are allowed with a soft warning. Saving updates badges, copy, and export immediately.
- With a custom name, badges prefer that label (long names truncate; hover for full text). Copy / export use the full name.
- Re-run speaker diarization replaces the previous segmentation. If you renamed speakers, the confirm dialog warns that re-running resets speaker names. Names live on the current transcription run only; a new transcription does not keep them.
Copy and export
After a successful run:
- Copy: optionally include speakers as
Display name: text. Consecutive lines from the same speaker get a label only on the first. With translation included, speaker labels stay on the source line only. - Export (TXT / Markdown / SRT / VTT, and so on): “Include speakers” switch. Defaults on when the note already has diarization (you can change it; preference is remembered per note).
- Caption formats (SRT, VTT, …): labels are written into each cue’s text, not as a separate timed cue. JSON-style exports may carry structured speaker fields; trust what the app actually writes.
Dictation itself does not run diarization. If you transcribe into Notes and diarize there, the same copy/export rules apply.
Known limits
- Overlapping speech, heavy crosstalk, music-heavy audio, or near-silent clips often degrade results or yield zero speakers.
- Auto count can run high or low; turn off Auto and set the count to re-run. With a set count the engine approaches the target, but the result may still not match exactly; if fewer speakers can be separated than requested, it cannot invent more. Noisy or overlapping speech still makes mistakes more likely, and results are not forensic-grade.
- No live diarization, no filter-by-speaker timeline, no reusing names across notes.
- Vocal separation and punctuation models are separate downloads and entries—do not look for diarization inside Whisper advanced parameters.
Related docs
- Note: post-process and export overview
- Models & Engines Overview: plans and model groups
- Parameters by engine: Whisper / realtime / advanced ASR params (not diarization)
- Dictation (Beta)