Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
|