Skip to content

Releases: lordbasex/macdub

MacDub 0.4.4

Choose a tag to compare

@lordbasex lordbasex released this 24 Sep 15:06

History

  • Times per sentence for dubbing too: each sentence shows transcription · audio · total — from the end of the sentence to its text, from the text to the translated voice (translation and speech), and the whole way — like live translation conversations already did. Hover them for the translation step on its own. The end of a sentence is taken from the last pause in the captured audio, so it shows when the video pauses between sentences.
  • Copy a line: right-click any sentence in History, in both tabs, to copy it, its original or its translation. Exports of the whole session are still in Export.

Install

MacDub-0.4.4.dmg, or brew upgrade --cask macdub. Not notarized yet: right-click › Open the first time. The Meet extension is unchanged.

MacDub 0.4.3

Choose a tag to compare

@lordbasex lordbasex released this 24 Sep 14:48

Faster dubbing with SpeechAnalyzer

Dubbing on macOS 26+ now uses SpeechAnalyzer's fast results, which live translation already used. On the 30-minute benchmark (report):

SpeechAnalyzer (dubbing) 0.4.2 0.4.3
Latency, median · p90 · max 2.3 · 4.1 · 12.4 s 0.7 · 2.3 · 9.3 s
Sentences spoken whole 84.9 % 87.8 %
Word error rate 9.8 % 10.3 %
Words lost 1.3 % 1.4 %

The translated voice starts three times sooner, still in whole sentences, for half a point of word error rate. SFSpeechRecognizer (macOS 15, and the fallback) is unchanged.

The benchmark measures what the app does; --no-fast-results runs it the old way.

Install

MacDub-0.4.3.dmg, or brew upgrade --cask macdub. Not notarized yet: right-click › Open the first time. The Meet extension is unchanged.

MacDub 0.4.2

Choose a tag to compare

@lordbasex lordbasex released this 24 Sep 12:32

Fixes

  • History keeps the times of each sentence. Sessions were saved with whole seconds, so a live translation conversation reopened in History showed its transcription · audio · total times as 1,0 / 0,0 s. They are now saved with milliseconds; sessions saved before still open.
  • A live translation conversation is always saved, however it was started.
  • No more "Transcription 0,0 s" for a sentence recognized while its speaker was still talking: its end is not known yet, so it is not shown.

README

New English screenshots of every screen — Live translation (setup and a conversation), History with both tabs, Settings › Voice with Personal Voice, Settings › Extensions — and a new tour GIF, all made from real recognition and translation.

Install

MacDub-0.4.2.dmg, or brew upgrade --cask macdub. Not notarized yet: right-click › Open the first time. The Meet extension is unchanged since 0.4.1 (it ships inside the app: Settings › Extensions).

MacDub 0.4.1

Choose a tag to compare

@lordbasex lordbasex released this 24 Sep 09:36

Live translation (beta)

A new section under Dubbing: talk with people in another language through Google Meet, Zoom or any call app.

  • What you say reaches them translated, in the voice you choose — your own Personal Voice included — through a virtual microphone.
  • What they say reaches your headphones in your language, with the original turned down.
  • About 1.8 s from the end of a sentence to its translated voice (measured on an M1): two SpeechAnalyzers run at once with fast results, and each sentence is closed at a 0.5 s pause.
  • Chat-style view: a "…" bubble while someone speaks, and for every sentence its transcription · audio · total times.
  • Pick the microphone, the languages (those on your Mac first, 👤 where your Personal Voice speaks), and a voice for each side.
  • The virtual microphone is BlackHole (free, open source): MacDub installs it with one click, Homebrew included if needed.

Needs macOS 26 or later and headphones.

Google Meet extension

Settings › Extensions › Install in Chrome…

  • Switches Meet's microphone to the translated voice by itself while live translation runs, and gives yours back when it stops. Meet's mute is always respected.
  • Can post your translation in the meeting chat, and translates the chat messages the others write.
  • Talks only to MacDub on your Mac (127.0.0.1).

Until it is in the Chrome Web Store it installs in developer mode: the steps are in Settings › Extensions. After updating MacDub, press ↻ on the extension's card in chrome://extensions.

History

  • Dubbing and Live translation tabs.
  • Conversations are saved with who said what, their timings, and both sides' audio in one take. Play them back, tap a sentence to jump to it, and export them as audio + subtitles, .srt, .md or .txt — each line says who spoke.
  • Your earlier sessions open as before.

Install

MacDub-0.4.1.dmg, or brew upgrade --cask macdub. Not notarized yet: right-click › Open the first time. MacDub-Meet-extension-0.4.1.zip is the same extension that ships inside the app.

MacDub 0.4.0

Choose a tag to compare

@lordbasex lordbasex released this 24 Sep 04:41

Dub with your own voice

MacDub can now speak with the Personal Voice you recorded in System Settings › Accessibility › Personal Voice. Allow it once in Settings › Voice › Personal Voice › Allow…, and it appears first in the voice list (👤). Available on every macOS MacDub runs on (Personal Voice exists since macOS 14). A Personal Voice speaks the languages macOS made it available in. Apps cannot create one, so Create in System Settings… opens the pane where you record it.

SFSpeechRecognizer: fewer lost words, whole sentences

SFSpeechRecognizer is the only engine on macOS 15 and the fallback on macOS 26+. Its segmentation was rewritten. On the 30-minute benchmark, same audio and Mac as 0.3.1 (report):

