Retake

io.github.yyert123由 GitHub 帳號 yyert123 發布v0.1.1更新於 Nov 8, 2026

Fix a voiceover mistake without re-recording: re-voice one sentence in your voice and splice it in.

已驗證STDIO僅桌面媒體與設計AI 與機器學習

概覽

AI 產生的概覽

修正配音口誤:用同一個音色重錄一句話,並以相符的響度、音色與室內底噪拼接回原錄音。

可以做什麼
  • 把錄音轉寫成附時間戳的編號句子,轉寫結果快取在檔案旁
  • 依指定詞句或行號找出目標句子,遇到重複出現時拒絕猜測
  • 透過 Miragea 以已儲存音色、參考片段或自動截取的參考重新合成該句
  • 將補丁與原錄音對齊,匯出 24 位元 WAV、JSON 剪輯清單與可匯入剪輯軟體的標記 CSV
適用情境
適合旁白或配音出現錯詞、錯句而重錄不切實際時,需要一份修補後的音訊以及可直接匯入任何剪輯軟體的標記。也適合讓助理對本機音訊檔做小幅語音修正。
執行需求
以 stdio 方式在本機執行,可透過 uvx 或 pip 安裝的指令啟動。需要 Python 3.9+、PATH 中的 ffmpeg,以及透過 MIRAGEA_API_KEY 環境變數提供的 Miragea API 金鑰。可選的 Hugging Face 參考模式需額外安裝並需要 HF_TOKEN。轉寫與語音生成需要網路連線。
安裝前請注意
使用付費的 Miragea 帳戶:轉寫依音訊秒數計費,每次修補依新句子的字元數計費。金鑰僅從 MIRAGEA_API_KEY 讀取。可選的 host 模式會把約九秒的原錄音上傳到公開的 Hugging Face 資料集。聲音複製僅應用於自己的旁白或獲授權編輯的錄音,並需取得說話者同意。發布前請先試聽。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Retake,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Retake: fix a voiceover mistake in your own voice (open-source Overdub alternative)

Said "Wednesday" instead of "Thursday"? Don't re-record. Retake re-voices only the sentence you changed, in the same voice, and splices it back into your recording with matched loudness, tone (EQ) and room tone. Works with any editor (Premiere, Resolve, Final Cut, Audacity, CapCut) because it simply gives you a fixed WAV plus edit markers. CLI for humans, MCP server for AI agents. Voice engine: Miragea.

bash
pip install retake-voexport MIRAGEA_API_KEY=your_key            # https://miragea.airetake transcribe take.wav                 # numbered sentences + timestamps (cached, pay once)retake fix take.wav --replace "Wednesday" --with "Thursday" --voice YOUR_VOICE_ID# -> take.fixed.wav, take.fixed.edits.json, take.fixed.markers.csv

Status (v0.1.1, 2026-11-08): transcription, sentence finding, pause-snapped cut points, EQ/loudness/ room-tone matching, splicing, exports, CLI and MCP server are tested (9 offline tests + live Miragea transcription on real recordings). A listen-to-it before/after demo will be added to the demo page as soon as the voice side is verified end to end.

What it does automatically

  1. Transcribes the take with Miragea speech recognition and splits it into sentences (initials like "O. Henry" handled). The transcript is cached next to the file, so later fixes cost nothing extra.
  2. Finds the sentence that contains your words; refuses to guess if they appear twice.
  3. Finds real cut points: sentence edges are snapped to the quietest stretch of the pause around them, so cuts never land inside a word, even though recognition segments can split words.
  4. Re-voices the edited sentence with Miragea in your saved voice, or cloned from a reference clip.
  5. Matches it to the take: trims silence, matches the long-term spectrum (EQ, 1/3-octave smoothed, clamped), matches speech loudness, lays your own room tone under it, equal-power crossfades the seams.
  6. Exports a 24-bit WAV at the original sample rate and channels, a JSON edit list (old/new text, old/new times, gain), and a CSV of markers you can import into your editor. The original file is never modified.

Why Retake (honest comparison)

RetakeDescript Overdub / RegenerateDaVinci Resolve 21 Speech GeneratorReasonate (REAPER)Manual ElevenLabs workflow
PriceFree, MIT; pay-as-you-go voiceSubscriptionResolve Studio ($295)Free + ElevenLabs planElevenLabs plan
Works with your editorAny (WAV + markers)Only inside DescriptOnly inside ResolveOnly inside REAPERAny, by hand
Finds the line for youYes, by words or line numberYesNo, you place itYes (forced alignment)No
Cut points at real pausesAutomaticAutomaticManualAutomaticManual
Loudness matchAutomaticAutomaticManualAutomaticManual
EQ / tone matchAutomaticPartialManualNoManual (the most-cited pain)
Room tone under patchAutomaticPartialNoNoManual
Length per fixUp to 2,000 characters-~350 characters--
AI agents (MCP)Yes, retake-mcpNoNoNoNo
Voice engineMiragea (saved voice or clone)DescriptResolve built-in voices / custom WAVElevenLabs onlyElevenLabs

