Minutiva Private v0.6.0-beta1
What's new
Enterprise-grade speaker clustering (VBxHMM). The clustering algorithm under speaker tagging has been completely rewritten. The previous UPGMA + silhouette + merge-back pipeline (which sometimes over-split a single speaker into two clusters on 1:1 calls) is replaced with VBxHMM — the same Variational Bayes HMM approach used by academic diarization research. Closes the K=2 false-positive at the algorithm level.
People — voice address book. PREMIUM Name a speaker once and they become a Person in your library. Future meetings get cross-meeting match suggestions ("Looks like Marisa — link?") with one-click accept or reject. Each Person tracks their meetings, voice samples, and a free-text notes field. All on-device, no cloud.
Live transcript shows (You)/(Others) per chunk.
The recording feed now prefixes each chunk with (You) for your microphone or (Others) for the meeting audio. Quick at-a-glance attribution while a call is in progress.
Bug C fixed — mid-recording device switches no longer lose 1–2 minutes of audio. If you pull out AirPods or switch to built-in speakers mid-meeting, the Process Tap now rebuilds itself against the new default output device. There's a brief (~1–3s) gap during the switch instead of the prior silent-audio bug.
Re-cluster controls. Settings → Advanced gains a "Re-cluster all meetings with v0.6 algorithm" bulk button with a progress bar. Each meeting's kebab menu has a "Re-cluster speakers (v0.6)" action for one-off re-runs. Useful for migrating meetings clustered with the previous algorithm.
Two long-broken bugs fixed in this build:
- The play-sample icon next to each speaker has never worked since speaker tagging shipped in v0.5.4 — it was silently failing due to a JSON decoder mismatch. Now plays a 3-second sample of the voice when you click it. Use it to verify clusters match speakers by ear.
- When you used "Merge all into one" and the result was a single cluster, the speaker panel disappeared entirely — making the lone "Speaker 1" unnameable. The panel now stays visible for any cluster count ≥ 1.
- Re-clustering resets speaker names to
Speaker 1/Speaker 2/… (pre-existing; fix tracked for the next beta). - Long multi-speaker meetings (e.g., webinars) can over-split into 6–7 clusters even after merge-back. Use the kebab → Merge all into one to collapse, or rename + manually consolidate clusters that sound the same to your ear (click the play icon).
- If you switch output device mid-recording (e.g., pull AirPods), the transcript stays continuous, but the playable audio after the switch lives in a sibling
.caffile until concatenation lands in beta2.
Under the hood
- VBxHMM clustering with cosine-similarity emission likelihood (no external PLDA model needed).
- WeSpeaker ResNet34-LM embeddings remain unchanged.
- TranscriptSegment + Speaker gain additive schema fields (
endTime,overlapsWith,backchannels,personID,suggestedPersonID,suggestedConfidence) for forward compat with v1.0. - New
people.jsonfile at~/Library/Application Support/— the People address book. Atomic writes, no cloud sync. - ~310 tests green. New DER/JER eval infrastructure gated behind
RUN_EVAL=1for future benchmark runs.
What's next (v1.0)
v1.0 is the Sortformer track: live streaming diarization with stable speaker IDs in the recording feed, overlap labeling (multiple speakers shown when they talk simultaneously), and a v1.0 of the People model that handles voice enrollment more richly. No deadline — ships when ready.