From 86455ce5732696ceca29143fe3d1f5f615ca24f4 Mon Sep 17 00:00:00 2001 From: Igor Loskutov Date: Mon, 18 Aug 2025 16:31:23 -0400 Subject: [PATCH] chore: type fixes (#544) * chore: type fixes * chore: type fixes --- .../reflector/processors/audio_diarization.py | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/server/reflector/processors/audio_diarization.py b/server/reflector/processors/audio_diarization.py index 2b2ef804..b139e038 100644 --- a/server/reflector/processors/audio_diarization.py +++ b/server/reflector/processors/audio_diarization.py @@ -37,18 +37,21 @@ class AudioDiarizationProcessor(Processor): async def _diarize(self, data: AudioDiarizationInput): raise NotImplementedError - def assign_speaker(self, words: list[Word], diarization: list[dict]): - self._diarization_remove_overlap(diarization) - self._diarization_remove_segment_without_words(words, diarization) - self._diarization_merge_same_speaker(words, diarization) - self._diarization_assign_speaker(words, diarization) + @classmethod + def assign_speaker(cls, words: list[Word], diarization: list[dict]): + cls._diarization_remove_overlap(diarization) + cls._diarization_remove_segment_without_words(words, diarization) + cls._diarization_merge_same_speaker(diarization) + cls._diarization_assign_speaker(words, diarization) - def iter_words_from_topics(self, topics: TitleSummary): + @staticmethod + def iter_words_from_topics(topics: list[TitleSummary]): for topic in topics: for word in topic.transcript.words: yield word - def is_word_continuation(self, word_prev, word): + @staticmethod + def is_word_continuation(word_prev, word): """ Return True if the word is a continuation of the previous word by checking if the previous word is ending with a punctuation @@ -61,7 +64,8 @@ class AudioDiarizationProcessor(Processor): return False return True - def _diarization_remove_overlap(self, diarization: list[dict]): + @staticmethod + def _diarization_remove_overlap(diarization: list[dict]): """ Remove overlap in diarization results @@ -86,8 +90,9 @@ class AudioDiarizationProcessor(Processor): else: diarization_idx += 1 + @staticmethod def _diarization_remove_segment_without_words( - self, words: list[Word], diarization: list[dict] + words: list[Word], diarization: list[dict] ): """ Remove diarization segments without words @@ -116,9 +121,8 @@ class AudioDiarizationProcessor(Processor): else: diarization_idx += 1 - def _diarization_merge_same_speaker( - self, words: list[Word], diarization: list[dict] - ): + @staticmethod + def _diarization_merge_same_speaker(diarization: list[dict]): """ Merge diarization contigous segments with the same speaker @@ -135,7 +139,8 @@ class AudioDiarizationProcessor(Processor): else: diarization_idx += 1 - def _diarization_assign_speaker(self, words: list[Word], diarization: list[dict]): + @classmethod + def _diarization_assign_speaker(cls, words: list[Word], diarization: list[dict]): """ Assign speaker to words based on diarization @@ -158,7 +163,7 @@ class AudioDiarizationProcessor(Processor): # If it's a continuation, assign with the last speaker is_continuation = False if word_idx > 0 and word_idx < len(words) - 1: - is_continuation = self.is_word_continuation( + is_continuation = cls.is_word_continuation( *words[word_idx - 1 : word_idx + 1] ) if is_continuation: