5.3 KiB
5.3 KiB
| 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-whisperscripts/transcribe_chunked.sh— транскрипция больших файлов (>30 мин) с разбиением на чанкиscripts/merge_transcriptions.py— объединение результатов транскрипцииscripts/generate_pdf.py— генерация PDF через weasyprintREADME.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:
- Прочитай транскрипцию
- Создай
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— аналитический отчёт Markdownreport.pdf— финальный PDF документ