py_faster_whisper · source snapshot · 16.09.2026
py_faster_whisper: от PCM и файлов до текста
Основной bridge вызывает внешний LinTO. Локально исполняются VAD, обработка аудио, управление заданиями и diarization sidecars.
SOURCE · src/stt_whisper_to_nats.py · src/webui/file_mode.py · src/model_transport.py
py_faster_whisper · source snapshot · 16.09.2026
Снимок кода, а не отчёт о GPU runtime
Дата исследования — 16.09.2026. Старые незакоммиченные документы и презентация сохранены.
VERIFIED / UNKNOWN · tests · stack/stack.drs · src/webui/bench.py
py_faster_whisper · source snapshot · 16.09.2026
Два входа, общая модельная граница
WebUI принадлежит этому проекту, публичные paths — соседнему WebRTC stack. H100 backend не включён в source-аудит.
SOURCE · src/webui/server.py · stack/stack.drs · git.giscloud.ru
py_faster_whisper · source snapshot · 16.09.2026
Точка входа выбирает bridge и WebUI
python -m src.stt_whisper_to_nats. Если оба флага STREAM_BRIDGE_ENABLED и WEBUI_ENABLED выключены, запуск завершается ошибкой.
SOURCE · src/stt_whisper_to_nats.py · src/webui/server.py
py_faster_whisper · source snapshot · 16.09.2026
Поток: накопить речь, затем распознать
VAD отделяет речь от пауз. Это фразовое распознавание: backend получает временный WAV, а не каждый PCM frame.
SOURCE · src/stt_whisper_to_nats.py · src/utils/silero_onnx_vad.py
py_faster_whisper · source snapshot · 16.09.2026
Один stream должен иметь одного владельца
Горизонтальное масштабирование нельзя свести к replicas: сначала нужны владение потоком, end/idle cleanup и политика потерь.
SOURCE / INFERRED · src/stt_whisper_to_nats.py · docs.nats.io
py_faster_whisper · source snapshot · 16.09.2026
Семафор не ограничивает принятую работу
Измерять надо не только занятые worker slots, но и очередь, возраст фразы и временные байты при замедленном backend.
SOURCE / INFERRED · src/stt_whisper_to_nats.py
py_faster_whisper · source snapshot · 16.09.2026
Файл: 202 означает запуск, не долговечную очередь
Worker — asyncio task внутри процесса. Новый start_job отменяет предыдущее активное задание этого worker.
SOURCE · src/webui/server.py · src/stt_whisper_to_nats.py
py_faster_whisper · source snapshot · 16.09.2026
ASR и diarization отвечают на разные вопросы
Без word timestamps точная атрибуция слов говорящим не гарантируется. Размеры chunks — defaults, не измеренный оптимум.
SOURCE · src/webui/file_mode.py · src/diarization.py · src/diarization_syntax.py
py_faster_whisper · source snapshot · 16.09.2026
Staged: Combine уже не вызывает модели
Перезапуск Transcribe или Diarize инвалидирует combined artifact. Дорогие результаты остаются доступны для следующего Combine.
SOURCE · src/webui/staged_jobs.py · tests
py_faster_whisper · source snapshot · 16.09.2026
Данные переживают разные события
Каталог job не равен долговечной истории. Обычный terminal job очищается; staged хранит результаты для следующих шагов.
SOURCE · src/webui/file_mode.py · src/stt_whisper_to_nats.py · src/webui/staged_jobs.py
py_faster_whisper · source snapshot · 16.09.2026
Общий lock хранит владельца в памяти
Lock координирует доступ, но не хранит очередь заданий. Несколько независимых реплик lock service требуют другого общего состояния.
SOURCE / INFERRED · src/webui/job_lock_server.py · src/webui/job_lock.py
py_faster_whisper · source snapshot · 16.09.2026
Direct и CONNECT сохраняют бинарный контракт
Proxy failure не переключает запрос на direct. Оптимизация pooling допустима только с сохранением target и изоляции credentials.
SOURCE · src/model_transport.py · tests/test_model_transport.py
py_faster_whisper · source snapshot · 16.09.2026
Где происходит настоящий HTTP inference
Combine — локальная ветка. Повторять модельный вызов для пересчёта отображения результата не требуется.
SOURCE · src/stt_whisper_to_nats.py · src/webui/file_mode.py · src/model_transport.py
py_faster_whisper · source snapshot · 16.09.2026
Три sidecar — совместимая роль, разные реализации
Совместимый HTTP payload не означает одинаковые качество, память и cold-start. Benchmark должен сохранять параметры моделей.
SOURCE · src/pyannote_diarization_server.py · src/sherpa_onnx_diarization_server.py · src/sortformer_diarization_server.py · src/diarization.py
py_faster_whisper · source snapshot · 16.09.2026
Diagnostics — активная проверка
Открытие diagnostics может вызвать работу моделей. В этом исследовании production diagnostics не запускалась.
SOURCE; LIVE НЕ ВЫПОЛНЯЛСЯ · src/webui/diagnostics.py · tests
py_faster_whisper · source snapshot · 16.09.2026
Публичные пути — контракт соседнего stack
/whisper-trasncription содержит существующую опечатку. Изменение URL потребует совместимости ingress и ссылок.
SOURCE · stack/stack.drs · .gitlab-ci.yml · git.giscloud.ru
py_faster_whisper · source snapshot · 16.09.2026
115 тестов проверяют логику, не распознавание на GPU
Suite завершился OK; mock-ошибка pyannote и aiohttp warnings не были падением реального backend.
TESTED / UNKNOWN · tests/test_model_transport.py · tests · src/webui/diagnostics.py
py_faster_whisper · source snapshot · 16.09.2026
Масштабировать потоки и файлы нужно по-разному
Это направления развития, не реализованные свойства. Сначала измерить очереди, RTF, отмену и поведение при рестарте.
ПРЕДЛОЖЕНИЕ · src/stt_whisper_to_nats.py · src/webui/file_mode.py
py_faster_whisper · source snapshot · 16.09.2026
Сохранять результаты, управлять сроком их жизни
Сильная сторона — повторное использование результатов. Главная граница роста — управление заданиями и потоком, а не выбор новой модели.
ОЦЕНКА / ПЛАН ПРОВЕРКИ · src/webui/staged_jobs.py · src/model_transport.py · src/webui/bench.py
Управление
←/→, Page Up/Page Down и Space переключают слайды. Home и End переходят к краям. F включает полный экран. Escape закрывает это окно.