Repository navigation
feat: suggest known speaker names while typing (#144) - #146
Open
raphaelm22 wants to merge 1 commit into
Open
raphaelm22 wants to merge 1 commit into
raphaelm22 wants to merge 1 commit into
Conversation
Typing a name from scratch in every recording leaves one person under several spellings, which splits search, summaries and voice profiles. Each name field now pops up the names used in the other recordings (speaker_names.json), most used first, matching any word and ignoring case and accents. Names already given to another speaker of the same recording are not offered.
Author
|
Ready for review. Checked in an offscreen panel and against a real recordings folder; not yet in daily use. |
raphaelm22
marked this pull request as ready for review
October 22, 2026 13:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #144
What
Each name field in the Speakers panel now pops up the names already used in other recordings while you type.
app/ui/speaker_name_suggestions.py(no Qt):known_speaker_namesreads every*/speaker_names.jsonunder the recordings folder, ranks names by how many recordings use them, and collapses spellings that differ only in case, accents or spacing (most used spelling wins, latest recording breaks ties).matching_namesmatches any word, ignoring case and accents; word-start matches come before substring matches; names already given to another speaker of the recording and the exact text typed are left out.SpeakerNamePanel: oneQCompleterper field inUnfilteredPopupCompletionmode, fed bymatching_namesontextEdited(Qt's own filter is prefix-only and accent-sensitive). Picking a name sets the text, sonames_changedfires as for typing. Loading the names can't fail the panel.Why
Typing names from scratch leaves one person under several spellings, which splits search and summaries, and, with #128, voice profiles.
Tests
tests/test_speaker_name_suggestions.py: 17 tests (ranking, spelling collapse, corrupt files, accent-free matching, exclusion, the popup handler against a stub panel). Full suite: 425 passed.Checked with an offscreen
SpeakerNamePanel(typing, popup contents, ↓ + Enter, popup hidden when nothing matches) and against a real recordings folder (12 names, 7 recordings).Follow-up once #129 lands: also offer voice-profile names, since a profile outlives the recordings it was trained from (done in my local build, ~10 lines).
🤖 Generated with Claude Code