--- name: meeting-report description: "Генерирует PDF-отчёт по аудиозаписи встречи: расшифровка, аналитический пересказ, ключевые решения и задачи. Использует faster-whisper (model small), ffmpeg, weasyprint." --- # Навык: автоматическая генерация отчёта по аудиозаписи встречи ## Важные ограничения (читай первым!) - **ОБЯЗАТЕЛЬНО установи переменные окружения** перед запуском транскрипции: `MKL_SERVICE_FORCE_INTEL=1 OMP_NUM_THREADS=2`. Без этого скрипт упадёт на втором чанке с ошибкой "Intel oneMKL FATAL ERROR: Cannot load libctranslate2.so". - **НЕ пытайся запускать `faster-whisper`** как отдельную команду без этих переменных. Это Python-библиотека, вызывается через скрипты (`local_whisper.py`, `transcribe.sh`) с правильными параметрами. - **НЕ изобретай свои собственные команды** для транскрипции или конвертации. Всё уже реализовано в готовых bash-скриптах. - **Единственное, что ты должен сделать** – определить папку с аудио, убедиться, что переменные окружения установлены, и выполнить один скрипт. - **Для генерации PDF:** Если `pandoc` не работает (нет шрифтов кириллицы), используй `weasyprint` (Python пакет). - **Все процессы более 5 минут запускай в фоне** (`nohup ... &`) — execute_code имеет таймаут 5 минут. ## Структура навыка - `scripts/overlay.sh` — обёртка запуска с MKL переменными - `scripts/local_whisper.py` — транскрипция аудио through faster-whisper - `scripts/transcribe_chunked.sh` — транскрипция больших файлов (>30 мин) с разбиением на чанки - `scripts/merge_transcriptions.py` — объединение результатов транскрипции - `scripts/generate_pdf.py` — генерация PDF через weasyprint - `README.md` — полная документация - `QUICKSTART.md` — шпаргалка по быстрому запуску ## Как именно запускать ### Шаг 0. Определи директорию встречи Пользователь укажет папку с аудиофайлами. По умолчанию: ``` /app/hermes_data/meetings/YYYY-MM-DD/ ``` Если пользователь указал другой путь – используй его. ### Шаг 1. Проверь наличие аудиофайлов ```bash ls /app/hermes_data/meetings/2026-03-18/*.wav ``` ### Шаг 2. Установи переменные окружения (КРИТИЧНО!) ```bash export MKL_SERVICE_FORCE_INTEL=1 export OMP_NUM_THREADS=2 ``` Или передай перед python3: ```bash MKL_SERVICE_FORCE_INTEL=1 OMP_NUM_THREADS=2 python3 local_whisper.py ... ``` ### Шаг 3. Запусти транскрипцию Для коротких файлов (<30 мин): ```bash bash scripts/overlay.sh /app/hermes_data/meetings/2026-03-18 ``` Для длинных файлов (>30 мин): ```bash bash scripts/transcribe_chunked.sh /app/hermes_data/meetings/2026-03-18 ``` ### Шаг 4. Создай аналитический отчёт После получения `transcription/merged_plain.txt`: 1. Прочитай транскрипцию 2. Создай `report.md` со структурой: - Краткая выжимка (1-2 абзаца) - Ход совещания (подробно) - Ключевые решения (список) - Задачи и ответственные (срок действия) - Итоги и следующие шаги ### Шаг 5. Генерация PDF Если pandoc недоступен: ```bash python3 scripts/generate_pdf.py report.md report.pdf ``` ## Типичные ошибки | Ошибка | Причина | Решение | |--------|---------|---------| | `Intel oneMKL FATAL ERROR` | Нет переменных окружения | Добавить `MKL_SERVICE_FORCE_INTEL=1 OMP_NUM_THREADS=2` | | `No WAV file found` | Нет аудиофайлов | Положить WAV в папку встречи | | `weasyprint: command not found` | Нет пакета | `pip install weasyprint` | | `ffmpeg: command not found` | Нет ffmpeg | `apt-get install ffmpeg` | ## Время обработки - Модель small: ~5-10 мин на 10 мин аудио - 1 час аудио = 30-60 минут обработки - Запускай в фоне: `nohup bash script.sh > /tmp/transcribe.log 2>&1 &` - Следи: `tail -f /tmp/transcribe.log` ## Результат - `transcription/merged_plain.txt` — полная транскрипция - `report.md` — аналитический отчёт Markdown - `report.pdf` — финальный PDF документ