rubenarslan/signal_transcriber
Vibe coded Mac app to transcribe Signal voice message using sigtop, ffmpeg, whisper, swiftdialog
Signal Voice Transcriber
Transcribes the most recent voice message from Signal Desktop using local speech recognition (Whisper). Everything runs locally on your Mac.
How it works
Signal Desktop encrypts all attachments at rest. This tool uses sigtop to decrypt and export recent attachments, finds the latest voice message, and transcribes it with whisper.cpp using the large-v3-turbo model. Language is auto-detected.
The UI is powered by swiftDialog: a progress bar during transcription, the result in a native dialog, and a "Transcribe Another" button if there are more voice messages from today.
The transcription is copied to the clipboard automatically.
Quick install
1. Install dependencies
brew install ffmpeg whisper-cpp swiftdialog && brew install --HEAD tbvdm/tap/sigtop2. Get the app
Download Signal Voice Transcriber.app from the releases page, or use the CLI script directly:
mkdir -p ~/signal_transcriber && curl -L -o ~/signal_transcriber/signal_voice_transcribe https://raw.githubusercontent.com/rubenarslan/signal_transcriber/main/signal_voice_transcribe && chmod +x ~/signal_transcriber/signal_voice_transcribe3. Run it
Double-click the app, or from the terminal:
~/signal_transcriber/signal_voice_transcribeThe app is unsigned and unnotarized, so macOS Gatekeeper will block it on first open. Users need to right-click → Open (or go to System Settings → Privacy & Security → "Open Anyway").
On first run, the Whisper model (~1.5 GB) is downloaded automatically to ~/signal_transcriber/. Signal Desktop must have been used on this machine.
Limitations
- Exports all attachments from the most recent day to find voice messages. Typically fast, but could be slow on a very busy day.
- Only finds audio attachments (
.m4a,.aac,.ogg,.opus). - macOS only.
Building the app
Requires Platypus CLI tool.
./build_app.sh