Skip to content

Releases: pstehlik/transcriber

v1.3.2 — Validate the model setting

Choose a tag to compare

@pstehlik pstehlik released this 19 Aug 10:18

Fixes a class of failure where a bad model name in Settings produced empty transcripts with no usable explanation.

What was wrong

The Transcription Command field is free-form, so the --model argument can be edited to name a Hugging Face repo that does not exist — one install was running mlx-community/whisper-high-mlx. Two things then conspired to hide the cause:

  • Hugging Face answers 401, not 404, for a repo that is not there (so its API cannot be used to probe for private repos). The log therefore ended in RepositoryNotFoundError: 401 … Invalid username or password, which reads like an authentication problem and is not one.
  • mlx_whisper catches the error per file, prints Skipping <file> due to …, and still exits 0. The run was recorded as completed with an empty transcript.

Prevention

Settings will no longer save a command that cannot run. The command must contain [INPUT_FILE] and a --model <id>, and a model outside the built-in list is checked against Hugging Face before the save is written:

  • One of the three listed models — saved immediately, no network call
  • A real but unlisted repo (e.g. whisper-large-v2-mlx) — still allowed
  • A repo Hugging Face does not have — rejected, with the model name quoted back
  • Hugging Face unreachable — saved with a warning, so working offline never blocks a save

Recovery

For installs that already have a bad command on disk, the transcription log now explains it in plain language and says how to fix it:

"mlx-community/whisper-high-mlx" is not a model on Hugging Face, so nothing could be transcribed. Open Settings, pick a model from the list (this rewrites the --model argument), save, and run this file again.

The message is logged at error level, which expands the log panel automatically, and the run is now recorded as error instead of a completed-but-empty transcript.

v1.3.1 — Filter Whisper repetition loops

Choose a tag to compare

@pstehlik pstehlik released this 19 Aug 06:58

Fixes garbled transcript endings introduced by the turbo model in 1.3.0.

What was wrong

Whisper can fall into a repetition loop at the end of a file, appending dozens of copies of the last phrase — measured at 79x "Ciao." on a 94-second voice message. Turbo loops far more readily than the deeper models because its decoder is pruned to 4 layers, which is why this only surfaced after 1.3.0 made turbo the default.

The fix

Loop output is now filtered out at the stdout parse boundary. Three shapes are rejected:

  • Zero-duration segments — start equals end, so no audio is spanned
  • Segments past the end of the audio — Whisper zero-pads the final 30s window and decodes into the padding (a 63s file was emitting segments out to 01:21)
  • Consecutive repeats of the previous segment's text

Dropped segments are counted and logged once at completion.

Decoding-flag workarounds were measured and rejected: --condition-on-previous-text False and --word-timestamps True both stop the loop but change transcribed words, and --compression-ratio-threshold has no effect at all. Filtering the output is strictly cheaper than degrading the decode.

Also fixed: audio duration is now read for Ogg/Opus files (WhatsApp voice notes), whose headers carry no duration — without it the past-the-end rule was silently inert on the app's most common input.


Install: download the DMG, drag Transcriber to Applications, open it. Requires Apple Silicon and macOS 14+.

v1.3.0

Choose a tag to compare

@pstehlik pstehlik released this 18 Aug 14:06

Changes

  • Better transcription accuracy by default. The default model is now Whisper large-v3-turbo instead of small — noticeably more accurate, especially for non-English audio, at a modest speed cost. On a typical voice message you won't notice the extra time; you will notice the better text.
  • Simplified model picker: Small / Turbo / Large. Tiny and Medium have been retired — Turbo beats Medium on size, speed, and accuracy alike, and Tiny wasn't accurate enough to be worth offering.
  • Model sizes shown in Settings are now the real download sizes (480 MB / 1.6 GB / 3.1 GB), and the first-launch setup screen no longer understates what it downloads.

Upgrading

If you previously selected Tiny or Medium, you'll be moved to the closest replacement automatically (Small and Turbo respectively). If you deliberately chose Small, you stay on Small — change it in Settings any time.

