Skip to content

v2.19.0 — Speaker-enrollment redesign + wakeword v4 + duck-on-listen

Choose a tag to compare

@ebongard ebongard released this 06 Jul 17:43
· 329 commits to main since this release
2ebb10f

The full speaker-recognition rebuild that ends the ambient auto-enroll pollution loop — deployed and live (backend 2026-07-06-duck, frontend v2.15.52; SPEAKER_CONTROLLED_ENROLLMENT_ENABLED + DUCK_ON_LISTEN_ENABLED on).

Speaker-enrollment redesign (Phases 0–4)

  • Phase 0 (#915) — quality gating: L2-normalized centroids, short-turn duration gate, confidence-gated continuous learning. Stops the worst of the pollution loop.
  • Phase 1 (#916) — controlled multi-sample ONNX enrollment (voice-server model, same space as inference) + cohesion gate + user-link; bin/purge_unknown_speakers.py.
  • Phase 2 (#917/#918) — guided multi-take enrollment UI on /speakers.
  • Phase 3 (#919/#920) — controlled recognition: identify against enrolled profiles only, margin gate, immutable references; unmatched voices → speaker_candidates review bucket + admin API. Migration pc20260707.
  • Phase 3b (#922) — review-bucket UI (promote/dismiss) + bin/calibrate_speaker_threshold.py (recommends threshold/margin from real enrolled separation).
  • Phase 4 (#923) — persisted softened XVF3800 DSP tuning (chip flash + provisioning) and duck-on-listen.

Voice

  • renfield_de wakeword v4 (#921) — audiobook/media-speech hard-negatives. Held-out false wakes 22.7/hr → 0 at threshold 0.8, recall intact; fixed the Arbeitszimmer false-firing on an audiobook. Deployed.
  • Duck-on-listen — the industry "duck the source" answer to AEC-with-an-external-loudspeaker: lowers room DLNA media while a satellite listens, restores on turn-end. Dark-safe, now enabled.

Also

  • Schicht A document facts wired into internal.knowledge_search (+ circle-filtered fact-source titles, per-doc re-extract advisory lock) — #911/#912.
  • Kiosk active-subsystem pulse from the voice path; core "processing" for web-chat — #909/#910.
  • Speaker delete/merge FK ON DELETE actions (#914, migration pc20260705).

Operational follow-ups

  • Enroll the remaining household members (via the review bucket bootstrap) + run the calibration script to raise the threshold off the 0.25 default.
  • XVF3800 DSP tuning needs a live far-field recall A/B on the Fitnessraum ("Renfield").