AAYMA
RU
Войти

Alem Protocol

Сервис автопротоколирования совещаний: загруженное mp3/wav проходит транскрибацию и диаризацию, затем извлекаются поручения (кто, что, срок) и…

Рабочий MVP
Команда «Ohub.kz» 9💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Ohub.kz
Кейс HackAlem.ai: Инновации — Самрук-Казына
Стадия: Рабочий MVP

Задача кейса: «Хаттама»: протокол и поручения по аудиозаписи совещания (каз./рус./смешанная речь)

Суть

Сервис автопротоколирования совещаний: загруженное mp3/wav проходит транскрибацию и диаризацию, затем извлекаются поручения (кто, что, срок) и саммари. Протокол экспортируется в HTML, PDF или DOCX, по поручениям есть дашборд статусов.

Как устроено

Аудио транскрибирует локальная faster-whisper (small или large-v3), поддерживаются русский, казахский и смешанная речь. pyannote 3.1 размечает спикеров (на Windows работает эвристика). Сегменты объединяются и уходят в KazLLM через llm.alem.ai, который возвращает JSON с задачами (assignee, task, deadline, source_quote, speaker) и саммари. Относительные даты вроде «до пятницы» нормализуются. FastAPI отдаёт /transcribe, /export и /dashboard.

Ключевые решения

  • faster-whisper (CTranslate2)
  • pyannote speaker-diarization-3.1
  • извлечение поручений в JSON
  • нормализация относительных дат
  • fpdf2 экспорт

Особенности

Весь AI работает локально или в контуре Alem (KazLLM понимает шала-казахский), что отвечает ограничению «без внешних облачных API». Каждое поручение хранит цитату-источник и спикера.

Стек

Python · FastAPI · uvicorn · torch CPU · fpdf2 · Docker

Модели

faster-whisper small/large-v3 · pyannote 3.1 · KazLLM (llm.alem.ai)


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-9bae5eed-ohub-kz.

README

README.md

Alem Protocol — Система автопротоколирования совещаний с фиксацией поручений

Трек 08 — Инновации Самрук-Казына

[Watch demo](https://www.youtube.com/watch?v=lr-3VZfQ3u4)

🎥 Видео использования (2 мин): https://www.youtube.com/watch?v=lr-3VZfQ3u4 Показан полный сценарий: загрузка mp3 → транскрибация → диаризация → 9 поручений → экспорт HTML + дашборд

1. Название проекта

Alem Protocol

2. Краткое описание

Проблема: Протоколы пишутся вручную 2-3 часа, теряются поручения. Для секретаря (протокол за 2 мин), руководителя (дашборд просрочено/в работе), СЭД Самрук-Казына (JSON поручений). Экономия 15+ ч/неделю.

3. Что реализовано

  • STT ru/kk/shala — faster-whisper локально (small/large-v3)
  • Диаризация — pyannote 3.1 локально, SPEAKER_01 = Ерлан (на Windows эвристика 3 спикера, на Linux Docker полная)
  • Поручения кто/что/к сроку — KazLLM через llm.alem.ai (self-hosted, понимает шала-казахский)
  • Саммари 3-5 предложений
  • Экспорт HTML (Notion стиль), PDF (DejaVu), DOCX
  • Дашборд статусов просрочено/в работе/выполнено, фильтры, приоритет high/medium/low

4. Как работает

  1. Вход mp3/wav из Zoom/Teams → uploads/
  2. STT faster-whisper → 43 сегмента
  3. Диаризация pyannote → SPEAKER_00,01,02
  4. KazLLM → JSON {tasks:[{assignee, task, deadline:YYYY-MM-DD, source_quote, speaker}], summary}
  5. Нормализация дат: "до пятницы"=2026-05-16
  6. Выход: POST /transcribe → JSON, POST /export?format=both → HTML/PDF, GET /dashboard → дашборд Видео сценария: https://www.youtube.com/watch?v=lr-3VZfQ3u4

5. Технологии

Python 3.11, FastAPI, uvicorn, faster-whisper (CTranslate2), pyannote.audio 3.1, torch CPU, KazLLM llm.alem.ai, fpdf2 DejaVuSans, React Tailwind Recharts

6. Архитектура

[mp3] -> stt.py (faster-whisper local) + diarize.py (pyannote local) -> merge -> extractor.py (KazLLM) -> export.py -> main.py (/transcribe, /export, /dashboard)

Все AI локальные кроме KazLLM в контуре Alem — соответствует ограничению "без внешних облачных API".

7. Установка и запуск

git clone https://github.com/BAITC-Hacks/hack-9bae5eed-ohub-kz
cd hack-9bae5eed-ohub-kz
python -m venv venv; .\venv\Scripts\Activate.ps1
pip install -r requirements.txt
# .env: HF_TOKEN, KAZLLM_API_KEY
# Принять gated: hf.co/pyannote/speaker-diarization-3.1 -> Agree
hf auth login
$env:HF_TOKEN="hf_xxx"; $env:HUGGINGFACE_HUB_TOKEN="hf_xxx"
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
# http://127.0.0.1:8000/docs — видео как проверять: https://www.youtube.com/watch?v=lr-3VZfQ3u4

8. Как проверить — сценарий для жюри

Смотри видео: https://www.youtube.com/watch?v=lr-3VZfQ3u4

  1. /docs → POST /export → format=html, file=data/meeting1.mp3 → Execute → protocol_*.html с резюме, 9 поручениями, транскриптом с бейджами [SPEAKER_00]
  2. Шала-тест: "отчет керек, deadline ертеңге дейін, ответственный Ерлан"
  3. /dashboard → 9 задач, 2 просрочено

9. Данные и интеграции

Вход mp3/wav/m4a, live Zoom/Teams, API llm.alem.ai (KazLLM self-hosted), выход HTML/PDF/DOCX + JSON для СЭД, внешних сервисов нет

10. Ограничения

Диаризация на Windows эвристика (из-за torchcodec), на Linux Docker полная, large-v3 медленнее, СЭД mock, макс 30 мин аудио, PDF без жирного шрифта

11. Deployed-версия

Деплой — куда и как

On-premise (рекомендуется): docker build -t alem-protocol . && docker run -p 8000:8000 --env-file .env -v ./models:/app/models alem-protocol Render free (облегченный): используй requirements.render.txt без torch/pyannote Ngrok для жюри: ngrok http 8000 → вставь URL в пункт 11 Требования: 4 CPU, 8GB RAM, 10GB диск

Команда Alem Protocol — Трек 08, HackAlem 2026

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
2
Авторы
1
Файлы
14
Ветки
1

Авторы коммитов

muhamed-kanapiya 2

История коммитов

  • 2026-09-23 17:56Fix large files and pushmuhamed-kanapiya
  • 2026-09-23 14:32newmuhamed-kanapiya
Структура репозитория (14 файлов)
.gitignore
Dockerfile
README.md
Test-Extract-Meeting1.py
app/__init__.py
app/diarization.py
app/diarize.py
app/export.py
app/extractor.py
app/main.py
app/stt.py
docker-compose.yml
requirements.txt
test_kaz.py

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.