Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 50 additions & 155 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,181 +1,76 @@
<div align="center">

<h1>AiVoiceClonerPRO</h1>
# BWAVoiceClonesPRO

<p align="center">
<img src="https://github.com/AryanVBW/kali-Linux-Android/releases/download/1/removebackground.png" height="150"><br>
An easy-to-use Voice Conversion framework based on VITS, powered by python
A simple and effective framework for voice conversion and cloning, powered by Python.
</p>



[![Open In Colab](https://img.shields.io/badge/Colab-F9AB00?style=for-the-badge&logo=googlecolab&color=525252)](https://colab.research.google.com/github/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb)
[![Licence](https://img.shields.io/github/license/RVC-Project/Retrieval-based-Voice-Conversion-WebUI?style=for-the-badge)](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/LICENSE)
[![Huggingface](https://img.shields.io/badge/🤗%20-Spaces-yellow.svg?style=for-the-badge)](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/)

[![Discord](https://img.shields.io/badge/RVC%20Developers-Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/HcsmBBGyVk)
[![Licence](https://img.shields.io/github/license/AaryanJ/BWAVoiceClonesPRO?style=for-the-badge)](https://github.com/AaryanJ/BWAVoiceClonesPRO/blob/main/LICENSE)
[![Issues](https://img.shields.io/github/issues/AaryanJ/BWAVoiceClonesPRO?style=for-the-badge&color=brightgreen)](https://github.com/AaryanJ/BWAVoiceClonesPRO/issues)
[![Pull Requests](https://img.shields.io/github/issues-pr/AaryanJ/BWAVoiceClonesPRO?style=for-the-badge&color=informational)](https://github.com/AaryanJ/BWAVoiceClonesPRO/pulls)

</div>

------
[**Changelog**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_EN.md) | [**FAQ (Frequently Asked Questions)**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/FAQ-(Frequently-Asked-Questions))

Realtime Voice Conversion Software using RVC : [w-okada/voice-changer](https://github.com/w-okada/voice-changer)


> The dataset for the pre-training model uses nearly 50 hours of high quality VCTK open source dataset.

> High quality licensed song datasets will be added to training-set one after another for your use, without worrying about copyright infringement.

> Please look forward to the pretrained base model of RVCv3, which has larger parameters, more training data, better results, unchanged inference speed, and requires less training data for training.

## Summary
This repository has the following features:
+ Reduce tone leakage by replacing the source feature to training-set feature using top1 retrieval;
+ Easy and fast training, even on relatively poor graphics cards;
+ Training with a small amount of data also obtains relatively good results (>=10min low noise speech recommended);
+ Supporting model fusion to change timbres (using ckpt processing tab->ckpt merge);
+ Easy-to-use Webui interface;
+ Use the UVR5 model to quickly separate vocals and instruments.
+ Use the most powerful High-pitch Voice Extraction Algorithm [InterSpeech2023-RMVPE](#Credits) to prevent the muted sound problem. Provides the best results (significantly) and is faster, with even lower resource consumption than Crepe_full.
+ AMD/Intel graphics cards acceleration supported.
+ Intel ARC graphics cards acceleration with IPEX supported.

## Preparing the environment
The following commands need to be executed in the environment of Python version 3.8 or higher.

(Windows/Linux)
First install the main dependencies through pip:
```bash
# Install PyTorch-related core dependencies, skip if installed
# Reference: https://pytorch.org/get-started/locally/
pip install torch torchvision torchaudio

#For Windows + Nvidia Ampere Architecture(RTX30xx), you need to specify the cuda version corresponding to pytorch according to the experience of https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/issues/21
#pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

#For Linux + AMD Cards, you need to use the following pytorch versions:
#pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2
```

Then can use poetry to install the other dependencies:
```bash
# Install the Poetry dependency management tool, skip if installed
# Reference: https://python-poetry.org/docs/#installation
curl -sSL https://install.python-poetry.org | python3 -

# Install the project dependencies
poetry install
```

You can also use pip to install them:
```bash
---

for Nvidia graphics cards
pip install -r requirements.txt
This project provides a beginner-friendly toolkit for experimenting with voice cloning. It is designed to be easy to set up and run, making voice conversion accessible to everyone. This project is actively participating in Hacktoberfest 2025!

for AMD/Intel graphics cards on Windows (DirectML):
pip install -r requirements-dml.txt
## ✨ Features

for Intel ARC graphics cards on Linux / WSL using Python 3.10:
pip install -r requirements-ipex.txt
* **High-Quality Voice Cloning:** Leverages modern voice conversion models to produce realistic results.
* **Simple Command-Line Interface:** Easy to run directly from your terminal.
* **Custom Audio Input:** Clone voices from your own `.wav` or `.mp3` files.
* **Beginner-Friendly:** A straightforward codebase that is easy to understand and modify.

for AMD graphics cards on Linux (ROCm):
pip install -r requirements-amd.txt
```
## 🚀 Installation

------
Mac users can install dependencies via `run.sh`:
```bash
sh ./run.sh
```
Follow these steps to get the project running on your local machine.

## Preparation of other Pre-models
RVC requires other pre-models to infer and train.
### Prerequisites

You need to download them from our [Huggingface space](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/).
* Python 3.8 or higher
* Git command-line tools

Here's a list of Pre-models and other files that RVC needs:
```bash
./assets/hubert/hubert_base.pt
### Steps

./assets/pretrained
1. **Clone the repository:**
Open your terminal and clone the project to your computer.
```bash
git clone [https://github.com/AaryanJ/BWAVoiceClonesPRO.git](https://github.com/AaryanJ/BWAVoiceClonesPRO.git)
cd BWAVoiceClonesPRO
```

./assets/uvr5_weights
2. **Create a Virtual Environment:**
It's highly recommended to use a virtual environment to manage dependencies.
```bash
python3 -m venv venv
source venv/bin/activate
```
*(On Windows, the activation command is `venv\Scripts\activate`)*

Additional downloads are required if you want to test the v2 version of the model.
3. **Install Dependencies:**
Install all the required Python packages using pip.
```bash
pip install -r requirements.txt
```

./assets/pretrained_v2
## 💻 Usage Examples

If you want to test the v2 version model (the v2 version model has changed the input from the 256 dimensional feature of 9-layer Hubert+final_proj to the 768 dimensional feature of 12-layer Hubert, and has added 3 period discriminators), you will need to download additional features
Here is a basic example of how to use the tool from a Python script.

./assets/pretrained_v2
```python
# main.py
from voice_cloner import Cloner

#If you are using Windows, you may also need these two files, skip if FFmpeg and FFprobe are installed
ffmpeg.exe
# Initialize the cloner
cloner = Cloner()

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffmpeg.exe

ffprobe.exe

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffprobe.exe

If you want to use the latest SOTA RMVPE vocal pitch extraction algorithm, you need to download the RMVPE weights and place them in the RVC root directory

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/rmvpe.pt

For AMD/Intel graphics cards users you need download:

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/rmvpe.onnx

```

Intel ARC graphics cards users needs to run `source /opt/intel/oneapi/setvars.sh` command before starting Webui.

Then use this command to start Webui:
```bash
python infer-web.py
```

If you are using Windows or macOS, you can download and extract `RVC-beta.7z` to use RVC directly by using `go-web.bat` on windows or `sh ./run.sh` on macOS to start Webui.

## ROCm Support for AMD graphic cards (Linux only)
To use ROCm on Linux install all required drivers as described [here](https://rocm.docs.amd.com/en/latest/deploy/linux/os-native/install.html).

On Arch use pacman to install the driver:
````
pacman -S rocm-hip-sdk rocm-opencl-sdk
````

You might also need to set these environment variables (e.g. on a RX6700XT):
````
export ROCM_PATH=/opt/rocm
export HSA_OVERRIDE_GFX_VERSION=10.3.0
````
Also make sure your user is part of the `render` and `video` group:
````
sudo usermod -aG render $USERNAME
sudo usermod -aG video $USERNAME
````
After that you can run the WebUI:
```bash
python infer-web.py
```

## Credits
+ [RVC-Projects](https://github.com/RVC-Project)
+ [ContentVec](https://github.com/auspicious3000/contentvec/)
+ [VITS](https://github.com/jaywalnut310/vits)
+ [HIFIGAN](https://github.com/jik876/hifi-gan)
+ [Gradio](https://github.com/gradio-app/gradio)
+ [FFmpeg](https://github.com/FFmpeg/FFmpeg)
+ [Ultimate Vocal Remover](https://github.com/Anjok07/ultimatevocalremovergui)
+ [audio-slicer](https://github.com/openvpi/audio-slicer)
+ [Vocal pitch extraction:RMVPE](https://github.com/Dream-High/RMVPE)
+ The pretrained model is trained and tested by [yxlllc](https://github.com/yxlllc/RMVPE) and [RVC-Boss](https://github.com/RVC-Boss).

## Thanks to all contributors for their efforts
<a href="https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/graphs/contributors" target="_blank">
<img src="https://contrib.rocks/image?repo=RVC-Project/Retrieval-based-Voice-Conversion-WebUI" />
</a>
# Define the input and output paths
source_audio = "path/to/your/audio.wav"
output_path = "cloned_voices/new_voice.wav"

# Clone the voice
print(f"Cloning voice from {source_audio}...")
cloner.clone(source_audio, output_path)
print(f"Voice successfully cloned and saved to {output_path}")