Skip to content
All projects

Flagship system

MeetingMind AI

Local-First AI · Knowledge Systems

A meeting-intelligence platform that turns raw audio and video into transcripts, grounded summaries and tracked work — running entirely locally with no paid APIs, cloud AI or commercial SDKs.

13
Technologies
3
Domains
7
Capabilities
1
Public links

Who it's for

Teams and organisations that record meetings but can't ship confidential audio to a cloud AI — legal, healthcare, finance, or anyone who values data sovereignty.

Where it fits

On-premise or self-hosted deployments where transcripts, summaries, decisions and action items must stay inside the organisation's own infrastructure.

Screenshots

MeetingMind AI — Copilot workspace dashboard with executive brief, workspace score and knowledge tools

The hard part

The problem

Meeting assistants that summarise calls and extract action items almost always ship your audio to a cloud AI provider. For confidential conversations that is a non-starter — and it means the product stops working the moment an API key or budget runs out.

Key constraints

Every AI capability — speech-to-text, summarisation, chat, embeddings, diarisation — had to run on local models by default, so the product works end to end after a clone and setup, yet can swap in optional cloud providers by configuration alone. And the AI must never fabricate: summaries and answers have to trace back to the source.

Architecture overview

Every AI capability sits behind a provider interface defaulting to a local engine. An asynchronous Celery/Redis pipeline (validate → media-inspect → extract → normalise → transcribe → diarise → summarise → index) runs all long work off the request path. On top sits a bitemporal, event-sourced knowledge hub and a 12-agent intelligence layer, each agent reaching data only through a permissioned tool registry.

Asynchronous pipeline → event-sourced knowledge

Audio / video in
Transcribe (Whisper)
Diarise (ECAPA)
Ground & summarise (Llama)
Index

Event-sourced knowledge hub

append-only · time-travel queries · conflict detection

Human-approved work items

AI suggests with evidence — a person approves, edits or rejects

Raw media enters an asynchronous pipeline — validate, extract, transcribe, diarise, summarise, index — and every result is appended to a bitemporal, event-sourced knowledge hub that supports time-travel queries and feeds human-approved work items.

How it works

What's actually in it.

  1. 01Offline transcription via Faster-Whisper + FFmpeg, emitting timestamped editable transcripts in TXT, MD, SRT, VTT and JSON with graceful degradation.
  2. 02Grounded local AI: Ollama/Llama 3.2 produces summaries, action items, decisions and risks; RAG chat answers with clickable-timestamp citations and refuses to go beyond the source.
  3. 03Reusable background-job engine: self-registering stages, dependency-graph ordering, per-stage retry with backoff, idempotent resume and live progress.
  4. 04Bitemporal, event-sourced knowledge hub with 'what did we know as of…' time-travel queries, decision-evolution history and conflict detection.
  5. 0512 declarative, owner-scoped agents coordinated by a planner (intent → agent selection → parallel execution → merge → conflict resolution).
  6. 06Speaker diarisation with SpeechBrain ECAPA embeddings and a cross-meeting voice registry that reuses persisted embeddings.
  7. 07Universal media import (YouTube, Vimeo, direct URLs, podcast/RSS) with SSRF protection and three-layer deduplication.

Engineering decisions

Human-in-the-loop, never auto-create

The AI never silently creates tasks, decisions or risks. It emits confidence-scored suggestions with full explainability — source meeting, segment, speaker, quote and reason — that a person approves, edits or rejects. Only then do real work items materialise, each carrying an immutable audit trail back to its evidence.

The trade-off

Requiring human approval means the system produces less 'automatic' output than a fully autonomous assistant. That friction is the point: in a knowledge system, a wrong fact that looks confident is worse than a missing one.

The obvious approach

Call a hosted LLM API for transcription, summaries and chat — fastest path to a working demo.

Why I didn't choose it

It sends confidential audio off-device, creates per-call cost and vendor lock-in, and makes 'why did it say that?' unanswerable.

My approach

Run local models (Faster-Whisper, Ollama, SpeechBrain) behind provider interfaces, with RAG grounded in local embeddings + Postgres full-text and citations that refuse to answer beyond the source.

Trade-offs

Local inference is slower and more operationally involved than a hosted API, but the data never leaves and every answer is auditable.

Technical highlights

  • Runs end to end with zero paid APIs — local by default, cloud by configuration.
  • RAG answers are citation-bound and refuse to hallucinate beyond source material.
  • Reproducible diarisation benchmark harness with provenance-stamped runs.

Claims & evidence

  • Executive dashboard health, score and analytics are materialised incrementally (around 14 ms dashboard reads) rather than recomputed per request.

    Measured · Author benchmark (MeetingMind incremental materialisation)

  • Built solo across 15 phases — backend, background engine, local AI stack, knowledge layer, multi-agent platform and dashboard.

    Qualitative · MeetingMind project scope

Every statement above carries its evidence class — nothing is invented.

Tech stack

  • Python
  • Django 5
  • Django REST Framework
  • Celery
  • Redis
  • PostgreSQL
  • Faster-Whisper
  • Ollama (Llama 3.2)
  • SpeechBrain ECAPA
  • FFmpeg
  • pgvector
  • Next.js 16
  • TypeScript

Want to go deeper on MeetingMind AI?

I'm happy to walk through the architecture and the decisions behind it.

Get in touch