О проекте
Команда: Dictator’s lair
Кейс HackAlem.ai: Инновации — Самрук-Казына
Стадия: Рабочий MVP
Задача кейса: «Хаттама»: протокол и поручения по аудиозаписи совещания (каз./рус./смешанная речь)
Суть
Локальный сервис: аудиозапись совещания → транскрипт с таймкодами → решения и поручения с ответственными и сроками → проверка по аудио → правки → протокол DOCX.
Как устроено
faster-whisper (мультиязычный Whisper small, CPU/int8) распознаёт речь с таймкодами. Диаризация: эмбеддинги ERes2Net через sherpa-onnx с кластеризацией голосов. Поручения, ответственные, сроки и решения извлекаются правилами, без LLM. У каждого поручения есть цитата, таймкод и эвристический confidence, кнопка «Проверить в аудио» проигрывает исходный фрагмент. FastAPI обрабатывает задачи асинхронно. История и аудио хранятся в IndexedDB браузера, DOCX формируется в браузере.
Ключевые решения
- faster-whisper
- Whisper small int8
- ERes2Net speaker embeddings
- sherpa-onnx
- speaker clustering diarization
- rule-based task/deadline extraction
- timestamp-grounded verification
Метрики
Аудио 274,25 с обработано за ≈99,4 с; 44 реплики, 10 поручений (точность не измерялась)
Особенности
Полностью локальный контур без облачных API и без LLM. Проверяемость поручений через проигрывание исходного аудиофрагмента. Честная оговорка: сквозная работа подтверждена только на русских записях, confidence эвристический.
Стек
Python · FastAPI · Uvicorn · HTML · CSS · JavaScript · IndexedDB · unittest · Node.js
Модели
Whisper small (faster-whisper) · ERes2Net
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-44e658e5-dictator-s-lair.
README
README.mdHackAlem 2026 — Протокол совещания
Локальный ИИ-помощник для Самрук-Қазына превращает запись совещания в протокол с поручениями, которые можно проверить по исходному аудио.
Проблема
Ручная подготовка протокола занимает время; потерянные поручения и неверные сроки приводят к ошибкам исполнения.
Решение
Аудиозапись → локальное распознавание → транскрипт с таймкодами → решения и поручения → ответственные и сроки → проверка по аудио → правки человека → DOCX.
Главное отличие — проверяемость
Поручение может содержать цитату, таймкод и confidence. Кнопка «Проверить в аудио» воспроизводит исходный фрагмент: пользователь сверяет формулировку, ответственного и срок перед экспортом.
Корпоративный протокол можно проверить, а не принимать вывод ИИ на веру. Confidence — эвристическая оценка, не измеренная точность.
Демо за четыре шага
- Загрузите запись совещания.
- Просмотрите содержание, поручения, решения и транскрипт.
- Проверьте поручение в аудио; исправьте ответственного или срок.
- Скачайте протокол DOCX и откройте в Word.
Архитектура
flowchart LR
A["Аудио"] --> B["Локальный STT"]
B --> C["Транскрипт<br/>с таймкодами"]
C --> D["Спикеры, решения<br/>и поручения"]
D --> E["Структурированный JSON"]
E --> F["Проверка и правки"]
A -->|"Первоисточник"| F
F --> G["Протокол DOCX"]
API загрузки и обработки аудио: pipeline/api.py.
ИИ и технический стек
- Речь: faster-whisper, мультиязычный Whisper small, CPU/int8.
- Спикеры: ERes2Net, sherpa-onnx, кластеризация голосов; ответственный — из содержания разговора, не по голосовой биометрии.
- Извлечение: правила для поручений, ответственных, сроков и решений; не LLM.
- Приложение: Python/FastAPI/Uvicorn, HTML/CSS/JavaScript, IndexedDB; DOCX формируется в браузере.
Реальный benchmark
«Совещание №1.mp3», один подтверждённый локальный прогон:
| Показатель | Результат |
|---|---|
| Длительность аудио | 274,25 с |
| Обработка | ≈ 99,4 с |
| Реплики транскрипта | 44 |
| Поручения | 10 |
| Переход к аудио и воспроизведение | Проверены |
| Редактирование | Проверено |
| DOCX с правками | Открыт в Microsoft Word |
Точность не измерена; время зависит от оборудования и очереди. Обе benchmark-записи определены как русскоязычные.
Целевые языки проекта — русский, казахский и смешанная RU–KZ речь; для распознавания используется мультиязычный Whisper. Сквозная работа подтверждена на предоставленных русскоязычных записях.
Локальная обработка и закрытый контур
Аудио и текст не отправляются во внешние облачные API. Модели скачиваются при первом использовании. Для закрытого контура нужны предварительная подготовка моделей/зависимостей и отдельная проверка изолированного запуска.
История и аудио хранятся в браузере. Промышленное управление доступом и хранением не реализовано.
Как запустить
Windows PowerShell, корень репозитория. Python 3.11+ в PATH; проверено на 3.14. Проверьте python --version. Node.js — только для frontend-тестов.
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r pipeline\requirements.txt
Backend — в первом терминале:
.\.venv\Scripts\python.exe -m uvicorn api:app --app-dir pipeline --host 127.0.0.1 --port 8000
Frontend — во втором терминале:
.\.venv\Scripts\python.exe -m http.server 5173 --bind 127.0.0.1
Откройте приложение. Health API должен вернуть HTTP 200 и status: ok. Обязательных переменных окружения и API-ключей нет.
Тесты
.\.venv\Scripts\python.exe -m unittest discover -s pipeline -p "test_*.py"
node --test frontend/test-runtime.cjs frontend/test-history.cjs
76 backend-тестов (2 требуют локальных записей результатов) и 41 frontend-тест: контракт, ошибки, история, правки, аудиопереходы и экспорт. Проверено с Node.js 24.19.
Каталоги artifacts/ и examples/ не входят в Git и не используются приложением. API распознаёт каждую новую загруженную запись; готовые benchmark-JSON не подставляются. Два теста повторной проверки сохранённых результатов пропускаются, если локальных файлов нет; их каталог можно указать через MEETING_REGRESSION_DIR. Остальные тесты и приложение от этих файлов не зависят.
Известные ограничения
- Диаризация — прототипная. Метка
SPEAKER_02, имя в тексте и сотрудник корпоративного справочника — разные сущности; биометрической идентификации участников нет. - Извлечение решений ещё совершенствуется: встречаются ложные срабатывания.
- Ответственный и срок могут определяться ошибочно или отсутствовать. Саммари шаблонное; PDF нет.
Дальнейшее развитие
Hackathon MVP: Meeting → Verified Protocol.
Промышленная версия — план: Meeting → Protocol → Execution Control.
Ближайшие шаги — RU/KZ/mixed регрессионные тесты, аудиобенчмарки и улучшение диаризации. Дальнейший roadmap (не реализован в MVP):
- Интеграция с корпоративным документооборотом (СЭД).
- Контроль исполнения поручений.
- Автоматическая доставка протокола и уведомлений.
- Приоритизация поручений.
- Корпоративная идентификация участников: связь speaker ID с профилем участника или справочником.
Команда
Два разработчика: backend/AI и frontend/интеграция.
Авторы коммитов
История коммитов
- 2026-09-23 17:51docs: refine multilingual speech wordingbekabarss
- 2026-09-23 17:44chore: keep generated benchmark results out of gitbekabarss
- 2026-09-23 17:41feat: add grounded business summaries and protocol reviewbekabarss
- 2026-09-23 17:09docs: clarify language validation and product roadmapbekabarss
- 2026-09-23 17:02docs: add judge-focused project readmebekabarss
- 2026-09-23 16:52style: polish Russian meeting protocol demobekabarss
- 2026-09-23 16:34feat: persist workspace meeting history and audio locallyHlracigmny
- 2026-09-23 16:31chore: remove redundant milestone reportsHlracigmny
Все коммиты (22)
- 2026-09-23 16:17fix: restore task editing and acceptance error handlingbekabarss
- 2026-09-23 16:16perf: speed up local speaker inference with tested CPU parallelismHlracigmny
- 2026-09-23 16:08feat: resolve speaker context and remove runtime mockHlracigmny
- 2026-09-23 15:36fix: make docx export valid and editablebekabarss
- 2026-09-23 15:24fix: integrate frontend with async processing apibekabarss
- 2026-09-23 14:57feat: add token-free local speaker embedding diarizationHlracigmny
- 2026-09-23 14:42fix: use async meeting jobs in frontend adapterHlracigmny
- 2026-09-23 14:38Merge remote-tracking branch 'origin/main'Hlracigmny
- 2026-09-23 14:37feat: integrate frontend with meeting processing APIHlracigmny
- 2026-09-23 14:36feat: harden frontend backend integrationbekabarss
- 2026-09-23 14:23docs: correct extraction accuracy reportHlracigmny
- 2026-09-23 14:22feat: stabilize meeting intelligence contract and APIHlracigmny
- 2026-09-23 14:02feat: add meeting protocol frontend demobekabarss
- 2026-09-23 13:44feat: add local meeting core pipelineHlracigmny
Структура репозитория (31 файлов)
.gitignore PIPELINE_REPORT.md README.md REQUIREMENTS.md frontend/README.md frontend/app.js frontend/history.js frontend/index.html frontend/integration.js frontend/overrides.css frontend/styles.css frontend/test-history.cjs frontend/test-runtime.cjs pipeline/api.py pipeline/benchmark_speakers.py pipeline/business_pipeline.py pipeline/evaluate_context.py pipeline/evaluate_protocol.py pipeline/fixtures/protocol_gold.json pipeline/protocol_intelligence.py pipeline/rebuild_contract.py pipeline/requirements.txt pipeline/run_pipeline.py pipeline/speaker_context.py pipeline/speaker_embeddings.py pipeline/test_api.py pipeline/test_context.py pipeline/test_pipeline.py pipeline/test_protocol_intelligence.py pipeline/test_recordings.py pipeline/test_speakers.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.