Skip to content

As a user, I can provide a speaker count range so that diarization has better constraints #12

@julien731

Description

@julien731

User Story

As a user, I can provide a min/max speaker count range during upload so that diarization has better constraints without requiring me to know the exact speaker count.

Spec: docs/specs/transcription-quality-improvements.md — US-4

Size: S

Acceptance Criteria

  • The upload form includes optional "Min speakers" and "Max speakers" fields
  • Given an exact speaker count is provided, when min/max are also set, then min/max are ignored
  • Given only min speakers is provided, when diarization runs, then at least that many speakers are preserved
  • Given no speaker hints are provided, then default diarization behavior is unchanged
  • min_speakers and max_speakers fields are persisted in MeetingMetadata
  • Given min_speakers exceeds the actual number of speakers, then diarization may split one speaker into multiple (acceptable tradeoff)

Truths

  • T1: min_speakers/max_speakers are mutually exclusive with num_speakers — exact count takes precedence (BR-2)
  • T2: These values are pass-through to pyannote's diarization pipeline

Business Rules

  • BR-2: min_speakers/max_speakers are mutually exclusive with num_speakers. If exact count is set, range is ignored. Pyannote does not accept both simultaneously.

Edge Cases

  • min_speakers > actual speakers → diarization may over-split (acceptable tradeoff vs. merging)
  • Both exact count and min/max provided → exact count wins, min/max ignored

Dependencies

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or enhancement

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions