Add md files

This commit is contained in:
Слонова Анна 2026-04-21 18:07:11 +00:00
commit c196f14ae9
3 changed files with 183 additions and 0 deletions

94
SKILL.md Normal file
View file

@ -0,0 +1,94 @@
---
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 документ