AI-powered church presentation.
Ozioma listens to a church service, understands spoken scripture references, and helps bring the right Bible passage to the presentation screen.
Status: V1, in development. The Bible recognition engine's retrieval and ranking stages work and are tested. Live microphone capture and speech-to-text are not implemented — their interfaces exist and their adapters are written, but they are switched off. Nothing in this repository simulates a capability that does not exist: a stage that is not configured says so.
| Folder | What it is | State |
|---|---|---|
ai-engine/ |
Python: the Bible recognition pipeline and a local FastAPI service | Retrieval and ranking working, 114 tests |
desktop/ |
Tauri + React: the operator application | Shell — window, engine client, manual scripture search |
landing-page/ |
React + Vite: the marketing site | Complete |
docs/ |
Architecture, AI and development documentation |
┌─────────────────────────────────────────────────────────────┐
│ Operator's computer │
│ │
│ ┌──────────────────┐ HTTP ┌──────────────┐ │
│ │ Desktop app │ ─────────────────► │ AI engine │ │
│ │ Tauri + React │ ◄───────────────── │ FastAPI │ │
│ │ │ 127.0.0.1:8000 │ Python │ │
│ └────────┬─────────┘ └──────┬───────┘ │
│ │ │ │
│ projector / LED ┌───────┴───────┐ │
│ │ SQLite FAISS │ │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────────┘
Everything runs on one machine. There is no cloud backend, no account and no sign-in. See docs/architecture/overview.md.
microphone ──► audio prep ──► transcription ──► recognition ──► ranking ──► operator ──► screen
The operator approves every passage before it reaches the screen. That is a product requirement, not a temporary limitation.
cd landing-page
npm install
npm run dev # http://localhost:5173cd ai-engine
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install -r requirements-dev.txt
python scripts/init_db.py
uvicorn app.api.main:app --reload --host 127.0.0.1 --port 8000Then http://127.0.0.1:8000/health.
Needs the Rust toolchain and Tauri's prerequisites. Start the engine first.
cd desktop
npm install
npm run tauri:devFull instructions: docs/development/getting-started.md.
Ozioma ships with no scripture. Most modern translations are copyrighted, and bundling one with software is not covered by the quotation allowances that apply to print. You supply a translation you are licensed to use and import it locally; it never enters version control.
ai-engine/data/bible/README.md covers the
licensing, the file format and the import command, and lists public-domain
translations that are safe to start with.
Until a translation is imported the engine still runs: spoken references are recognised, and passage search returns an empty result with a note explaining why — not a placeholder verse.
cd ai-engine && pytest # 114 tests
cd landing-page && npm run build # type-check and build
cd desktop && npm run build # type-check and buildMore in docs/development/testing-and-quality.md.
Desktop: Tauri 2, Rust, React 19, TypeScript 5, Vite 7 AI engine: Python 3.11+, FastAPI, Pydantic v2, SQLite (FTS5); optional faster-whisper, Sentence Transformers, PyTorch and FAISS Landing page: React 19, TypeScript 5, Vite 7, Tailwind CSS 4, Framer Motion
Deliberately absent: PostgreSQL, MongoDB, Redis, Qdrant, Kubernetes, authentication, and any cloud service.
| V1 | Bible recognition | In development |
| V2 | Scripture prediction | Planned |
| V3 | Music and lyrics | Planned |
| V4 | AI presentation design | Planned |
| V5 | Livestream and social integration | Planned |
Each version has to be finished, tested in a real service and made production-ready before the next one starts. docs/development/roadmap.md.
- Never fabricate a result. An unconfigured stage raises, or returns an empty result with a note. Empty means "nothing matched"; a note means "this could not run".
- Offline-first. The recognition path is designed to work without an internet connection. Model downloads and corpus import are explicit, one-time steps.
- The operator decides. Ozioma suggests, with a confidence score and the reason behind it. A person sends it to the screen.
- No claim without a measurement. There is no accuracy figure anywhere in this project outside a clearly-labelled product illustration, because there is not yet an evaluation set to produce one.
MIT. The licence covers Ozioma's own source code. It does not cover any Bible translation you import — that remains governed by its own licence.