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>
24 lines
900 B
HTML
24 lines
900 B
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Church Translate — self test</title>
|
|
<meta http-equiv="Content-Security-Policy" content="
|
|
default-src 'self'; script-src 'self' 'wasm-unsafe-eval' blob:; worker-src 'self' blob:;
|
|
connect-src 'self' https: data: blob:; img-src 'self' data:; style-src 'self' 'unsafe-inline';">
|
|
<style>
|
|
body { font: 14px -apple-system, system-ui, sans-serif; background:#0b0d12; color:#eef1f6; padding:2rem; }
|
|
pre { background:#151922; padding:1rem; border-radius:8px; white-space:pre-wrap; line-height:1.6; }
|
|
.ok { color:#2fbf71; } .bad { color:#e5484d; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Self test</h1>
|
|
<p>Runs a known sentence through both model workers and prints what comes out.</p>
|
|
<pre id="out">starting…</pre>
|
|
|
|
<script src="./server/public/languages.js"></script>
|
|
<script type="module" src="./selftest.js"></script>
|
|
</body>
|
|
</html>
|