Skip to content

[Tier 3] Cross-session speaker profiles + persistent renames #68

@fmasi

Description

@fmasi

Symptom: Speaker names are not remembered across recordings; every session restarts at Speaker 1.

Root cause

No persistent speaker enrollment exists (no use of FluidAudio initializeKnownSpeakers, no speaker DB on disk). Renames only rewrite the single transcript JSON (TranscriberApp/Services/CLIRename.swift:117-146, TranscriberApp/Services/RenameWindowController.swift:178-197); the speaker_names metadata is written but never read back.

Proposed fix

  • Add a persistent speaker profile store at ~/.audio-transcribe/speakers/ (name + averaged embedding).
  • On diarization, match new speakers against it (cosine) to auto-label known people.
  • Wire renames to upsert the matched embedding under the new name so future recordings auto-label.
  • Optionally seed the diarizer via FluidAudio initializeKnownSpeakers (note: this dropped async in FluidAudio 0.14.6 — minor migration if the SDK is upgraded).

This is likely a v0.8 feature.

Acceptance criteria

  • Known speakers auto-labeled in a new recording.
  • Renames persist across sessions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions