https://github.com/sinhaankur/voice-harvester
Extract a clean, isolated voice from any video/audio file — ready for AI voice cloning (XTTS, RVC, ElevenLabs). Drag-and-drop app + CLI.
https://github.com/sinhaankur/voice-harvester
ai audio demucs desktop-app elevenlabs ffmpeg python rvc speech tts voice-cloning voice-extraction xtts
Last synced: 4 days ago
JSON representation
Extract a clean, isolated voice from any video/audio file — ready for AI voice cloning (XTTS, RVC, ElevenLabs). Drag-and-drop app + CLI.
- Host: GitHub
- URL: https://github.com/sinhaankur/voice-harvester
- Owner: sinhaankur
- License: other
- Created: 2026-06-19T20:58:22.000Z (16 days ago)
- Default Branch: main
- Last Pushed: 2026-06-19T21:08:21.000Z (16 days ago)
- Last Synced: 2026-06-19T23:06:56.004Z (16 days ago)
- Topics: ai, audio, demucs, desktop-app, elevenlabs, ffmpeg, python, rvc, speech, tts, voice-cloning, voice-extraction, xtts
- Language: Python
- Size: 9.77 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VoiceHarvester
A small drag-and-drop desktop app that pulls a clean, isolated **voice** out of
your video and audio files and saves it as a WAV that's ready to feed into AI
voice-cloning tools (ElevenLabs, Play.ht, RVC, XTTS, and similar).
Drop in as many files as you like — it processes them in a batch and can even
stitch them into one combined sample for better cloning results.
---
## What it does
For each file it:
1. Extracts the audio track.
2. Isolates the spoken voice — using **Demucs** (deep-learning separation) if you
install it, otherwise an **ffmpeg** denoise/clean-up chain that always works.
3. Cleans and normalizes the result to a **mono 44.1 kHz 16-bit WAV**, the format
cloning services prefer.
Output files are named `_voice.wav`. With the merge option on, you also
get `combined_voice_sample.wav`.
---
## Requirements
**ffmpeg** must be installed (the app uses it under the hood):
- macOS: `brew install ffmpeg`
- Windows: `winget install Gyan.FFmpeg`
- Linux: `sudo apt install ffmpeg`
**Python 3.9+**, then optionally install the extras:
```bash
pip install -r requirements.txt
```
- `tkinterdnd2` enables drag-and-drop. Without it, the app still works via the
**Add files...** button.
- `demucs` (commented out in requirements) gives the best voice isolation but is
a large download. Enable it by uncommenting the line and re-running pip.
---
## Run it
```bash
python app.py
```
Then drag files onto the window (or click **Add files...**), pick an output
folder, and click **Extract Voice**.
### Command-line version
For folders or automation, skip the GUI:
```bash
python cli.py /path/to/videos -o out/ --merge
```
---
## Tips for good cloning results
- Aim for **1–2+ minutes** of clear speech total. More clean audio = better clone.
- Prefer clips with little background music or noise.
- Use the **merge** option to combine several short clips into one sample.
---
## A note on consent
Cloning a real person's voice should be done with their consent, or — for a
memorial — in line with what your family is comfortable with. Reputable cloning
services require you to confirm you have the right to use the voice.