AliJabbarpour commited on
Commit
95ff138
·
verified ·
1 Parent(s): 9fcb995

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -1
app.py CHANGED
@@ -56,23 +56,39 @@ def find_leading_noise_cutoff(diarization, whisper_start, search_back_sec=4.0):
56
  """
57
  برمی‌گرده به عقب از شروعِ حدسیِ Whisper، دنبال یه بلوک نویز/بی‌گوینده‌ی
58
  طولانی (حداقل MIN_NOISE_BLOCK_SEC) که دقیقاً قبل از این جمله باشه.
 
 
 
59
  اگه پیدا کرد، زمان پایانِ اون بلوک نویز رو برمی‌گردونه (یعنی «از اینجا به بعد
60
  اعتماد کن»)؛ اگه پیدا نکرد، None برمی‌گردونه (یعنی چیزی رو نبُر).
61
  """
 
62
  window_start = max(0, whisper_start - search_back_sec)
63
  step = 0.05
64
  t = whisper_start
65
  noise_end = None
66
  noise_start = None
 
67
 
68
  while t > window_start:
69
  speaker = get_speaker_at(diarization, t)
 
70
  if speaker is None:
 
71
  if noise_end is None:
72
  noise_end = t
73
  noise_start = t
74
  else:
75
- break
 
 
 
 
 
 
 
 
 
76
  t -= step
77
 
78
  if noise_start is not None and noise_end is not None:
 
56
  """
57
  برمی‌گرده به عقب از شروعِ حدسیِ Whisper، دنبال یه بلوک نویز/بی‌گوینده‌ی
58
  طولانی (حداقل MIN_NOISE_BLOCK_SEC) که دقیقاً قبل از این جمله باشه.
59
+ نوسان‌های خیلی کوتاه (کمتر از STABLE_SPEAKER_SEC) که یه گوینده برای یه
60
+ لحظه‌ی گذرا ظاهر میشه رو نادیده می‌گیره - فقط با دیدنِ یه گوینده‌ی
61
+ "پایدار" واقعاً متوقف میشه.
62
  اگه پیدا کرد، زمان پایانِ اون بلوک نویز رو برمی‌گردونه (یعنی «از اینجا به بعد
63
  اعتماد کن»)؛ اگه پیدا نکرد، None برمی‌گردونه (یعنی چیزی رو نبُر).
64
  """
65
+ STABLE_SPEAKER_SEC = 0.2
66
  window_start = max(0, whisper_start - search_back_sec)
67
  step = 0.05
68
  t = whisper_start
69
  noise_end = None
70
  noise_start = None
71
+ speaker_run_start = None
72
 
73
  while t > window_start:
74
  speaker = get_speaker_at(diarization, t)
75
+
76
  if speaker is None:
77
+ speaker_run_start = None
78
  if noise_end is None:
79
  noise_end = t
80
  noise_start = t
81
  else:
82
+ if speaker_run_start is None:
83
+ speaker_run_start = t
84
+ run_len = speaker_run_start - t
85
+ if run_len >= STABLE_SPEAKER_SEC:
86
+ break
87
+ # نوسان کوتاه‌مدت - نادیده بگیر و بخشی از بلوک نویز حساب کن
88
+ if noise_end is None:
89
+ noise_end = t
90
+ noise_start = t
91
+
92
  t -= step
93
 
94
  if noise_start is not None and noise_end is not None: