- Зачем:
- фиксация результатов code review для трассируемости.
- Что:
- добавлен docs/review-stages-1-3.md с findings и статусом исправлений.
- Проверка:
- cat docs/review-stages-1-3.md.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Зачем:
- необходим модуль транскрипции с CUDA fallback для основного flow приложения.
- Что:
- добавлена зависимость faster-whisper>=1.2.1 в pyproject.toml.
- реализована функция transcribe() с fallback CUDA→CPU на всех этапах (загрузка модели, вызов transcribe, итерация сегментов).
- исправлен IndexError в get_gpu_name() при пустом stdout nvidia-smi.
- добавлено 6 тестов в test_transcriber.py и 1 тест в test_utils.py (16 тестов зелёные).
- Проверка:
- uv run pytest -v (16 passed).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Зачем:
- необходимы утилиты для проверки ffmpeg, определения устройства и
валидации входного файла перед запуском транскрипции.
- Что:
- check_ffmpeg() завершает процесс с понятным сообщением, если ffmpeg не в PATH.
- detect_device() возвращает "cuda" при наличии nvidia-smi, иначе "cpu".
- get_gpu_name() получает имя GPU через nvidia-smi или возвращает None.
- validate_input_file() проверяет существование, тип и размер файла;
неизвестное расширение — warning, не ошибка.
- build_output_path() формирует путь <stem>-transcript.md рядом с исходником.
- Проверка:
- uv run pytest tests/test_utils.py -v — 9 passed.
- uv run python -c "from local_transcriber.utils import check_ffmpeg, detect_device; check_ffmpeg(); print(detect_device())"
- Зачем:
- устранены пробелы в плане: недостающие тесты, неописанные параметры, архитектурные расхождения.
- Что:
- detect_device() возвращает только str (device), compute-type независим от него.
- добавлен get_gpu_name() для человекочитаемой строки устройства в шапке markdown.
- добавлен on_segment callback в transcribe() для --verbose без переделки API.
- добавлено поле device_used в TranscribeResult (фактическое устройство после fallback).
- добавлены тесты: test_utils.py (9 тестов), test_transcriber.py (4 mock-теста).
- выровнено поведение пустой речи: файл с шапкой + *Речь не обнаружена.* в теле (PRD и plan).
- добавлены импорты Callable, datetime, Path в заглушки шага 1.
- убраны строки с git add -A / git commit из всех шагов.
- Проверка:
- открыть docs/plan.md и docs/PRD.md и убедиться в согласованности.
- Зачем:
- зафиксированы требования к проекту и план разработки для выравнивания команды.
- Что:
- добавлен docs/PRD.md с требованиями к продукту.
- добавлен docs/plan.md с планом реализации.
- Проверка:
- открыть docs/PRD.md и docs/plan.md и убедиться в корректности содержимого.