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>
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
{
|
||||
"name": "church-translate-engine",
|
||||
"productName": "Church Translate",
|
||||
"version": "3.23.2",
|
||||
"buildNumber": 112,
|
||||
"private": true,
|
||||
"description": "Live sermon translation — self-contained: captures audio, transcribes, translates, and serves the congregation page itself",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"predist": "node tools/sync-build-version.js && node tools/check-packaged-files.js",
|
||||
"start": "electron .",
|
||||
"dist": "electron-builder --mac",
|
||||
"dist:mac": "electron-builder --mac",
|
||||
"dist:win": "electron-builder --win"
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "^33.2.0",
|
||||
"electron-builder": "^25.1.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"@huggingface/transformers": "^3.8.1",
|
||||
"espeak-ng": "^1.0.2",
|
||||
"kokoro-js": "^1.2.1",
|
||||
"qrcode": "^1.5.4",
|
||||
"sherpa-onnx-node": "^1.13.6",
|
||||
"tar-stream": "^3.2.1",
|
||||
"unbzip2-stream": "^1.4.3",
|
||||
"ws": "^8.18.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "org.waterschurch.translate.engine",
|
||||
"productName": "Church Translate",
|
||||
"directories": {
|
||||
"output": "dist"
|
||||
},
|
||||
"files": [
|
||||
"main.js",
|
||||
"preload.js",
|
||||
"index.html",
|
||||
"engine.css",
|
||||
"engine.js",
|
||||
"model-worker.js",
|
||||
"mt-service.js",
|
||||
"capture-worklet.js",
|
||||
"selftest.html",
|
||||
"selftest.js",
|
||||
"selftest.wav",
|
||||
"vendor/transformers.min.js",
|
||||
"vendor/ort-wasm-simd-threaded.jsep.wasm",
|
||||
"vendor/ort-wasm-simd-threaded.jsep.mjs",
|
||||
"server/**/*",
|
||||
"tts-service.js",
|
||||
"kokoro-sidecar.js",
|
||||
"voices.js",
|
||||
"pt-variants.js",
|
||||
"speech-text.js",
|
||||
"tools/setup-local-voices.sh",
|
||||
"voice-catalog.js",
|
||||
"out-routing.js",
|
||||
"mt-guard.js",
|
||||
"liturgy.js",
|
||||
"preach.js",
|
||||
"spa-variants.js",
|
||||
"bible-lexicon.js",
|
||||
"app-log.js",
|
||||
"sidecar-langs.js",
|
||||
"short-questions.js",
|
||||
"tools/verify-windows.js"
|
||||
],
|
||||
"mac": {
|
||||
"target": [
|
||||
{
|
||||
"target": "dir",
|
||||
"arch": [
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "dmg",
|
||||
"arch": [
|
||||
"arm64"
|
||||
]
|
||||
}
|
||||
],
|
||||
"category": "public.app-category.utilities",
|
||||
"extendInfo": {
|
||||
"NSMicrophoneUsageDescription": "Church Translate listens to the sermon audio you select so it can caption and translate it."
|
||||
},
|
||||
"identity": null,
|
||||
"extraResources": [
|
||||
{
|
||||
"from": "vendor/node",
|
||||
"to": "node"
|
||||
},
|
||||
{
|
||||
"from": "vendor/cloudflared",
|
||||
"to": "cloudflared"
|
||||
}
|
||||
],
|
||||
"artifactName": "${productName}-${version}-${arch}.${ext}",
|
||||
"files": [
|
||||
"!node_modules/**/.cache${/*}",
|
||||
"!node_modules/onnxruntime-node/bin/napi-v3/win32${/*}",
|
||||
"!node_modules/onnxruntime-node/bin/napi-v3/linux${/*}",
|
||||
"!node_modules/sherpa-onnx-win-x64${/*}"
|
||||
]
|
||||
},
|
||||
"asar": false,
|
||||
"buildVersion": "112",
|
||||
"win": {
|
||||
"target": [
|
||||
{
|
||||
"target": "nsis",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "zip",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
],
|
||||
"artifactName": "${productName} Setup ${version}.${ext}",
|
||||
"extraResources": [
|
||||
{
|
||||
"from": "vendor-win/node.exe",
|
||||
"to": "node.exe"
|
||||
},
|
||||
{
|
||||
"from": "vendor-win/cloudflared.exe",
|
||||
"to": "cloudflared.exe"
|
||||
},
|
||||
{
|
||||
"from": "vendor-win/ffmpeg.exe",
|
||||
"to": "ffmpeg.exe"
|
||||
},
|
||||
{
|
||||
"from": "vendor-win/FFMPEG-LICENSE.txt",
|
||||
"to": "FFMPEG-LICENSE.txt"
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
"!node_modules/**/.cache${/*}",
|
||||
"!node_modules/onnxruntime-node/bin/napi-v3/darwin${/*}",
|
||||
"!node_modules/onnxruntime-node/bin/napi-v3/linux${/*}",
|
||||
"!node_modules/sherpa-onnx-darwin-arm64${/*}"
|
||||
]
|
||||
},
|
||||
"nsis": {
|
||||
"oneClick": false,
|
||||
"perMachine": false,
|
||||
"allowToChangeInstallationDirectory": true,
|
||||
"createDesktopShortcut": true,
|
||||
"createStartMenuShortcut": true,
|
||||
"deleteAppDataOnUninstall": false
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user