Skip to content

v2.13.0

Choose a tag to compare

@pvtrn pvtrn released this 27 Apr 00:55

Voice Fingerprint multi-template profile

Replaces the single-centroid + EMA profile architecture with a ring buffer of up to 20 templates per device. Fixes a real production failure: at ~150-200 recordings the previous design's centroid had drifted toward a "generic-voice" hub through positive-feedback contamination from borderline-pass samples, and the gate started accepting kids and partner. The new design caps profile size, and high-confidence-only updates kill the contamination loop entirely.

Behaviour changes

  • Score is now mean cosine across all templates (matches Apple's "Personalized Hey Siri" formulation).
  • Border samples (0.55 ≤ similarity < 0.70) still pass through to transcription — you don't lose your message — but no longer enter the profile, so they can't drift it toward neighbour voices.
  • FIFO eviction once the ring is full at 20 templates.

Migration

Existing profiles with > 40 enrolments are reset on first launch (the centroid was already too contaminated to seed safely). 5 fresh recordings re-bootstrap the new ring. Profiles below the threshold migrate cleanly: legacy centroid seeds slot 0, your existing enrolment count is preserved.


Download the DMG, drag SpeechButton.app into /Applications. brew users: brew upgrade --cask speechbutton. Existing users: "Check for Updates" picks this up automatically.