The new default model is a ~1.6 GB download. Existing installs fetch it on the first transcription after upgrading, so that one run will be slower than usual.

Install

Download Transcriber-1.3.0-arm64.dmg, open it, and drag Transcriber to Applications. Apple Silicon + macOS 14+ required.

v1.2.1

Choose a tag to compare

@pstehlik pstehlik released this 28 May 10:55

Changes

  • WhatsApp integration is now clearly marked as BETA in the config screen, with an updated warning that it relies on an unofficial WhatsApp Web protocol.
  • DMG window layout: app icon and Applications shortcut are now positioned for a cleaner drag-to-install experience.

Install

Download Transcriber-1.2.1-arm64.dmg, open it, and drag Transcriber to Applications. Apple Silicon + macOS 14+ required.

v1.1.1

Choose a tag to compare

@pstehlik pstehlik released this 13 Apr 13:24

What's New

  • Model selector — Choose transcription accuracy (Tiny / Small / Medium / Large) from Settings, with model info and pre-download
  • Setup welcome screen — Clear explanation of what gets installed before setup begins, with a Start button
  • Model pre-download — Language model downloads during first-launch setup so the first transcription starts instantly
  • Code signing & notarization — DMG is now signed and notarized by Apple; no more Gatekeeper warnings

Fixes

  • Stepper sync bug — Max parallel runs now correctly loads from saved config when reopening Settings
  • Dependency upgrades — Electron 35 → 41, music-metadata updated; 0 npm audit vulnerabilities

Download

Download Transcriber-1.1.1-arm64.dmg, drag to Applications, and open. Requires Apple Silicon (M1+) and macOS 14 Sonoma or later.

v1.1.0

Choose a tag to compare

@pstehlik pstehlik released this 12 Apr 14:43

What's new

  • WhatsApp voice message transcription — Link WhatsApp via QR code and incoming voice messages are automatically transcribed. Sender name is shown in history.
  • Folder watcher — Watches ~/Downloads and ~/Documents for Telegram (.ogg), Signal (.m4a), and WhatsApp (.opus) voice messages and auto-transcribes new arrivals.
  • Delete history — Delete individual transcriptions or clear all history.
  • Auto-setup — First-launch setup screen handles venv creation, mlx-whisper install, and ffmpeg setup automatically.
  • DMG packaging — Distributed as a macOS DMG (unsigned, right-click > Open on first launch).

Bug fixes & robustness

  • WhatsApp reconnect no longer causes unhandled promise rejection on failure
  • QR code rendering uses safe DOM methods instead of innerHTML
  • Folder watcher errors are now logged instead of silently swallowed
  • Safe IPC sends prevent crashes during app shutdown

Requirements

  • Apple Silicon (M1 or later)
  • macOS 14 Sonoma or later
  • Xcode Command Line Tools (macOS prompts automatically)

Transcriber v1.0.0

Choose a tag to compare

@pstehlik pstehlik released this 09 Apr 16:59

Transcriber v1.0.0

Local audio transcription for macOS using MLX Whisper on Apple Silicon. No cloud, no uploads — everything runs on your Mac.

Features

  • Drag-and-drop or Open Audio File — transcription starts immediately with real-time streaming text
  • Auto-setup — Python venv, mlx_whisper, and ffmpeg are installed automatically on first launch
  • Folder watcher — auto-transcribes WhatsApp, Telegram, and Signal voice messages saved to Downloads or Documents
  • Transcription history — persisted in local SQLite, with delete individual or delete all
  • Configurable — custom transcription command, adjustable parallel run limit (1–10)
  • Supported formats — mp3, wav, flac, m4a, ogg, opus, wma, aac, aiff, webm, mp4

Requirements

  • Apple Silicon (M1 or later)
  • macOS 14 Sonoma or later

Install

Download Transcriber-1.0.0-arm64.dmg, open it, and drag Transcriber to Applications. The app is unsigned — on first launch, right-click and select "Open" to bypass Gatekeeper.

First launch installs dependencies and downloads the Whisper model (~1.5 GB). This takes 1–3 minutes.