Sources: Resolve limits per davinciresolveclub.com; Reasonate per its README; the EQ-matching pain per an r/editors thread.

Choosing the voice

OptionWhenExample
--voice IDYou saved your voice in your Miragea account (best: consistent, no upload)--voice v_abc123
--ref-url URL --ref-text "..."You have a public clip of the same speaker; giving its exact words uses the cheaper 1x rate--ref-url https://raw.githubusercontent.com/you/voice/main/me.wav
--host hf:user/repoFully automatic: Retake cuts ~9 s of untouched speech from the take and uploads it to your public Hugging Face dataset (needs pip install "retake-vo[hf]" and HF_TOKEN)--host hf:me/voice-refs

Reference URLs must be public, served directly (no long signed redirects) and under 1,024 characters. Miragea has agreed to add a direct upload endpoint; when it ships, Retake will upload the clip from your take itself and these options become optional.

More examples

bash
# several fixes in one pass (each sentence re-voiced once)retake fix vo.mp3 --replace "twenty twenty-five" --with "twenty twenty-six" --replace "Jon" --with "John" --voice v1
# rewrite a whole sentence by its number from `retake transcribe`retake fix vo.wav --line 7 --say "Click Export, then choose MP4." --voice v1 -o vo.v2.wav
# keep each generated patch as its own file (for manual placement in a DAW)retake fix vo.wav --replace "fourty" --with "forty" --voice v1 --keep-patches

Use it from Claude, Cursor or Codex (MCP)

No install step needed with uv:

json
{ "mcpServers": { "retake": { "command": "uvx", "args": ["retake-vo"], "env": { "MIRAGEA_API_KEY": "your_key" } } } }

Or pip install retake-vo and use "command": "retake-mcp".

Then ask: "In ~/Videos/launch/vo.wav, change 'Wednesday' to 'Thursday' using my voice v_abc123." Tools: transcribe_take(path) and fix_line(path, old_words, new_words | line, new_sentence, voice_id | ref_url | host).

Python API

python
from retake import fix, transcribelines = transcribe("take.wav")["sentences"]res = fix("take.wav", [("Wednesday", "Thursday")], voice="v_abc123")print(res.output, res.edits[0].new_start)

FAQ

Will people hear the patch? Retake does everything an editor would do by hand: cut in the pause, match level, tone and room noise, crossfade. Quality still depends on the clone; a saved Miragea voice made from a clean 10-20 s sample of the same mic gives the closest match. Listen before you publish.

Does it change the rest of my audio? No. Everything outside the edited sentences is copied sample for sample; later audio shifts by the length difference, which the edit list and markers report.

What does it cost? Transcription: 3 Miragea points per second of audio, once per file (cached). Each fix: Miragea's per-character rate for the new sentence (1x with a saved voice or exact reference text).

Is my key safe? It is read from MIRAGEA_API_KEY only, never logged or written to disk.

Can I fix someone else's recording? Only with the speaker's consent. Retake is built for fixing your own narration or a talent's read you are licensed to edit.

Which formats? Anything ffmpeg reads (WAV, MP3, M4A, FLAC, MP4, MOV...). Output is WAV by default; use -o fixed.mp3 for MP3.

Error messages? Every error says what went wrong and how to fix it (missing key, ffmpeg not installed, word not found, word found twice, balance, rate limit). Re-running is always safe.

Requirements

Python 3.9+, ffmpeg on PATH, a Miragea API key.

Related

  • miragea-skills: Agent Skills for captions and Remotion narration.
  • HeadVox: script to voiceover with word-aligned captions.

MIT License.

來源:README.md,提交 4abcdb8

工具

2

transcribe_take

Transcribe a recorded voiceover (any audio/video file) and return its numbered sentences with start/end seconds. Cached next to the file, so calling it again is free.

輸入參數path必填

fix_line

Re-voice one sentence of a recorded voiceover in the same voice and splice it in seamlessly (Miragea voice engine; loudness, EQ and room tone matched). Either give old_words + new_words, or line (from transcribe_take) + new_sentence. Voice: voice_id (saved Miragea voice), ref_url (public clip of the speaker), or host="hf:user/repo" to auto-host a clip from the take on a public HF dataset. Returns the fixed file path and where the edit landed.

輸入參數hostlinepath必填outputref_urlref_textvoice_idnew_wordsold_wordsnew_sentence

版本歷史

1
  1. v0.1.1最新Nov 8, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分