VOICECLONE-QC is a Windows-first local voice conversion workflow built around RVC (Retrieval-based Voice Conversion). It prepares voice datasets locally, uses Google Drive as a bridge to an external Google Colab training notebook, and runs local RMVPE voice conversion from a browser-based LAN interface.
The project prioritizes reproducible training, audio quality, and keeping private assets on the local machine.
- Cleans voice datasets with Demucs and creates training-ready audio segments.
- Provides a Split Only mode for source material that is already clean.
- Uploads a Colab-ready
dataset/ZIP to Google Drive. - Watches
RVC_Outputon Google Drive and imports matching.pthand.indexmodel pairs into the local model bank. - Runs local RVC conversion with RMVPE pitch extraction.
- Produces 24-bit / 48 kHz WAV outputs.
- Includes a local audio toolbox for isolation, denoising, and restoration.
- Supports resumable Colab training with checkpoint backups stored on Google Drive.
- Provides visual progress feedback and completion alerts for long-running local tasks.
The Non-Colab Features page contains independent local processors. These tools do not require a Google Colab training session and do not modify the RVC model bank.
- Demucs dataset cleaning: isolates vocals before automatic slicing, normalization, and dataset export.
- Split Only: skips Demucs while retaining the automatic slicing and export workflow for sources that are already clean.
- Demucs vocal isolation: produces a voice-focused file without slicing. Its quality control trades processing time for additional separation passes.
- DeepFilterNet: applies adjustable-strength speech denoising for a faster, alternative cleanup pass.
- UVR: offers an alternative vocal-isolation pipeline and selectable source separation models, with a separate quality/speed control.
- Resemble Enhance: performs high-fidelity generative audio restoration. Solver selection and reconstruction quality allow slower, more careful restoration when required.
- VoiceFixer: restores degraded vocal recordings through selectable restoration modes.
Each processor writes a separately named WAV output, keeps the original input unchanged, and shows an active processing indicator while the task runs.
For controlled auditions, scripts/compare_rvc.py --model <model.pth> --guide <guide.wav>
creates five conversions of the same guide, changing only the index influence or
consonant protection relative to the baseline. An optional --reference <voice.wav>
adds a timbre reference. Outputs are placed in outputs/comparisons/ with an
ecouter.html listening page, original WAV files, and a parameter/measurement log.
Listening copies use matched integrated loudness through constant gain, without
compression or limiting; original renders remain available. A fixed random seed
reduces run-to-run variation. Like other outputs, these auditions are removed by
the application's explicit cache-clearing operation.
In the installed RVC runtime, lower Protect values preserve more of the original unvoiced features during index blending; 0.5 disables this protection. The interface help now reflects the implementation rather than the inverted upstream help text.
- A single-task queue prevents multiple heavy audio operations from competing for the same machine resources.
- The RVC conversion controls expose pitch transposition, index influence, and consonant/breath protection, while RMVPE remains the selected F0 method.
- The local model bank can be refreshed from the interface after Drive imports.
- The Colab notebook URL can be configured from the interface with either a Google Drive notebook file link or a direct Colab link.
- Transient folders can be cleared without deleting trained models, credentials, runtimes, or application settings.
Local audio files
-> VOICECLONE-QC preprocessing
-> Google Drive dataset ZIP
-> Google Colab RVC training
-> Google Drive RVC_Output
-> Local models_bank
-> Local RVC conversion
- Windows 10 or 11
- Python 3.11
- FFmpeg available on
PATH - Google Drive access and an OAuth client configured for the application
- An NVIDIA GPU is optional for local conversion; the application also supports CPU execution
- A Google Colab runtime for RVC model training
- Clone the repository into the intended local project directory.
- Create the Python environment using the setup script in
scripts/. - Copy
config/settings.example.jsontoconfig/settings.jsonand configure local paths and Google Drive OAuth settings. - Keep OAuth credentials, tokens, trained models, audio files, and runtime
downloads outside Git. The provided
.gitignoreis designed for this. - Start the application with
scripts/run_app.bat. - Open the local web interface at
http://localhost:7860/.
The Cloud > Espace Drive et archives locales panel provides this workflow:
- Finish training, retrieve the final model, and stop the Colab runtime.
- Click Archiver Drive localement. The three configured VOICECLONE folders
are downloaded into
archives_drive/on the project disk. Identical content shares one stored copy. Downloads and the complete snapshot are verified; interrupted downloads can be retried without downloading verified objects again. - Select that snapshot, confirm that Colab is stopped, and click Liberer Drive. This permanently removes only the unchanged files in that verified snapshot. It does not empty the Google Drive trash or delete folders. New or changed files block cleanup. Local models and archives remain available.
- To continue training later, select the snapshot and the actor name, then click
Remettre cette voix sur Drive. Wait for completion before running Colab
with
RUN_MODE=resumeand a larger total epoch count. Resume restores prepared training data and checkpoints; it does not need to upload the dataset ZIP again.
The local archive uses objects/ for content and snapshots/ for inventories.
Keep both directories together and include archives_drive/ in your disk backups.
It is excluded from Git and from the application's cache-clearing operation.
Archiving alone never removes Drive files. Cleanup is an explicit separate action
because it includes all three project folders, possibly containing several voices.
Identical dataset uploads are reused. Uploading different content under an existing name is refused until the old data is archived and removed, preventing silent replacement and accumulation of same-name datasets.
Bridge 1.3.0 keeps prepared data once and one verified, matching G/D checkpoint
pair. A new pair is uploaded and verified before it replaces the previous pair;
the temporary handover still needs space for both pairs. The steady-state duplicate
weights previously kept in experiment/ are eliminated. Resume also understands
v1.2.x backups and chooses the newest complete pair rather than an outdated
experiment copy. New runs refuse to overwrite an existing training backup.
The archive/checkpoint behavior is covered by python -m unittest discover -s tests -v.
Regenerate the notebook from the maintained helper with
python scripts/update_colab_notebook.py after changing colab/checkpoint_store.py.
The included VOICECLONE_QC_RVC_Bridge.ipynb is a reproducible training bridge.
Run the Google Drive mount cell immediately after its configuration cell to
authorize Drive before the longer dependency and model-download steps begin.
For a new model, run the notebook from top to bottom. For a stopped training
session, set RUN_MODE to resume; the notebook restores the experiment and
checkpoint backup from Google Drive before continuing toward the configured
total epoch count.
Do not commit the contents of config/settings.json, OAuth client files,
OAuth tokens, service-account credentials, trained models, audio datasets, or
generated outputs. These are intentionally ignored by Git.
The Gradio interface can be exposed on a LAN. Only grant access to trusted users and networks. Use voice data and trained models only with the necessary permission from the voice owner.
This is a practical local workflow rather than a hosted service. Training is performed externally in Google Colab; VOICECLONE-QC does not automate or control the Colab user interface.
The code and user interface are currently in French.
Conçu par Sébastien Bédard