Public Access
1.3 KiB
1.3 KiB
Harden speaker samples and pyannote validation
Why
Azure Speech speaker identity matching is too brittle when Meeting Assistant learns from short samples. Speaker identity samples should represent enough uninterrupted speech for the diarization backend to distinguish voices reliably.
Meeting Assistant can also use pyannote as a secondary, optional confidence layer: first to reject samples that contain multiple speakers, and then to reject Azure identity matches when pyannote cannot confirm that the unknown and known snippets are the same speaker.
What Changes
- Require speaker identity samples to meet a configurable minimum uninterrupted speech duration, defaulting to 30 seconds.
- Accumulate adjacent same-speaker transcript segments into a single sample span when no other speaker interrupts the span.
- Add optional pyannote-backed sample and match validation for speaker identity matching.
- Reuse the existing pyannote Docker/runtime configuration shape where practical.
Impact
- Speaker identity matching starts later for speakers who do not talk long enough uninterrupted.
- Live matching tests that depended on very short samples need to configure a lower minimum sample duration.
- Pyannote validation is opt-in and should not affect existing installations unless enabled.