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>
114 lines
4.1 KiB
Markdown
114 lines
4.1 KiB
Markdown
# Getting the pastor's mic into the Mac
|
|
|
|
The engine takes **any CoreAudio input**. It does not care how the audio got
|
|
there. Pick whichever of these matches the room, and it shows up in the
|
|
**Sermon audio → Input device** list like any other sound card.
|
|
|
|
---
|
|
|
|
## The one rule
|
|
|
|
Feed it **the pastor's microphone**, not the main mix.
|
|
|
|
A direct out, a matrix, an aux, a bus — anything that is that one voice. Music,
|
|
congregational singing and room noise all make the transcription worse, and the
|
|
voice-detection has to work much harder to find the speech.
|
|
|
|
Post-EQ and post-compression is good. Post-fader is fine. Post-reverb is not.
|
|
|
|
---
|
|
|
|
## Dante
|
|
|
|
Dante Controller is already installed on this Mac, but a Mac cannot receive
|
|
Dante audio without something to receive it *with*. Two options:
|
|
|
|
### Dante Virtual Soundcard (about $50, one time)
|
|
|
|
The normal answer. It turns the Mac itself into a Dante device.
|
|
|
|
1. Buy and install **Dante Virtual Soundcard** from audinate.com.
|
|
2. Start it. Set it to **2 channels**, sample rate **48 kHz**.
|
|
3. Open **Dante Controller**, find the row for this Mac, and subscribe
|
|
channel 1 to the pastor's mic transmit channel.
|
|
4. In the engine, pick **Dante Virtual Soundcard (1-2)**.
|
|
|
|
There is no subscription. It is the only money this whole system costs.
|
|
|
|
### RedNet hardware you may already own
|
|
|
|
This Mac has **RedNet Control 2** and the Focusrite PCIe driver installed, but
|
|
no RedNet device is currently attached. If there is a RedNet box or a PCIeNX
|
|
card in a Thunderbolt chassis somewhere in the building, reconnecting it gives
|
|
you Dante input for free and with lower latency than DVS.
|
|
|
|
---
|
|
|
|
## Waves SoundGrid
|
|
|
|
For the locations on a Waves network instead of Dante.
|
|
|
|
1. Install **Waves SoundGrid Studio** (free from waves.com) on the Mac.
|
|
2. Connect the Mac to the SoundGrid network. SoundGrid Studio will find the
|
|
server and I/O.
|
|
3. In SoundGrid Studio, patch the pastor's mic channel to the **driver** —
|
|
that is the thing that appears to macOS as a sound card.
|
|
4. In the engine, pick **Waves SoundGrid** as the input device.
|
|
|
|
The Mac needs a wired Ethernet connection to the SoundGrid network, and it
|
|
should be a **separate** interface from the one reaching the NAS if the two
|
|
networks are separate VLANs.
|
|
|
|
---
|
|
|
|
## Console USB (free, works today)
|
|
|
|
Your M32 does 32 channels of USB audio to a Mac with no extra hardware.
|
|
|
|
1. USB cable from the console's **USB** port to the Mac.
|
|
2. On the console, route the pastor's mic channel to a USB send.
|
|
3. In the engine, pick the console as the input device.
|
|
|
|
Least elegant, zero cost, and completely reliable. A good way to prove the whole
|
|
system works before spending anything on Dante.
|
|
|
|
---
|
|
|
|
## BlackHole (for testing)
|
|
|
|
BlackHole 2ch is already installed. Anything playing on the Mac can be routed
|
|
into the engine through it, which is useful for rehearsing with a recording of
|
|
last week's sermon before you trust it live.
|
|
|
|
---
|
|
|
|
## If Dante is not in the list
|
|
|
|
**Restart the app.** Chromium reads the audio devices when it starts, and if
|
|
Dante Virtual Soundcard was launched afterwards it will not be there. The app
|
|
now watches for devices appearing and picks them up on its own, but a restart is
|
|
the certain fix.
|
|
|
|
Also worth checking: DVS running, set to Core Audio, and at least one channel
|
|
subscribed in Dante Controller. If the app lists the device but the meter never
|
|
moves, the device is there and the subscription is not.
|
|
|
|
## Level
|
|
|
|
Aim for speech peaking around **-20 dB** on the app's meter. Measured on this
|
|
rig the Dante feed peaked at -44 dB, which works but leaves only about 14 dB
|
|
above the speech/silence line — quiet passages can slip under it. Raising the
|
|
send at the console is better than winding Sensitivity down, because Sensitivity
|
|
lowers the bar for room noise too.
|
|
|
|
## Checking it works
|
|
|
|
The engine has a level meter with a notch on it.
|
|
|
|
- The **bar** is the incoming level.
|
|
- The **notch** is the line between silence and speech.
|
|
|
|
Speech should push the bar clearly past the notch and turn it green. Room noise
|
|
between sentences should sit below it. If it doesn't, move the **Sensitivity**
|
|
slider — left if quiet speech is being missed, right if noise is triggering it.
|