Второй проход по промежуткам, которые детектор счёл тишиной

Диаризация задавала не только «кто говорит», но и границы того, что вообще
попадает в распознавание: фразы вне её сегментов пропадали молча. Второй
проход их возвращает с пометкой recovered=true и speaker=0.

Замер на восьми записях: 131 слово из 17 004 (0,8 %), 3-19 с на запись.
Возвращается и настоящий диалог (вопрос о цене, даты, документы), и радио
на фоне, поэтому проход отключается настройкой recover_gaps.

Скрипты render_transcript.py и check_gaps.py - для сверки расшифровки
с записью и поиска потерянных фраз.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vladimir Bryzgalov
2026-08-16 22:07:02 +05:00
co-authored by Claude Opus 5
parent fd90cdadc1
commit 56cf7e5b0e
8 changed files with 401 additions and 5 deletions
+7
View File
@@ -59,6 +59,11 @@ speakers = 2
# это решающая настройка: без неё тихий участник сливается с громким и
# разделение по говорящим разваливается. На распознавание не влияет.
normalize = true
# Распознавать промежутки, которые детектор речи не отметил как речь.
# Возвращает потерянные фразы (вопрос о цене, даты, документы), но вместе
# с ними может подхватить радио или телевизор на фоне. Возвращённые реплики
# помечены recovered=true и speaker=0 - их видно и можно отфильтровать.
recover_gaps = true
# Максимальный размер загружаемого файла, МБ
max_upload_mb = 500
# Сколько часов хранить результаты завершённых задач
@@ -101,6 +106,7 @@ class Settings:
workers: int = 0
speakers: int = 2
normalize: bool = True
recover_gaps: bool = True
max_upload_mb: int = 500
keep_results_hours: float = 72.0
webhook_url: str = ""
@@ -187,6 +193,7 @@ def load_settings(config_path: Path | None = None) -> Settings:
workers=int(proc.get("workers", 1)),
speakers=int(proc.get("speakers", 2)),
normalize=bool(proc.get("normalize", True)),
recover_gaps=bool(proc.get("recover_gaps", True)),
max_upload_mb=int(proc.get("max_upload_mb", 500)),
keep_results_hours=float(proc.get("keep_results_hours", 72)),
webhook_url=str(hook.get("url", "")),