The transcript editor has two ways to change a speaker name. The "Save & Enroll" panel creates voice profiles, extracts audio samples, and generates embeddings for future matching. The inline edit mode -- clicking directly on a speaker label -- just changed the text. The system never learned from it.

Worse: if the AI mislabeled Stephanie's segment as "Tanya" and you corrected it inline, Tanya's voice profile still included that wrong audio.

Three Scenarios

Generic to real name (SPEAKER_04 → Commissioner Fernandez) -- already worked. Voice sample extracted, profile created, embedding queued.

Real name to real name (Tanya → Stephanie) -- new. This is the correction case:

Correction: "Tanya" → "Stephanie" on segments 45-52

1. Create voice sample for Stephanie from segments 45-52 audio
2. Delete Tanya's voice sample for those segments
3. If Tanya speaks elsewhere in this item, re-enroll from her actual segments
4. Queue embedding generation for both updated profiles

Both speakers' profiles get more accurate, not less.

New name → autofill -- new. Previously, typing a name that didn't exist during inline editing wouldn't add it to the autofill dropdown for future transcripts. Now every new real name creates a SpeakerProfile immediately via findOrCreateByName().

The Flywheel

Speaker recognition is a flywheel:

Correction → Voice Sample → Embedding → Better Matching → Fewer Corrections

Before this fix, only the "slow path" (Save & Enroll) turned the flywheel. The "fast path" (inline editing) -- what you naturally reach for when you spot a mistake mid-review -- was a black hole. Corrections went in, but the system never learned.

Now both paths feed the same loop. The enrollment uses up to 60 seconds of audio from the reassigned segments, matching the same logic as Save & Enroll.