Files
codex a72cda0c03
PR and Push Build/Test / build-and-test (push) Successful in 7m0s
Harden speaker identity samples
2026-05-28 12:02:44 +02:00

3.3 KiB

ADDED Requirements

Requirement: Speaker identity samples require uninterrupted speech

Meeting Assistant SHALL only retain speaker identity samples after a diarized speaker has produced at least the configured minimum duration of uninterrupted speech.

The default minimum uninterrupted speech duration SHALL be 30 seconds.

Meeting Assistant MAY combine adjacent transcript segments for the same diarized speaker into one sample span when no different diarized speaker interrupts the span.

When a different diarized speaker appears before the configured minimum duration is reached, Meeting Assistant SHALL discard the pending sample span for the previous speaker.

Scenario: Short speaker span is not retained

  • GIVEN the configured minimum sample duration is 30 seconds
  • WHEN a diarized speaker produces only 20 seconds of uninterrupted speech
  • THEN Meeting Assistant does not retain a speaker identity sample for that span

Scenario: Adjacent same-speaker segments form a sample

  • GIVEN the configured minimum sample duration is 30 seconds
  • WHEN a diarized speaker produces adjacent segments totaling at least 30 seconds without another speaker interrupting
  • THEN Meeting Assistant retains one speaker identity sample covering the continuous span

Scenario: Different speaker interrupts pending span

  • GIVEN the configured minimum sample duration is 30 seconds
  • WHEN Guest01 speaks for 20 seconds and then Guest02 speaks
  • THEN Meeting Assistant discards the pending Guest01 span instead of retaining or later extending it

Requirement: Speaker identity matching can use pyannote secondary validation

Meeting Assistant SHALL support an optional configurable pyannote secondary validation layer for speaker identity matching.

When pyannote secondary validation is enabled, Meeting Assistant SHALL verify candidate speaker samples before retaining them for identity matching. Samples that pyannote reports as containing multiple speakers SHALL be rejected.

When pyannote secondary validation is enabled and the primary identity matcher confirms a speaker, Meeting Assistant SHALL run a second validation pass through pyannote before accepting the match.

If pyannote secondary validation cannot confirm that the unknown live sample and matched identity samples belong to one speaker, Meeting Assistant SHALL reject the match.

When pyannote secondary validation is disabled, Meeting Assistant SHALL preserve the primary identity matching behavior.

Scenario: Multi-speaker sample is rejected

  • GIVEN pyannote secondary validation is enabled
  • WHEN pyannote reports multiple speakers in a candidate sample
  • THEN Meeting Assistant does not retain that sample for identity matching

Scenario: Pyannote rejects primary match

  • GIVEN pyannote secondary validation is enabled
  • AND the primary identity matcher confirms Guest03 as Chris
  • WHEN pyannote reports that the unknown Guest03 sample and known Chris samples contain different speakers
  • THEN Meeting Assistant rejects the match

Scenario: Disabled pyannote validation preserves primary match

  • GIVEN pyannote secondary validation is disabled
  • WHEN the primary identity matcher confirms Guest03 as Chris
  • THEN Meeting Assistant accepts the match without running pyannote secondary validation