0.3.1 0.4.0
Words lost 14.7 % 7.1 %
Word error rate 36.3 % 22.9 %
Sentences spoken whole 55 % 61 %
Latency, median · p90 · max 1.1 · 3.2 · 22.3 s 1.0 · 2.4 · 8.9 s
Words spoken twice 7 0
  • A transcript the recognizer restarts inside a task after a pause is no longer lost, and a late revision of it is no longer spoken again.
  • Rotated recognition runs finish their audio instead of being cancelled, so no words are dropped at the seam.
  • Sentence ends also come from pauses in the audio; a pause in the text alone no longer restarts recognition while someone is still talking.

SpeechAnalyzer (macOS 26+) is unchanged.

Fixes

  • Segments starting with a stray comma, or made of a lone period, are gone.
  • A long unpunctuated sentence could wait 13 s before being spoken; it now goes out after at most 8 s.

Install

MacDub-0.4.0.dmg, or brew upgrade --cask macdub. Not notarized yet: right-click › Open the first time.

MacDub 0.3.1

Choose a tag to compare

@lordbasex lordbasex released this 23 Sep 07:44

Security fixes (MCP server)

Update if you use MacDub's MCP server, especially its HTTP transport.

  • DNS rebinding: the HTTP transport accepted any origin containing localhost (http://localhost.evil.com). Host and Origin must now name this machine exactly.
  • Path traversal: delete_session, get_session and export_session used the session id as a path, so an id like ../../Claude/claude_desktop_config could delete another app's settings. Ids must now be session ids.
  • get_audio_snippet deleted whatever path named before writing; it now writes .wav files only and needs overwrite: true to replace one.
  • A negative Content-Length crashed the HTTP server; requests are now bounded (4 MB).
  • Add to Claude Desktop no longer overwrites a config it can't parse (it used to drop your other servers), and keeps a backup.

Fixes

  • SpeechAnalyzer: a sentence it holds back (it sometimes merges two) is spoken after at most ~10–12 s instead of up to 20 s — benchmark update.
  • Summaries with Claude Code or Codex: no more hang with long CLI output, and a CLI that exits early (not logged in) can no longer crash MacDub.
  • Stopping while dubbing is still starting no longer leaves capture running.
  • A data race between audio capture and the SpeechAnalyzer → SFSpeechRecognizer fallback.

Accessibility

VoiceOver now announces the sidebar, Start/Stop, Settings, every icon button and the controls of the Dubbing, Subtitles and AI & MCP screens by name (they were announced as "button").

Install

MacDub-0.3.1.dmg, or brew upgrade --cask macdub. Not notarized yet: right-click › Open the first time.

MacDub 0.3.0

Choose a tag to compare

@lordbasex lordbasex released this 23 Sep 06:07

Whole sentences with SpeechAnalyzer

On macOS 26, MacDub now translates and speaks whole, corrected sentences instead of fragments, so the dubbed voice no longer sounds cut.

SpeechAnalyzer's volatile results arrive fast but rough: doubled pieces ("the speecheech analyzer"), words cut mid-way, sentences split wherever a burst of text ended. Its final result for the same audio is a whole, punctuated sentence. MacDub now segments finals only and shows the volatile text live; if a final is late, sentences the volatile text has already completed go out after 5 s.

Measured on an Apple M1 with 28 minutes of speech (report):

SpeechAnalyzer SFSpeechRecognizer
Sentences spoken whole 92 % (was 35 %) 49 %
Word error rate 9.7 % 31.6 %
Questions ending in ? 19/26 5/22
Latency, median · p90 2.3 s · 4.1 s 1.1 s · 3.1 s
Speech service CPU 5.4 % 22.7 %

Fixes

  • Crash with SpeechAnalyzer (EXC_BREAKPOINT in SpeechRecognizerWorker) when audio arrived before the analyzer's format was known.
  • Apple Intelligence summaries of long sessions failed with exceededContextWindowSize; the transcript is now fitted to the model's 4,096-token window with its own tokenizer.
  • Decimals follow your locale (3,2 s), language names read español (es) instead of español (latino, España), the voice menu no longer repeats the quality in English, missing Spanish/Portuguese translations added.

New

  • Settings › Permissions › Reset permissions and relaunch — forgets MacDub's Screen & System Audio Recording and Speech Recognition grants and lets macOS ask again, no Terminal needed.
  • Only one MacDub at a time; relaunches (also after a factory reset) wait for the old copy to quit.
  • Recognition benchmark anyone can run — make benchmark writes docs/benchmarks/<date>-<chip>.md. Results from M2, M3, M4, M5 and M6 are very welcome as pull requests.
  • MCP export_session also accepts id.
  • CI builds and tests against the macOS 15, 26 and 27 SDKs.

Install

Download MacDub-0.3.0.dmg, open it and drag MacDub to Applications, or brew install --cask macdub from the tap. Not notarized yet: right-click › Open the first time. macOS 15 or later; SpeechAnalyzer and Apple Intelligence need macOS 26.

MacDub 0.2.0

Choose a tag to compare

@lordbasex lordbasex released this 23 Sep 01:57

Full Changelog: v0.1.0...v0.2.0

MacDub 0.1.0

Choose a tag to compare

@lordbasex lordbasex released this 23 Sep 00:32