Install on macOS
Tested on macOS 13 (Ventura), 14 (Sonoma), and 15 (Sequoia) on Intel and Apple Silicon.
1. Install Homebrew (if needed)​
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. System dependencies​
brew install rustup git git-lfs ffmpeg pkg-config
rustup-init -y # Rust stable toolchain
brew install blackhole-2ch # virtual audio cable
For v0.2+ GNU Radio flowgraphs:
brew install gnuradio soapysdr
# gr-dnn ships as a wheel in v0.2; see Architecture → Flowgraphs
3. Virtual cable setup​
BlackHole is the de-facto free virtual cable on macOS.
- After
brew install blackhole-2ch, open Audio MIDI Setup (⌘+Space → "Audio MIDI Setup"). - Click + → Create Multi-Output Device.
- Check both BlackHole 2ch and your MacBook / external speakers.
- Rename it to something obvious like "RFW-Listen".
Use BlackHole 2ch as RFWhisper's output device and as WSJT-X's input device.
4. RFWhisper​
git clone https://github.com/jakenherman/rfwhisper.git
cd rfwhisper
cargo build --release
sudo install -m755 target/release/rfwhisper /usr/local/bin/
rfwhisper models fetch
rfwhisper doctor
5. Apple Silicon: CoreML acceleration​
When the ONNX (DFN3) backend is enabled, RFWhisper prefers the CoreML execution provider on Apple Silicon automatically:
rfwhisper info providers
# CoreMLExecutionProvider (preferred on M-series)
# CPUExecutionProvider (fallback)
This typically halves inference latency vs CPU-only for DeepFilterNet3.
6. Privacy & mic permissions​
macOS will prompt for microphone access the first time you run rfwhisper denoise-live. If you miss the prompt:
- System Settings → Privacy & Security → Microphone — allow Terminal (or your editor).
Troubleshooting​
- No sound through BlackHole — verify the Multi-Output Device is selected as system output; check that input/output sample rates match (48 kHz is our default).
cargo: command not foundafter install — restart your shell orsource "$HOME/.cargo/env".- Rosetta — not required. Build natively on Apple Silicon; you'll keep CoreML eligibility.