ultimatevocalremovergui/README.md

194 lines
15 KiB
Markdown
Raw Normal View History

2020-12-15 00:04:46 +01:00
# Ultimate Vocal Remover GUI v4.0.1
2020-11-23 09:13:52 +01:00
<img src="https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/master/img/UVRV4.png" />
2020-07-20 23:47:52 +02:00
2020-11-13 12:54:31 +01:00
[![Release](https://img.shields.io/github/release/anjok07/ultimatevocalremovergui.svg)](https://github.com/anjok07/ultimatevocalremovergui/releases/latest)
[![Downloads](https://img.shields.io/github/downloads/anjok07/ultimatevocalremovergui/total.svg)](https://github.com/anjok07/ultimatevocalremovergui/releases)
2020-11-06 10:45:38 +01:00
2020-11-13 12:54:31 +01:00
## About
2020-11-09 11:16:50 +01:00
2020-11-20 04:35:51 +01:00
This application is a GUI version of the vocal remover AI created and posted by GitHub user [tsurumeso](https://github.com/tsurumeso). This version also comes with a total of 11 high performance models trained by me. You can find tsurumeso's original command line version [here](https://github.com/tsurumeso/vocal-remover).
2020-11-13 12:54:31 +01:00
- **Special Thanks**
- [tsurumeso](https://github.com/tsurumeso) - The engineer who authored the AI code. Thank you for the hard work and dedication you put into the AI application this GUI is built around!
- [DilanBoskan](https://github.com/DilanBoskan) - The main GUI code contributor. Thank you for helping bring this GUI to life! Your hard work and continued support is greatly appreciated.
2020-07-20 23:47:52 +02:00
## Installation
2020-11-13 12:54:31 +01:00
The application was made with Tkinter for cross-platform compatibility, so it should work with Windows, Mac, and Linux systems. However, this application has only been tested on Windows 10 & Linux Ubuntu.
2020-07-20 23:47:52 +02:00
### Install Required Applications & Packages
2020-11-13 12:54:31 +01:00
1. Download & install Python 3.7 [here](https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe) (Windows link)
- **Note:** Ensure the *"Add Python 3.7 to PATH"* box is checked
2020-12-10 07:20:41 +01:00
2. Once Python has installed, download **Ultimate Vocal Remover GUI Version 4.0.1** [here](https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v4.0.1/UVR_V4GUI_All_IN_ONE_12_10.zip)
2020-11-13 12:54:31 +01:00
3. Place the UVR-V4GUI folder contained within the *.zip* file where ever you wish.
- Your documents folder or home directory is recommended for easy access.
4. From the UVR-V4GUI directory, open the Windows Command Prompt and run the following installs -
2020-11-09 11:16:50 +01:00
```
2020-11-13 12:54:31 +01:00
pip install --no-cache-dir -r requirements.txt
2020-11-10 03:58:56 +01:00
pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
2020-11-09 11:16:50 +01:00
```
2020-11-13 12:54:31 +01:00
### FFmpeg
FFmpeg must be installed and configured in order for the application to be able to process any track that isn't a *.wav* file. Instructions for installing FFmpeg can be found on YouTube, WikiHow, Reddit, GitHub, and many other sources around the web.
- **Note:** If you are experiencing any errors when attempting to process any media files that are not in the *.wav* format, please ensure FFmpeg is installed & configured correctly.
### Running the Vocal Remover GUI & Models
- Open the file labeled *'VocalRemover.py'*.
- It's recommended that you create a shortcut for the file labeled *'VocalRemover.py'* to your desktop for easy access.
- **Note:** If you are unable to open the *'VocalRemover.py'* file, please go to the [**troubleshooting**](https://github.com/Anjok07/ultimatevocalremovergui/tree/beta#troubleshooting) section below.
- **Note:** All output audio files will be in the *'.wav'* format.
## Option Guide
### Choose AI Engine:
- This option allows you to toggle between tsurumeso's v2 & v4 AI engines.
- **Note:** Each engine comes with it's own set of models.
- **Note:** The TTA option and the ability to set the N_FFT value is limited to the v4 engine only.
### Model Selections:
The v2 & v4 AI engines use different sets of models. When selected, the models available for v2 or v4 will automatically populate within the model selection dropdowns.
- **Choose Main Model** - Here is where you choose the main model to perform a deep vocal removal.
- Each of the models provided were trained on different parameters, though they can convert tracks of all genres.
- Each model differs in the way they process given tracks.
- The [*'Model Test Mode'*](https://github.com/Anjok07/ultimatevocalremovergui/tree/beta#checkboxes) option makes it easier for the user to test different models on given tracks.
- **Choose Stacked Model** - These models are meant to clean up vocal artifacts from instrumental outputs.
- The stacked models provided are only meant to process instrumental outputs created by a main model.
- Selecting the [*'Stack Passes'*](https://github.com/Anjok07/ultimatevocalremovergui/tree/beta#checkboxes) option will enable you to select a stacked model to run with a main model.
- If you wish to only run a stacked model on a track, make sure the [*'Stack Conversion Only'*](https://github.com/Anjok07/ultimatevocalremovergui/tree/beta#checkboxes) option is checked.
- The wide range of main model/stacked model combinations gives the user more flexibility in discovering what model blend works best for the track(s) they are proessing.
- To reiterate, the [*'Model Test Mode'*](https://github.com/Anjok07/ultimatevocalremovergui/tree/beta#checkboxes) option streamlines the process of testing different main model/stacked model combinations on a given track. More information on this option can be found in the next section.
### Checkboxes
- **GPU Conversion** - Selecting this option ensures the GPU is used to process conversions.
- **Note:** This option will not work if you don't have a Cuda compatible GPU.
- Nividia GPU's are most compatible with Cuda.
- **Note:** CPU conversions are much slower compared to those processed through the GPU.
- **Post-process** - This option can potentially identify leftover instrumental artifacts within the vocal outputs. This option may improve the separation on *some* songs.
- **Note:** Having this option selected can potentially have an adverse effect on the conversion process, depending on the track. Because of this, it's only recommended as a last resort.
- **TTA** - This option performs Test-Time-Augmentation to improve the separation quality.
- **Note:** Having this selected will increase the time it takes to complete a conversion.
- **Note:** This option is ***not*** compatible with the *v2* AI engine.
- **Output Image** - Selecting this option will include the spectrograms in *.jpg* format for the instrumental & vocal audio outputs.
- **Stack Passes** - This option activates the stacked model conversion process and allows the user to set the number of times a track runs through a stacked model.
- **Note:** Unless you have the *'Save All Stacked Outputs'* option selected, the following outputs will be saved -
2020-12-08 06:10:52 +01:00
- Instrumental generated after the last stack pass
2020-11-13 12:54:31 +01:00
- The vocal track generated by the main model
- **Note:** The best range is 3-7 passes. 8 or more passes can result in degraded sound quality for the track.
- **Stack Conversion Only** - Selecting this option allows the user to bypass the main model and run a track through a stacked model only.
- **Save All Stacked Outputs** - Having this option selected will auto-generate a new folder named after the track being processed to your *'Save to'* path. The new folder will contain all of the outputs that were generated after each stack pass. The amount of audio outputs will depend on the number of stack passes chosen.
- **Note:** Each output audio file will be appended with the number of passes it has had.
- **Example:** If 5 stack passes are chosen, the application will provide you with all 5 pairs of audio outputs generated after each pass, if this option is enabled.
- This option can be very useful in determining the optimal number of passes needed to clean a track.
- The *'stacked vocal'* tracks will contain the audio of the vocal artifacts that were removed from the instrumental.
- These files can be used to verify artifact removal.
- **Model Test Mode** - This option makes it easier for users to test the results of different models, and model combinations, by eliminating the hassel of having to manually change the filenames and/or create new folders when processing the same track through multiple models. This option structures the model testing process.
- When *'Model Test Mode'* is selected, the application will auto-generate a new folder in the *'Save to'* path you have chosen.
- The new auto-generated folder will be named after the model(s) selected.
- The output audio files will be saved to the auto-generated directory.
- The filenames for the instrumental & vocal outputs will have the selected model(s) name(s) appended to them.
### Parameter Values
All models released here will have the values they were trained with appended to the end of their filenames like so, **'MGM-HIGHEND_sr44100_hl512_w512_nf2048.pth'**. The *'_sr44100_hl512_w512_nf2048'* portion automatically sets the *SR*, *HOP LENGNTH*, *WINDOW SIZE*, & *N_FFT* values within the application. If there are no values appended to the end of a selected model filename, the *SR*, *HOP LENGNTH*, *WINDOW SIZE*, & *N_FFT* fields will be editable and auto-populate with default values.
2020-11-25 04:10:54 +01:00
- **Note** - The WINDOW_SIZE value is universal. The smaller your window size, the better your conversions will be. However, a smaller window size means longer conversions times and heavier resource usage.
- Here are the recommended window size values -
- **1024** - Low conversion quality, shortest conversion time, low resource usage
2020-11-25 04:12:04 +01:00
- **512** - Average conversion quality, average conversion time, normal resource usage
2020-11-25 04:10:54 +01:00
- **320** - Better conversion quality, long conversion time, high resource usage
- **272** - Best conversion quality, longest conversion time, heavy resource usage
- *272 is the lowest window size value possible.*
2020-11-25 04:09:39 +01:00
2020-11-13 12:54:31 +01:00
- **Default Values:**
- **SR** - 44100
- **HOP LENGTH** - 1024
2020-11-23 08:54:30 +01:00
- **WINDOW SIZE** - 320
2020-11-13 12:54:31 +01:00
- **N_FFT** - 2048
### Other Buttons:
- **Add New Model** - This button will automatically open the models folder.
- **Note:** If you are adding a new model, make sure to add it accordingly based on the AI engine it was trained on.
- **Example:** If you wish to add a model trained on the v4 engine, add it to the correct folder located in the 'models/v4/' directory.
- **Note:** The application will automatically detect any models added the correct directories without needing a restart.
- **Restart Button** - If the application hangs for any reason, you can hit the circular arrow button immediately to the right of the *'Start Conversion'* button.
## Models Included
2020-07-20 23:47:52 +02:00
2020-11-13 12:54:31 +01:00
All of the models included in the release were trained on large datasets containing diverse sets of music genres.
**PLEASE NOTE:** Do not change the name of the models provided! The required parameters are specified and appended to the end of the filenames.
Here's a list of the models included within the package -
- **v4 AI Engine**
- **Main Models**
2020-11-23 08:54:30 +01:00
- **MGM_MAIN_v4_sr44100_hl512_nf2048.pth** - This is the main model that does an excellent job removing vocals from most tracks.
- **MGM_LOWEND_A_v4_sr32000_hl512_nf2048.pth** - This model focuses a bit more on removing vocals from lower frequencies.
- **MGM_LOWEND_B_v4_sr33075_hl384_nf2048.pth** - This is also a model that focuses on lower end frequencies, but trained with different parameters.
2020-12-07 03:24:32 +01:00
- **MGM_LOWEND_C_v4_sr16000_hl512_nf2048.pth** - This is also a model that focuses on lower end frequencies, but trained on a very low sample rate.
2020-11-13 12:54:31 +01:00
- **MGM_HIGHEND_v4_sr44100_hl1024_nf2048.pth** - This model slightly focuses a bit more on higher end frequencies.
2020-11-23 08:54:30 +01:00
- **MODEL_BVKARAOKE_by_aufr33_v4_sr33075_hl384_nf1536.pth** - This is a beta model that removes main vocals while leaving background vocals intact.
2020-11-13 12:54:31 +01:00
- **Stacked Models**
2020-11-23 08:54:30 +01:00
- **StackedMGM_MM_v4_sr44100_hl512_nf2048.pth** - This is a strong vocal artifact removal model. This model was made to run with *'MGM_MAIN_v4_sr44100_hl512_nf2048.pth'*. However, any combination may yield a desired result.
- **StackedMGM_MLA_v4_sr32000_hl512_nf2048.pth** - This is a strong vocal artifact removal model. This model was made to run with *'MGM_MAIN_v4_sr44100_hl512_nf2048.pth'*. However, any combination may yield a desired result.
- **StackedMGM_LL_v4_sr32000_hl512_nf2048.pth** - This is a strong vocal artifact removal model. This model was made to run with *'MGM_LOWEND_A_v4_sr32000_hl512_nf2048.pth'*. However, any combination may yield a desired result.
2020-11-13 12:54:31 +01:00
- **v2 AI Engine**
- **Main Models**
- **Multi_Genre_Model_v2_sr44100_hl1024_w512.pth** - This model yields excellent results for most tracks processed through it.
- **Stacked Models**
2020-11-23 08:54:30 +01:00
- **StackedRegA_v2_sr44100_hl1024.pth** - This is a standard vocal artifact removal model.
- **StackedArg_v2_sr44100_hl1024.pth** - This model removes vocal artifacts a bit more aggressively, but may greatly degrade the audio quality of the output audio.
2020-11-13 12:54:31 +01:00
A special thank you to aufr33 for helping me expand the dataset used to train some of these models and for the helpful training tips.
## Other GUI Notes
- The application will automatically remember your *'save to'* path upon closing and reopening until it's changed.
- **Note:** The last directory accessed within the application will also be remembered.
- Multiple conversions are supported.
- The ability to drag & drop audio files to convert has also been added.
- Conversion times will greatly depend on your hardware.
- **Note:** This application will *not* be friendly to older or budget hardware. Please proceed with caution! Pay attention to your PC and make sure it doesn't overheat. ***We are not responsible for any hardware damage.***
## Troubleshooting
### Common Issues
- This application is not compatible with 32-bit versions of Python. Please make sure your version of Python is 64-bit.
- If FFmpeg is not installed, the application will throw an error if the user attempts to convert a non-WAV file.
### Issue Reporting
Please be as detailed as possible when posting a new issue. Make sure to provide any error outputs and/or screenshots/gif's to give us a clearer understanding of the issue you are experiencing.
If the *'VocalRemover.py'* file won't open *under any circumstances* and all other resources have been exhausted, please do the following -
1. Open the cmd prompt from the UVR-V4GUI directory
2. Run the following command -
2020-07-21 00:12:25 +02:00
```
2020-11-13 12:54:31 +01:00
python VocalRemover.py
2020-07-20 23:47:52 +02:00
```
2020-11-16 00:44:35 +01:00
3. Copy and paste the error output shown in the cmd prompt to the issues center on the GitHub repository.
2020-11-13 12:54:31 +01:00
## License
The **Ultimate Vocal Remover GUI** code is [MIT-licensed](LICENSE).
## Contributing
- For anyone interested in the ongoing development of **Ultimate Vocal Remover GUI** please send us a pull request and we will review it. This project is 100% open-source and free for anyone to use and/or modify as they wish.
2020-12-15 00:04:46 +01:00
- Please note that we do not maintain or directly support any of tsurumesos AI application code. We only maintain the development and support for the **Ultimate Vocal Remover GUI** and the models provided.
2020-11-13 12:54:31 +01:00
## References
- [1] Takahashi et al., "Multi-scale Multi-band DenseNets for Audio Source Separation", https://arxiv.org/pdf/1706.09588.pdf