Files
church-translate/Releases/INSTALL.md
T
christianandClaude Opus 5 c9eef0672c Church Translate, as it runs at the campuses
Live sermon translation into 100+ languages, running entirely on one Mac per
campus: audio in, voice detection, Whisper on the GPU, NLLB-200 in its own
process, and a built-in web server the congregation reads from on their
phones. No audio leaves the building.

This is the source only. What used to sit beside it — 14 GB of speech and
translation models, 8 GB of voice bundles, 6 GB of natural voices, the Electron
caches, and the app data holding the operator PIN and every service transcript
— is machine state and downloaded assets, and stays in the NAS backup where it
belongs. The vendored node, cloudflared and Windows ffmpeg binaries are out too
(533 MB, re-fetched for packaging); the browser-side runtime beside them is
kept, so a checkout still serves the congregation page.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 15:41:21 -04:00

5.6 KiB
Raw Blame History

Church Translate — Installing at a Campus

What you need

  • An Apple Silicon Mac (M1 or newer). 16 GB+ RAM recommended.
  • The sermon audio reaching that Mac: Dante Virtual Soundcard, Waves, or any input device. A mixer direct-out of the pastor's mic is ideal.
  • Wi-Fi that phones in the room can join (guest network is fine, but test the QR code — some guest networks isolate clients from each other, which blocks the listener page; ask IT to allow "client-to-client" for the Mac, or put the Mac on the same network as the congregation).

Install

  1. Copy Church Translate-3.0.1-arm64.dmg to the Mac, open it, drag the app to Applications.
  2. First launch on a new Mac (macOS 15+): macOS will block the app because it is not notarized. Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to the Church Translate message, then launch again. (One time only.)
    • Alternative for a tech: xattr -dr com.apple.quarantine "/Applications/Church Translate.app"
  3. First run downloads the speech and translation models (~2 GB). Let it finish once on good internet — after that the app works fully offline except internet sharing.

The one networking rule

The Mac must be ON a network the phones can reach — in practice: keep the Mac's Wi-Fi ON and joined to the same Wi-Fi the congregation uses (wired AV networks are usually isolated VLANs phones cannot route to). The Setup pane lists every address the Mac has and marks which network each one is; the QR uses the highlighted one, and Wi-Fi is preferred automatically. If phones "can't open the page", this is almost always why.

Set up (5 minutes)

  1. Setup pane → Input device: pick the Dante/Waves/interface channel the sermon arrives on. Speak: the meter should go green past the notch.
  2. Adjust Sensitivity during a soundcheck: voice crosses the notch, room noise does not. (This is remembered.)
  3. Operator pane → add front-page languages, pin ("Always translate") the languages your campus serves, add corrections (what it heard => what it should say) as you find them.
  4. Print the poster / share the QR — congregation phones open the local address shown on the Setup pane.

Stream Deck / Companion

Operator pane shows four URLs (Start / Stop / Toggle / Status) for Bitfocus Companion "Generic HTTP" buttons. Status returns live, ready, or offline as plain text.

Livestream viewers (YouTube)

  1. Setup pane → Internet sharing → "Share to the internet".
  2. Copy the https://….trycloudflare.com link into the stream description or a pinned comment. The link is new each time you start sharing — paste a fresh one each stream (only the streaming campus needs this).
  3. Operator pane → Stream delay: set roughly your stream's latency (typically 10–30s for YouTube) so captions/voice line up with the video. The room always sees live.
  • Optional permanent link: create a named Cloudflare Tunnel on a church domain (one-time IT task, free) pointing at http://<mac>:3100, and put that URL in the operator "publicUrl" setting; then the QR/poster use it too.

Free professional voices (optional, one-time setup, $0)

The app can run studio-quality voices ON the Mac itself — no subscription, no usage fees, weights are Apache-licensed (owned forever). Covers Spanish, Portuguese, Chinese, Korean, French (+ English, German, Italian, Russian). One-time setup per Mac (~10 min, ~2GB download):

bash "/Applications/Church Translate.app/Contents/Resources/app/tools/setup-local-voices.sh"

Then: Operator pane → Premium voices → "Local (this Mac — free)". If the local engine ever fails, the built-in voices take over automatically. Languages it doesn't cover (Vietnamese, Arabic, Haitian) stay on the built-in voices. fish.audio (prepaid pay-per-use, not a subscription) remains available as an alternative for those languages.

The two Portugueses

"Português (Brasil)" and "Português (Portugal)" carry genuinely different text — one translation is produced, then each variant applies its own corpus-tested grammar pass (você/tu system, está falando / está a falar, me disse / disse-me, vocabulary). Have a native speaker of each spot-check a service before promoting it heavily.

During the service

The Operator pane's health line is the one thing to watch:

  • Green — healthy; shows how far behind the speaker the captions are.
  • Amber — running behind; idle languages may be trimmed to catch up.
  • Red — something is wrong (not connected / badly behind). Restart the app if it does not clear itself in a minute; settings and corrections are safe (automatic backups, 30 kept).

Per-campus checklist (before the first Sunday)

  • Audio feed reaches the Mac and the meter goes green on speech
  • Phone on the congregation Wi-Fi can open the QR link and hear a voice
  • Languages pinned; corrections list started
  • Stream Deck buttons tested (if used)
  • A volunteer knows: green/amber/red, and "restart the app" as the fix

Updates

Replace the app with a newer DMG the same way. Settings, corrections, models, and voices all survive updates (they live outside the app). Check the version in the DMG filename; the app's build number is in Finder → Get Info.

Known limits

  • Apple Silicon only (this build).
  • Haitian Creole (and ~70 other languages) are captions-only — no synthesized voice exists for them; the phone's own voice is used where the device has one.
  • The internet-sharing link changes on every start (that is how account-less tunnels work) — use a named tunnel for a permanent link.