Add md files
This commit is contained in:
commit
c196f14ae9
3 changed files with 183 additions and 0 deletions
17
QUICKSTART.md
Normal file
17
QUICKSTART.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# QUICKSTART — meeting-report
|
||||
|
||||
## 1. Зависимости
|
||||
apt-get update && apt-get install -y ffmpeg
|
||||
pip install faster-whisper weasyprint
|
||||
|
||||
## 2. Если故意 запускаешь long транскрипцию
|
||||
export MKL_SERVICE_FORCE_INTEL=1
|
||||
export OMP_NUM_THREADS=2
|
||||
|
||||
bash scripts/transcribe_chunked.sh /app/hermes_data/meetings/2026-03-18
|
||||
|
||||
## 3. Генерация PDF
|
||||
python3 scripts/generate_pdf.py report.md report.pdf
|
||||
|
||||
## ПАМЯТКА
|
||||
Всегда используй MKL_SERVICE_FORCE_INTEL=1 OMP_NUM_THREADS=2 перед запуском Python + faster-whisper!
|
||||
72
README.md
Normal file
72
README.md
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# meeting-report — генерация отчётов по аудиозаписям встреч
|
||||
|
||||
## Функционал
|
||||
- Транскрипция WAV аудио через faster-whisper
|
||||
- Генерация аналитического отчёта в Markdown
|
||||
- Экспорт в PDF (через pandoc или weasyprint)
|
||||
|
||||
## Установка зависимостей (Docker/Debian-based)
|
||||
apt-get update && apt-get install -y ffmpeg pandoc texlive-xetex texlive-lang-cyrillic fonts-noto
|
||||
pip install faster-whisper weasyprint
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### Шаг 0. Подготовка аудио
|
||||
Положите WAV файл(ы) в папку встречи:
|
||||
/app/hermes_data/meetings/YYYY-MM-DD/
|
||||
|
||||
### Шаг 1. Установка переменных окружения (КРИТИЧНО!)
|
||||
Перед запуском транскрипции НУЖНО установить:
|
||||
export MKL_SERVICE_FORCE_INTEL=1
|
||||
export OMP_NUM_THREADS=2
|
||||
|
||||
Без этого скрипт упадёт на втором чанке с ошибкой:
|
||||
Intel oneMKL FATAL ERROR: Cannot load libctranslate2.so
|
||||
|
||||
### Шаг 2. Запуск транскрипции
|
||||
bash /app/hermes_data/skills/meeting-report/scripts/generate_report.sh /app/hermes_data/meetings/2026-03-18
|
||||
|
||||
Для длительных файлов (>30 мин) используется автоматическое разбиение на чанки.
|
||||
|
||||
### Шаг 3. Создание аналитического отчёта
|
||||
После получения transcription/merged_plain.txt:
|
||||
1. Прочитайте транскрипцию
|
||||
2. Создайте report.md со структурой:
|
||||
- Краткая выжимка (1-2 абзаца)
|
||||
- Ход совещания (подробно)
|
||||
- Ключевые решения (список)
|
||||
- Задачи и ответственные
|
||||
- Итоги и следующие шаги
|
||||
|
||||
### Шаг 4. Генерация PDF
|
||||
|
||||
Вариант A: Через pandoc (требует texlive)
|
||||
pandoc report.md -o report.pdf --pdf-engine=xelatex -V mainfont="Noto Sans CJK SC"
|
||||
|
||||
Вариант B: Через weasyprint (проще)
|
||||
pip install weasyprint
|
||||
python3 generate_pdf.py report.md report.pdf
|
||||
|
||||
## Результаты
|
||||
- transcription/merged_plain.txt — полная транскрипция
|
||||
- report.md — аналитический отчёт Markdown
|
||||
- report.pdf — финальный PDF документ
|
||||
|
||||
## Типичные ошибки
|
||||
|
||||
Ошибка: Intel oneMKL FATAL ERROR
|
||||
Решение: Установите MKL_SERVICE_FORCE_INTEL=1 OMP_NUM_THREADS=2
|
||||
|
||||
Ошибка: pandoc command not found
|
||||
Решение: apt-get install pandoc texlive-xetex texlive-lang-cyrillic
|
||||
|
||||
Ошибка: weasyprint command not found
|
||||
Решение: pip install weasyprint
|
||||
|
||||
Ошибка: Нет кириллицы в PDF
|
||||
Решение: Используйте fonts-noto или weasyprint
|
||||
|
||||
## Время обработки
|
||||
- Модель small: 5-10 мин на 10 мин аудио
|
||||
- 1 час аудио = 30-60 минут обработки
|
||||
- Длительные процессы запускайте в фоне: nohup script.sh &
|
||||
94
SKILL.md
Normal file
94
SKILL.md
Normal 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 документ
|
||||
Loading…
Add table
Add a link
Reference in a new issue