Public Access
This commit is contained in:
@@ -435,3 +435,54 @@ The replacement speech recognition pipeline SHALL use the target launch profile'
|
||||
- **WHEN** the active transcription profile is switched to another launch profile
|
||||
- **THEN** the new speech recognition pipeline is created from the target profile options
|
||||
- **AND** it receives audio captured after the switch request and audio buffered during the switch
|
||||
|
||||
### 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
|
||||
|
||||
Reference in New Issue
Block a user