GitHunt
RU

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/sigtop

2. 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_transcribe

3. Run it

Double-click the app, or from the terminal:

~/signal_transcriber/signal_voice_transcribe

The 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