auto-report-skill/SKILL.md
2026-04-21 18:07:11 +00:00

5.3 KiB
Raw Blame History

name description
meeting-report Генерирует 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. Проверь наличие аудиофайлов

ls /app/hermes_data/meetings/2026-03-18/*.wav

Шаг 2. Установи переменные окружения (КРИТИЧНО!)

export MKL_SERVICE_FORCE_INTEL=1
export OMP_NUM_THREADS=2

Или передай перед python3:

MKL_SERVICE_FORCE_INTEL=1 OMP_NUM_THREADS=2 python3 local_whisper.py ...

Шаг 3. Запусти транскрипцию

Для коротких файлов (<30 мин):

bash scripts/overlay.sh /app/hermes_data/meetings/2026-03-18

Для длинных файлов (>30 мин):

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 недоступен:

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 документ