From 650e7580e52a0269239b53a3f0357170e6ae7f7c Mon Sep 17 00:00:00 2001 From: Dmitriy Dementiev Date: Thu, 9 Jul 2026 20:49:45 +0300 Subject: [PATCH] =?UTF-8?q?chore(repo):=20=D1=83=D0=B1=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D1=82=D0=BE=D1=80=D0=BE=D0=BD=D0=BD=D0=B8?= =?UTF-8?q?=D0=B9=20app.py,=20=D0=B8=D0=B4=D0=B5=D1=8F=20=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE?= =?UTF-8?q?=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B0=20=D0=B2=20backlog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - в дереве с апреля лежал некоммиченный app.py (референсный Parakeet-сервер, не часть CLI) и служебный каталог .qwen/ — мусор в git status. - Что: - удалён app.py; его единственная ценная идея (чанкование длинных файлов по паузам через ffmpeg silencedetect) описана в docs/backlog.md с рабочими константами. - .qwen/ добавлен в .gitignore (по аналогии с .codex). - Проверка: - git status — дерево чистое, untracked-файлов нет. Co-Authored-By: Claude Fable 5 --- .gitignore | 1 + docs/backlog.md | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index 24e0c31..14ed42f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ __pycache__/ dist/ *.pyc .codex +.qwen/ .scratch/ \ No newline at end of file diff --git a/docs/backlog.md b/docs/backlog.md index 7581b21..a60fd85 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -62,6 +62,18 @@ --- +### Интеллектуальное чанкование длинных файлов по паузам + +**Что:** Резать длинные файлы на чанки (~90 с) не по фиксированной сетке, а по ближайшей тишине: `ffmpeg -af silencedetect=noise=-40dB:d=0.5` → парсинг stderr → выбор точки разреза в окне ±30 с вокруг целевой границы (с минимальным зазором между разрезами, чтобы не получить нулевые чанки). + +**Почему:** Разрез посреди слова/фразы портит распознавание на границах чанков; разрез по паузе — нет. Потенциально смягчает класс ошибок Whisper medium на длинных файлах (потеря хвоста, блоки повторов — см. пункт выше): короткие чанки не дают декодеру «уплыть». + +**Источник:** референсная реализация Parakeet-сервера (Flask, OpenAI-совместимый API), лежавшая в репо как `app.py` в период эксперимента ADR-005/006 (апрель 2026); удалена при чистке 2026-07-09 — рабочие константы: порог -40dB, мин. тишина 0.5 с, окно поиска 30 с, мин. зазор 5 с. + +**Tradeoff:** дополнительный проход ffmpeg по всему файлу (silencedetect) перед транскрипцией; для часового файла — десятки секунд. + +--- + ### Качественный pipeline для OpenVINO (temperature fallback + фильтры) **Что:** Реализовать temperature fallback, compression_ratio и log_prob фильтры поверх OpenVINO GenAI WhisperPipeline. Эвристики — логика на Python (~50-100 строк), не зависящая от inference engine.