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
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); thespeaker_namesmetadata is written but never read back.Proposed fix
~/.audio-transcribe/speakers/(name + averaged embedding).initializeKnownSpeakers(note: this droppedasyncin FluidAudio 0.14.6 — minor migration if the SDK is upgraded).This is likely a v0.8 feature.
Acceptance criteria