OpenBeam
A preacher says “nothing can separate us from God’s love” and the verse goes up on the screen behind them, Romans 8:38-39, while they are still talking. That is the whole product, and OpenBeam does it in a browser tab.
We built it at TensorKit and it is live at openbeam.tensorkit.ai. Open a URL, enter a Deepgram key, start detecting. No download, no install, no setup. The broadcast side is an OBS browser source at /overlay.html.
Desktop tools exist for this job. Rhema is the one we point people at, and it was part of what got us interested in the problem, but trying one means downloading an app, compiling Rust, setting up ONNX models and configuring NDI. That is a lot to ask of a church tech volunteer who does not yet know whether verse detection is useful to them. OpenBeam is the version you can try in the thirty seconds before a service starts.
How the detection works
It does not use a single method. Four strategies run at once and get merged with confidence weighting.
Direct references go through an Aho-Corasick automaton compiled over all 66 book names, their abbreviations and spoken variants, matched in a single pass with no regex backtracking and no LLM round-trip. It handles how people actually speak: “one nineteen verse one oh five” resolves to Psalm 119:105.
Paraphrases and allusions go through semantic search. We embed transcript segments via Qwen3-Embedding-8B through OpenRouter, then search a pre-built HNSW vector index of more than 31,000 verse embeddings. “Put on the full armor so you can stand against the enemy’s schemes” finds Ephesians 6:11 with no book or chapter spoken.
Verbatim quotation goes through an inverted word index built from every verse in the Bible, so word-for-word quoting surfaces the match without any reference being spoken. “The Lord is my shepherd, I shall not want” resolves to Psalm 23:1.
The ensemble merger takes all three, deduplicates, boosts anything found by more than one strategy, and suppresses a verse that was just displayed so it does not flicker back up.
How it is built
A React 19 single-page app (Zustand, shadcn/ui, Tailwind v4) taking browser microphone audio, streaming it through Deepgram for transcription, and running the detection pipeline client-side against the pre-built index. The overlay renders in a separate page so OBS can pull it as a browser source without the operator UI coming with it.
Every great product starts with someone who refuses to accept what exists today.
If that's you, we should
talk about your future product