- неявный compute_type при fallback переразрешается по умолчанию CPU
(float16 CUDA не переносится на CTranslate2 CPU);
- prepare() помечает module готовым только после проверки пословного
контракта;
- движок сообщает сам adapter (атрибут engine) вместо параллельной таблицы;
- сбой runtime_info() не роняет запуск;
- каскад конфига оставляет model/compute_type пустыми для module,
CLI не дублирует CLI > TOML;
- удалены недостижимые из CLI сообщения о mid-stream fallback;
- в --verbose потоки помечены как запрошенные, adapters сообщают
применённые; OpenVINO прямо говорит, что --threads не применяется;
- тесты: умолчания по устройствам, TOML compute_type, не-strict сценарий
обычной ошибки; CONTRIBUTING.md и AGENTS.md без устаревших имён.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CLI строит один ExecutionRequest, создаёт Transcriber после prescan
и получает результат с ExecutionInfo: разрешение auto, device-aware
умолчания, проверка пословного контракта, строка устройства для шапки
и fallback ушли за seam. --verbose печатает движок, потоки и runtime_info().
Удалены load_model, _transcribe_file, TranscribeFileResult,
apply_device_defaults и тесты переноса полей; сценарные тесты CLI идут
через CliRunner с fake adapter на get_backend.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Зачем:
- пользователям без NVIDIA нужен самый быстрый и читаемый CPU-профиль без дополнительных параметров.
- Что:
- auto-политика изменена на CUDA при наличии nvidia-smi, иначе ONNX GigaAM RNN-T int8.
- сохранён приоритет явных значений CLI и конфигурации для OpenVINO и FasterWhisper CPU.
- обновлены тесты, README, PRD, ADR, GPU-документация и вывод benchmark.
- Проверка:
- uv run pytest -q: 232 passed, 1 skipped.
- uv lock --check и git diff --cached --check.
- Зачем:
- OpenVINO backend хардкодил "CPU", хотя Intel Arc GPU доступен и даёт ~2x ускорение.
- Что:
- новые device modes: --device openvino-gpu, openvino-cpu; openvino — авто-детект GPU/CPU.
- detect_device() проверяет Intel GPU через OpenVINO Core API (с fail-safe).
- OpenVINOBackend передаёт "GPU"/"CPU" в WhisperPipeline вместо хардкода "CPU".
- подсказка "Совет: --model large-v3" при наличии GPU и модели не large-v3.
- .gitattributes для нормализации line endings (eol=lf).
- 150 тестов, включая GPU detection, routing, fallback, CLI device info.
- README, docs/gpu.md, docs/PRD.md обновлены для Intel GPU.
- Проверка:
- uv run pytest (150 passed).
- uv run transcribe --device openvino-gpu file.mp4 на Intel Arc 140T GPU.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Зачем:
- подготовка к OpenVINO бэкенду: config и utils должны знать о новом устройстве.
- Что:
- config.py: openvino добавлен в _VALID_DEVICES и DEVICE_DEFAULTS (model=medium, compute_type=int8).
- utils.py: detect_device() расширен цепочкой CUDA → OpenVINO → CPU; _is_openvino_available() проверяет архитектуру (x86_64/AMD64) и наличие openvino_genai.
- cli.py: --device help text обновлён (auto|cpu|cuda|openvino).
- добавлены тесты: config с openvino device, device defaults, auto-detect приоритет.
- Проверка:
- uv run pytest -v — 103 passed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Зачем:
- тестирование на реальных записях показало, что int8 даёт галлюцинации на длинных файлах, auto-detect языка ошибается — нужны оптимальные дефолты по устройству.
- Что:
- дефолты: medium float16 (GPU), medium float32 (CPU), language=ru.
- добавлены DEVICE_DEFAULTS и apply_device_defaults() в config.py.
- убран preprocessor_config.json из обязательных файлов модели (отсутствует у medium).
- README обновлён: таблицы скоростей, качества, результаты тестирования compute_type.
- Проверка:
- uv run pytest — 98 passed, 1 skipped.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Зачем:
- обработка нескольких файлов за один вызов с загрузкой модели один раз.
- хранение дефолтов (модель, язык, устройство) в .transcriber.toml.
- Что:
- добавлен config.py: поиск .transcriber.toml (CWD → ~/.config), парсинг, валидация, приоритет CLI > конфиг > хардкод.
- рефакторинг transcriber.py: выделены load_model() и _transcribe_file() с TranscribeFileResult для переиспользования модели в батче.
- добавлены expand_globs() с дедупликацией и has_existing_transcript() в utils.py.
- CLI: files: list[Path], --force/-f, prescan-first батч с итоговой статистикой и временем, Status-спиннер для прогресса.
- README: секции батч-режим, конфигурационный файл, --force в таблице опций.
- ADR-002: зафиксированы архитектурные решения (prescan-first, TranscribeFileResult, конфиг без мержа).
- Проверка:
- uv run pytest -q — 94 passed, 1 skipped.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>