Metadata-Version: 2.4
Name: speech-vs-plan
Version: 0.1.0
Summary: 
Author: Hikaru-Hrn
Author-email: geniysenkou@gmail.com
Requires-Python: >=3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: audioop-lts (>=0.2.2,<0.3.0)
Requires-Dist: boto3 (>=1.43.38,<2.0.0)
Requires-Dist: fastapi[all] (>=0.138.1,<0.139.0)
Requires-Dist: grpcio (>=1.81.1,<2.0.0)
Requires-Dist: markdown-to-json (>=2.1.2,<3.0.0)
Requires-Dist: python-docx (>=1.2.0,<2.0.0)
Requires-Dist: yandexcloud (>=0.396.0,<0.397.0)
Description-Content-Type: text/markdown

# Speech-vs-Plan 🎙️📋

**Speech-vs-Plan** — это веб-приложение на базе FastAPI и искусственного интеллекта, предназначенное для автоматического сравнительного анализа фактического выступления спикера (лектора) с заранее подготовленным учебным планом. 

Система переводит аудиозапись лекции в текст, парсит документы планов и с помощью LLM выявляет отклонения, пропущенные темы или фактологические несоответствия.

---

## 🚀 Основные возможности

- **Парсинг планов лекций:** Автоматическая конвертация планов из форматов `.md` (Markdown), `.docx` (Word) и `.txt` в структурированный JSON-формат.
- **Предобработка аудио:** Встроенный аудио-конвертер, который нормализует загруженные файлы формата `.wav` в идеальный поток `RAW PCM` (16 кГц, моно) для обеспечения максимальной точности распознавания.
- **Асинхронная транскрибация (STT):** Интеграция с асинхронным gRPC API **Yandex SpeechKit** с использованием Object Storage (S3) для обработки объемных аудиофайлов лекций.
- **Интеллектуальный анализ (LLM):** Сравнение транскрипта лекции с планом через **GigaChat API** на основе гибко настраиваемых системных промптов.
- **Удобный Web-интерфейс:** Пошаговый UI для загрузки файлов, отслеживания прогресса и просмотра аналитических отчетов прямо в браузере с возможностью скачивания результатов.

---

## 🛠️ Стек технологий

- **Backend:** Python 3.13, FastAPI, Uvicorn, Pydantic
- **AI & Cloud Services:** Sber GigaChat API, Yandex Cloud (SpeechKit gRPC, Object Storage / Boto3)
- **Шаблонизатор (UI):** Jinja2 (HTML/CSS/JS)
- **Управление зависимостями:** Poetry
- **Окружение и Деплой:** Docker, Docker Compose

---

## 📂 Структура проекта

```text
Speech-vs-Plan/
├── prompts/                  # Системные промпты для LLM (например, compare_plan.md)
├── src/                      # Исходный код приложения
│   ├── templates/            # Frontend шаблоны (HTML/CSS/JS)
│   ├── analyze.py            # Модуль интеграции с GigaChat API
│   ├── md_docx_to_json.py    # Парсер текстовых документов и планов
│   ├── parse_form.py         # Основной файл FastAPI (маршруты и логика UI)
│   └── transcribe.py         # Модуль транскрибации аудио через Yandex Cloud
├── .env.example              # Пример файла конфигурации окружения
├── docker-compose.yml        # Оркестрация Docker-контейнеров
├── Dockerfile                # Инструкция сборки Docker-образа
├── pyproject.toml            # Конфигурация проекта и зависимостей Poetry
└── poetry.lock               # Фиксация версий пакетов
