Have you explored using speaker diarization and speaker identification, given that pyannote etc. takes this approach?
I'm curious given your decision to capture speaker names from the screen. I see the merits during desktop recording, but I can also see how this limits utility when trying to offer the same functionality across desktop and other scenarios (e.g. in-person meetings, audio uploads etc.)