AAYMA
RU
Войти

Meeting AI Assistant

Локальный backend для обработки аудиозаписей совещаний: транскрипция с таймкодами, определение языка и диаризация по спикерам.

Прототип
Команда «Sad Pinocchio with a hat» 18💬 0 комментариевс 23 сентября 2026 г.

О проекте

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

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

Суть

Локальный backend для обработки аудиозаписей совещаний: транскрипция с таймкодами, определение языка и диаризация по спикерам. По README формирование протокола и поручений не видно.

Как устроено

FastAPI принимает аудио или видео (wav/mp3/m4a/…/mp4) через POST /meetings, FFmpeg конвертирует файл. faster-whisper локально распознаёт речь, pyannote.audio назначает сегментам спикеров. Статус и результат (язык, сегменты с start/end, text, speaker) отдаются по GET /meetings/{id}/result. Модели можно заранее положить в локальный кэш для закрытого контура.

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

  • faster-whisper
  • pyannote.audio speaker diarization
  • FFmpeg

Особенности

Весь пайплайн (STT и диаризация) работает локально, без облачных API, с расчётом на закрытый контур.

Стек

Python · FastAPI · Uvicorn · FFmpeg · Docker

Модели

faster-whisper (Whisper) · pyannote.audio


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-49a59521-sad-pinocchio-with-a-hat.

README

README.md

Meeting AI Assistant

Локальный прототип обработки записей совещаний.

Запуск backend

Рекомендуется Python 3.11 или 3.12 и FFmpeg в PATH. Python 3.14 пока может быть несовместим с частью ML-зависимостей, поэтому для стабильной установки лучше использовать Python 3.12.

Portable-версию FFmpeg можно хранить прямо в проекте: распакуйте full-shared архив так, чтобы DLL находились в backend/tools/ffmpeg/bin. Backend автоматически добавит эту папку в PATH при запуске. При необходимости путь можно переопределить через FFMPEG_DIR в .env.

Для установки зависимостей:

cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload

При первом запуске faster-whisper скачает выбранную модель. Для закрытого контура модель нужно заранее разместить в локальном кэше или подключить локальный путь к модели.

Диаризация выполняется локально через pyannote.audio. Для первоначального скачивания модели может потребоваться токен Hugging Face и принятие условий модели. В закрытом контуре модель скачивается заранее, после чего DIARIZATION_MODEL указывает на локальный каталог.

API

Загрузить файл:

curl.exe -X POST http://localhost:8000/meetings -F "[email protected]"

Проверить статус и получить транскрипт:

curl.exe http://localhost:8000/meetings/<meeting_id>
curl.exe http://localhost:8000/meetings/<meeting_id>/result

Поддерживаются .wav, .mp3, .m4a, .ogg, .flac, .mp4, .mov, .webm, .avi. Результат содержит язык, временные метки, текстовые сегменты и назначенного говорящего.

Пример результата:

{
  "language": "ru",
  "diarization": {"enabled": true, "speakers": ["SPEAKER_00", "SPEAKER_01"]},
  "segments": [
    {"start": 0.0, "end": 2.4, "text": "Добрый день", "speaker": "SPEAKER_00"}
  ]
}
Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
12
Авторы
4
Файлы
14
Ветки
6

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

Adil Yerbolov 9M0TIVATI0N 1M0TIVATI0N 1KhamitovSul 1

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

  • 2026-09-23 17:38Fix frontend backend processing flowAdil Yerbolov
  • 2026-09-23 17:27Use local STT by default for uploaded meetingsAdil Yerbolov
  • 2026-09-23 17:22Use backend transcript instead of demo textAdil Yerbolov
  • 2026-09-23 17:18Remove company branding and expose audio upload fieldAdil Yerbolov
  • 2026-09-23 17:14Connect frontend prototype to meeting APIAdil Yerbolov
  • 2026-09-23 16:56Restore local audio processing behaviorAdil Yerbolov
  • 2026-09-23 16:49Add frontend layout and prototypesM0TIVATI0N
  • 2026-09-23 16:35Add local processing fallbacks for testsAdil Yerbolov
Все коммиты (12)
  • 2026-09-23 16:31Merge backend API with local audio processingAdil Yerbolov
  • 2026-09-23 16:10Merge pull request #1 from BAITC-Hacks/audio-processingM0TIVATI0N
  • 2026-09-23 16:05Add local audio processing pipelineAdil Yerbolov
  • 2026-09-23 15:17Add backend + audio processing idk is it workKhamitovSul
Структура репозитория (14 файлов)
README.md
backend/.env.example
backend/.gitignore
backend/Dockerfile
backend/app/__init__.py
backend/app/audio.py
backend/app/config.py
backend/app/diarization.py
backend/app/main.py
backend/app/models.py
backend/app/store.py
backend/app/transcription.py
backend/requirements.txt
backend/tests/test_diarization.py
Ветки (6)

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

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

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