Selected systems Get in touch

Speech & presentation · Desktop · Offline-first

LumosCast

Spoken references.
Ready for the screen.

A presentation system that listens to a live sermon, detects spoken Bible references, retrieves the passage from a local database, and puts it on the projector or OBS.

Role
Architecture and full build
Platform
macOS, Windows and Linux
Network
Runs with no internet
LumosPresenter console design showing scripture search, passage preview, and live presentation queue
LumosCast / LumosPresenterConsole design

Core features.

Everything between the preacher's voice and the passage on the screen.

Live listening

Microphone audio is captured, split on voice activity and transcribed locally, with the engine and model switchable from the console.

Reference detection

A parser turns messy transcripts into references: misheard book names, spoken numbers, and partial references spread across utterances.

Offline scripture

KJV, ASV and BSB are bundled in SQLite. NIV, AMP and MSG can be added through api.bible and are cached locally.

Operator console

A React console to search, preview, confirm and queue passages before they go live.

Displays for projection and OBS

Each configured display is a web page on the local network, styled per screen and updated instantly.

A desktop launcher

An Avalonia launcher starts the server, lives in the tray, picks the microphone, and recovers the server if it stops.

Architecture

One process, from microphone to screen.

Hover or tap a component to trace its connections.

Desktop launcher

Starts and supervises the server, tray, microphone picker

  • Avalonia

Web host

Pipeline, minimal API and the event broadcaster

  • ASP.NET Core
  • SSE

Operator console

Search, preview, confirm and queue passages

  • React
  • Vite

Audio capture

Microphone input cut into speech at pauses

  • PortAudio
  • VAD

Speech engine

Local transcription, biased to scripture vocabulary

  • Whisper.net
  • sherpa-onnx

Reference parser

Finds references across utterances and scores confidence

  • Core
  • No dependencies

Display pages

One styled page per projector or OBS output

  • React

Scripture store

Bundled KJV, ASV and BSB for offline use

  • SQLite
  • Dapper

api.bible

Optional NIV, AMP and MSG, cached for 14 days

  • HTTP
  • Local cache
All connections
  1. Desktop launcher to Web host: starts, restarts
  2. Audio capture to Speech engine: speech chunks
  3. Speech engine to Reference parser: transcripts
  4. Reference parser to Scripture store: verse lookup
  5. Scripture store to api.bible: online translations
  6. Reference parser to Web host: detected verses
  7. Web host to Operator console: SSE + REST
  8. Web host to Display pages: SSE /events

Innovation highlights.

Innovation one

Context that bridges the pauses

Sticky book and chapter context survives a window of utterances, so a reference split by filler still resolves. An explicit cue can resume the last passage long after.

Innovation two

Confidence before the screen

Every heuristic match carries a confidence score for a confirm gate, because on a live display a false positive costs more than a miss.

Innovation three

Recognition biased to scripture

Whisper is primed with a vocabulary built from the parser's own book catalogue, so book names and numbers survive transcription.

Technology stack

What it is built with.

Host

  • .NET 10
  • ASP.NET Core Minimal API
  • Server-Sent Events

Speech and audio

  • Whisper.net
  • sherpa-onnx
  • PortAudio

Data

  • SQLite
  • Dapper
  • api.bible

Interface

  • React
  • Vite
  • Avalonia

Quality

  • xUnit
  • Golden-audio tests

Next project

AI-assisted workflow · Web employed