Устойчивое распознавание длинных реплик

На Windows реплика в 190 секунд роняет энкодер GigaAM в свёртке, хотя на
macOS та же самая проходит: пределы у сборок onnxruntime разные и заранее
неизвестны. Вместо подбора константы кусок при ошибке делится пополам и
пробуется снова, до пяти уровней. Базовый размер куска снижен со 150 до 60
секунд - с запасом под любую сборку.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vladimir Bryzgalov
2026-08-15 23:37:17 +05:00
co-authored by Claude Opus 5
parent 91b69ebe06
commit f2f266ba1c
3 changed files with 41 additions and 3 deletions
+14
View File
@@ -71,3 +71,17 @@ class TestSpeechStats:
stats = speech_stats([])
assert stats["speakers"] == 0
assert stats["speech_sec"] == 0
class TestChunkLimit:
def test_default_chunk_is_conservative(self):
"""Пределы у разных сборок onnxruntime разные, берём с запасом."""
from app.pipeline import MAX_CHUNK_SEC
assert MAX_CHUNK_SEC <= 60
def test_long_turn_split_below_limit(self):
from app.pipeline import MAX_CHUNK_SEC
for a, b in chunk_ranges(0.0, 600.0, max_len=MAX_CHUNK_SEC):
assert b - a <= MAX_CHUNK_SEC