Isolate parts of videos with speech and turn it into mp3 for voice clone training.
Go to file
Brian Fertig 62c4659486 intial commit 2026-08-25 19:04:05 -06:00
__pycache__ intial commit 2026-08-25 19:04:05 -06:00
assets intial commit 2026-08-25 19:04:05 -06:00
installer intial commit 2026-08-25 19:04:05 -06:00
GPU-upgrade.md intial commit 2026-08-25 19:04:05 -06:00
README.md intial commit 2026-08-25 19:04:05 -06:00
requirements.txt intial commit 2026-08-25 19:04:05 -06:00
voicegrab.py intial commit 2026-08-25 19:04:05 -06:00

README.md

VoiceGrab

Cut a time range out of any video file and export a clean, loudness-normalized MP3 voice sample — ready to use for AI voice training / cloning.

Voice / audio file: [ kage.mp4                    ] [Open…]
Start: 0:10.00   Stop: 0:35.00   [Load preview] [▶ Play range]
[x] Isolate voice (reduce background noise)     strength: 80%
Output MP3: [ .../kage_voicegrab.mp3            ] [Browse…]
──────────────────────────────────────────────────
[ Export MP3 ]

Features

  • Works with any container ffmpeg understands: mp4, mkv, mov, webm, avi, flv, m4a…
  • Isolate voice checkbox: STFT-based noise reduction (runs on CPU, no downloads, no GPU). Strength slider + a "stationary noise" mode for constant fans/hum.
  • Export is 320 kbps MP3, loudness-normalized to 16 LUFS (broadcast reference — good levels for voice-training datasets).
  • "▶ Play range" lets you audition the exact segment before saving.
  • Also a headless CLI (see below) for scripting/batch work.

Requirements

  • Python 3.10+
  • ffmpeg on your PATH (bundled automatically in installer builds)

Run from source

cd voicegrab2
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python voicegrab.py

CLI mode

voicegrab.py --cli input.mp4 10 35 output.mp3

Windows installer (single .exe + installer)

  1. pip install pyinstaller
  2. python voicegrab.py.spec is not needed — run:
    pyinstaller --onefile --windowed --name VoiceGrab ^
        --add-binary "C:\ffmpeg\bin\ffmpeg.exe;." ^
        --add-binary "C:\ffmpeg\bin\ffprobe.exe;." ^
        --icon assets/icon.ico voicegrab.py
    
  3. Build the installer with Inno Setup:
    "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\VoiceGrab.iss
    
    (Copy dist\VoiceGrab.exe to installer\ first — the script assumes dist\VoiceGrab.exe relative to the project root.)

Linux

  • AppImage: installer/build_linux.sh (needs PyInstaller + linuxdeploy or appimagetool + your ffmpeg in PATH).
  • Debian/Ubuntu: just run the PyInstaller binary, or install ffmpeg via apt and run from source. A .desktop entry template is in installer/.
  • Flatpak is also a fine route if you want it in your store.

Notes on voice-isolation quality

The built-in reducer is classic DSP (spectral gating / STFT noise estimation) — great for fan, hum, light room tone. For music or heavy background speech, a deep-learning model (e.g. Demucs / UVR) gives better separation but costs ~12 GB of downloads and runs far slower without a GPU. For voice training samples, the DSP route is usually more than enough, and it keeps the installer small and startup instant.