-
3.23.2 · build 112 Stable
released this
2026-09-23 18:06:51 -04:00 | 18 commits to main since this releaseThe build running at the campuses. Apple Silicon only (M1 or newer, 16 GB+).
Install
Mount the DMG, drag the app to Applications. It is ad-hoc signed for this church rather than by Apple, so the first launch needs right-click → Open.
A fresh Mac also needs the models, voices and speech cache — about 25 GB that cannot live in git. Those travel in the deploy folder alongside its own installer script, not here.
What changed
Audio reached the hardware outputs again. The server's clip route only accepted names beginning
c(cloud), so every clip from Piper, Kokoro or the local engine returned 404 and the Dante/transmitter outputs were silent — while phones kept working, because they read clips off disk over the WebSocket and never touch that route.Stale audio stopped replaying. Clip filenames are URLs, and the counter restarted at
p1on every launch while the server declared those URLsimmutablefor an hour. After a restart the outputs played the previous service's sentence under a recycled name. Names are now seeded from the clock, and clips areno-storeat both ends.NLLB stopped inventing questions. Handed a fragment, it answers with fluent invention —
"Jesus."→ "What do you want?","Holy Spirit."→ "What must we do?" — spoken aloud. The guard only fired on exactly one-word sources; it now covers up to four, with the interrogative exemption widened so"Why not."→"¿Por qué no?"still survives. Measured over 349 confirmed inventions and 22,509 legitimate short lines from ten real services: 76 more suppressed, none lost.Whisper's repetition loops are collapsed. A groove like "a little bit of a little bit of…" reached the congregation's screens as a live caption; the previous guard only caught an utterance doubled exactly.
It survives losing the network. An address-list change made the renderer reconnect its loopback socket, and the server read that disconnect as "stop the service" — so turning off Wi-Fi ended the translation, on a system whose whole point is running offline into transmitters. Verified by cutting Wi-Fi for 25 seconds mid-session.
Natural voices run with no Python. The Kokoro sidecar falls back to the bundled ONNX runtime when no venv is present. Cold model load 0.3 s; 2.6 s of Spanish in 0.44 s. The venv step in the old migration notes is obsolete.
Quitting works.
before-quitkilled all four child processes before the window's close handler could ask "are you sure", and the answer then cancelled the quit — leaving a gutted, still-live app that only SIGKILL would end. The question now comes first, and "Stop and quit" actually quits.The app says when something is wrong. A bilingual monitor showing each sentence beside its translation; a pinnable speech gate; a watchdog for going deaf while the meter still moves; a startup warning naming any language routed to channels the sound card does not have; voice-engine failures and hardware-output failures written to the log instead of swallowed.
Downloads