AAYMA
RU
Войти

QazMeeting AI

Локальный помощник для совещаний на русском, казахском и смешанной речи.

Прототип
Команда «MKM-IdeaStorm» 11💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: MKM-IdeaStorm
Кейс HackAlem.ai: Инновации — Самрук-Казына
Стадия: Прототип

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

Суть

Локальный помощник для совещаний на русском, казахском и смешанной речи. Загруженное аудио транскрибируется через faster-whisper, встречи хранятся в SQLite, экспорт в DOCX/PDF. Сводка и поручения пока есть только для демо-встречи.

Как устроено

FastAPI-приложение работает в двух режимах. DEMO_MODE показывает готовую демо-встречу со сводкой и поручениями. В режиме с реальными данными загруженный файл mp3/wav/m4a/mp4 распознаётся faster-whisper (по умолчанию small, CPU int8) с автоопределением языка, и сегменты с таймкодами сохраняются. Диаризация, выравнивание и спикеры вынесены в отдельные сервисы под будущий адаптер pyannote. Облачных API нет.

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

  • faster-whisper
  • автоопределение языка
  • сегменты с таймкодами
  • адаптерная архитектура под pyannote

Особенности

Ограничения описаны честно: метка «Speaker 1 (unverified)» вместо фиктивной диаризации, выдуманных значений уверенности нет, сводки по загруженному аудио пока не генерируются. Всё работает on-premise.

Стек

Python · FastAPI · Uvicorn · SQLite · vanilla JS/HTML/CSS

Модели

faster-whisper (Whisper small)


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

README

README.md

QazMeeting AI

On-premise meeting assistant for Russian, Kazakh, and mixed-language meetings. The existing dashboard, demo meeting, SQLite storage, meeting view, and DOCX/PDF exports remain available. Runtime audio and transcripts stay on the local machine; there is no OpenAI, cloud STT, or cloud LLM integration.

Demo mode (zero model dependencies)

From the repository directory in Windows PowerShell:

py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
$env:DEMO_MODE = "true"
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000

Open http://127.0.0.1:8000. Demo mode is the default. It uses the existing Russian/Kazakh/mixed-language sample meeting and does not import or need faster-whisper or download any AI models. New meeting creation and exports continue to work as before. Demo data is stored locally in data/qazmeeting.db.

Real local speech-to-text

Audio upload is enabled when DEMO_MODE=false. Install faster-whisper in the virtual environment; it is deliberately excluded from the lightweight demo requirements:

.\.venv\Scripts\Activate.ps1
python -m pip install faster-whisper
$env:DEMO_MODE = "false"
$env:WHISPER_MODEL = "small"
$env:WHISPER_DEVICE = "cpu"
$env:WHISPER_COMPUTE_TYPE = "int8"
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000

The first model initialization requires the selected CTranslate2 model to be available in the local cache. faster-whisper may download the model weights on first use; prepare/cache the model while connected if the runtime machine is offline. No model download occurs during the demo setup or automated checks. The suggested development model is small; WHISPER_MODEL also accepts faster-whisper model names or a local model directory. The default language is automatic (language=None) so Russian, Kazakh, and code-switching are not forced into one language. Segment timestamps and detected language are saved with the recognized text.

Environment variables:

VariableDefaultPurpose
DEMO_MODEtrueSelect demo adapters or local transcription/upload
WHISPER_MODELsmallfaster-whisper model name or local model path
WHISPER_DEVICEcpuInference device, such as cpu or cuda
WHISPER_COMPUTE_TYPEint8CTranslate2 compute type; int8 is suitable for CPU
DATABASE_PATHdata/qazmeeting.dbLocal SQLite database path
UPLOAD_DIRdata/uploadsPrivate local audio upload directory

For GPU, install a compatible CUDA/cuDNN and CTranslate2 setup for your hardware, then set WHISPER_DEVICE=cuda and a supported compute type such as float16. CPU is the supported simple setup; GPU setup depends on the local driver/runtime.

Supported uploads: .mp3, .wav, .m4a, .mp4 (maximum 1 GB). In local-AI mode click New meeting / Upload recording, enter a title, choose the recording, and select Upload and transcribe locally. The page reports progress during processing and opens the saved transcript when complete. Invalid formats and processing failures are reported in the UI.

Privacy and storage

Inference runs through faster-whisper on this machine. Uploaded recordings are written to data/uploads; meeting text and timestamps are stored in the local SQLite database. These runtime files, .env, exports, and common model/cache directories are excluded from Git. Keep the host filesystem and any backups under your organization’s control. Avoid serving the app on an untrusted network; the current hackathon app does not implement user authentication.

Current limitations

  • Local transcription supports Russian and Kazakh through the multilingual Whisper model; mixed-language recognition quality depends on the model and audio.
  • A transcript segment currently receives the temporary label Speaker 1 (unverified). It is not a diarization result.
  • Real speaker diarization is the NEXT implementation step. The transcription, diarization, and aligned-transcript domain structures are separated so a future local pyannote adapter can align speaker turns with Whisper segments.
  • Summaries and action items are not generated from uploaded recordings in this iteration. The demo meeting retains its existing sample summary and action items.
  • No real transcription confidence values are fabricated.

Development checks

python -m compileall app

This check does not install dependencies or download model files.

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

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

zhumanar 2

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

  • 2026-09-23 16:33feat: add local audio upload and faster-whisper transcriptionzhumanar
  • 2026-09-23 15:22feat: add QazMeeting AI demo MVPzhumanar
Структура репозитория (18 файлов)
.env.example
.gitignore
README.md
app/__init__.py
app/config.py
app/database.py
app/main.py
app/services/__init__.py
app/services/alignment.py
app/services/diarization.py
app/services/exports.py
app/services/intelligence.py
app/services/speakers.py
app/services/transcription.py
app/static/app.js
app/static/index.html
app/static/styles.css
requirements.txt

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

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

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