File size: 7,251 Bytes
c6740a6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
---
license: mit
---
# <h1 align="center"><b> [NeoRVC 🎵](https://github.com/TheNeodev/NeoRVC.git) </b></h1>
<div align="center">
<img src="https://count.nett.moe/get/foo/img?theme=gelbooru" alt="Gelbooru counter"></div>
</div>
---
[](https://github.com/TheNeodev/NeoRVC/LICENSE)
[](https://colab.research.google.com/drive/1Khdhc_96g_W271aeYpLIXI3CxMl6QYdQ?usp=sharing)
---
NeoRVC is an enhanced extension of [AIcoverGen](https://github.com/SociallyIneptWeeb/AICoverGen), designed to create AI-generated song covers using any RVC v2 trained voice from YouTube videos or local audio files. Perfect for developers integrating singing functionality into AI assistants, chatbots, or VTubers, and for fans who want their favorite characters to sing their favorite songs.
</div>
> [!WARNING]
> This project will rarely get updates because I'm tired of working alone, open PR if you want improve this project.
## Features
- **User-Friendly WebUI**: Simplified voice model conversions and downloads.
- **Advanced Pitch Detection**: Supports hybrid methods (rmvpe, crepe, fcpe) for precise vocal conversions.
- **Flexible Input Options**: Generate covers from YouTube URLs or local audio files.
- **Customizable Outputs**: Choose between full song or vocals-only output, with options for wav or mp3 formats.
- **Voice Model Management**: Download public voice models with search/tag filters or upload locally trained RVC v2 models.
- **Enhanced Audio Controls**: Adjust pitch, reverb, volume for main/backup vocals and instrumentals, and apply advanced RVC settings (filter radius, RMS mix rate, protect).
- **CLI Support**: Perform inference and model downloads via command-line interface.
- **Local Network Sharing**: Share WebUI over a local network for collaborative use.
- **Intermediate File Retention**: Option to keep isolated vocals/instrumentals for further editing.
## Changelog
- Added WebUI for streamlined conversions and voice model downloads.
- Implemented hybrid pitch detection with rmvpe, crepe, and fcpe methods.
- Enabled support for local audio file inputs.
- Introduced option to retain intermediate files (e.g., isolated vocals/instrumentals).
- Added support for Pixeldrain download links for voice models.
- Improved vocal conversions with new rmvpe pitch extraction technique.
- Included volume controls for main vocals, backup vocals, and instrumentals.
- Added index rate, reverb, and advanced RVC options (filter_radius, rms_mix_rate, protect).
- Enabled local file uploads via file browser in WebUI.
- Supported pitch change and autotune for vocals.
- Introduced CLI inference for automated workflows.
## CLI Usage
> [!TIP]
> NeoRVC provides a powerful command-line interface for inference and model downloading. below are the available commands and their options:
| Command | Description | Usage Example |
|---------|-------------|---------------|
| `infer` | Generate AI song cover using a YouTube URL or local audio file. | `python ./neorvc/main_cli.py infer "https://youtube.com/watch?v=example" "my_voice_model" --pitch_change 2 --keep_files --output_type full` |
| `download` | Download an RVC voice model from a specified URL. | `python ./neorvc/main_cli.py download "model_url" "my_voice_model"` |
### CLI Options for `infer`
| Option | Description | Example Value |
|--------|-------------|---------------|
| `--pitch_change` | Pitch change in semitones | `2` |
| `--keep_files` | Keep intermediate files | N/A |
| `--output_type` | Output type: `full` or `vocals` | `full` |
| `--main_gain` | Main vocals gain (dB) | `0` |
| `--backup_gain` | Backup vocals gain (dB) | `0` |
| `--inst_gain` | Instrumental gain (dB) | `0` |
| `--index_rate` | Index rate for voice conversion | `0.5` |
| `--filter_radius` | Filter radius for voice conversion | `3` |
| `--rms_mix_rate` | RMS mix rate | `0.25` |
| `--f0_method` | F0 extraction method (e.g., rmvpe, crepe, fcpe) | `rmvpe` |
| `--crepe_hop_length` | CREPE hop length | `160` |
| `--protect` | Protect voiceless consonants | `0.33` |
| `--output_format` | Output format (e.g., mp3, wav) | `wav` |
| `--f0_autotune` | Enable F0 autotune | N/A |
| `--f0_autotune_strength` | F0 autotune strength | `0.5` |
### CLI Options for `download`
| Option | Description | Example Value |
|--------|-------------|---------------|
| `model_url` | URL for RVC model | `https://example.com/model.zip` |
| `voice_model` | Name of the RVC voice model | `my_voice_model` |
## References
NeoRVC builds upon the following projects:
- **Vocoders**:
- [HiFi-GAN](https://github.com/jik876/hifi-gan) by jik876
- [Vocos](https://github.com/gemelo-ai/vocos) by gemelo-ai
- [BigVGAN](https://github.com/NVIDIA/BigVGAN) by NVIDIA
- [BigVSAN](https://github.com/sony/bigvsan) by sony
- [vocoders](https://github.com/reppy4620/vocoders) by reppy4620
- [vocoder](https://github.com/fishaudio/vocoder) by fishaudio
- **VC Clients**:
- [Retrieval-based-Voice-Conversion-WebUI](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) by RVC-Project
- [rvc-cli](https://github.com/blaisewf/rvc-cli.git) by blaisewf
- [So-Vits-SVC](https://github.com/svc-develop-team/so-vits-svc) by svc-develop-team
- [Mangio-RVC-Fork](https://github.com/Mangio621/Mangio-RVC-Fork) by Mangio621
- [VITS](https://github.com/jaywalnut310/vits) by jaywalnut310
- [Harmonify](https://huggingface.co/Eempostor/Harmonify) by Eempostor
- [rvc-trainer](https://github.com/thepowerfuldeez/rvc-trainer) by thepowerfuldeez
- [AICoverGen](https://github.com/SociallyIneptWeeb/AICoverGen) by SociallyIneptWeeb
- **Pitch Extractors**:
- [RMVPE](https://github.com/Dream-High/RMVPE) by Dream-High
- [torchfcpe](https://github.com/CNChTu/FCPE) by CNChTu
- [torchcrepe](https://github.com/maxrmorrison/torchcrepe) by maxrmorrison
- [anyf0](https://github.com/SoulMelody/anyf0) by SoulMelody
- **Other**:
- [FAIRSEQ](https://github.com/facebookresearch/fairseq) by facebookresearch
- [FAISS](https://github.com/facebookresearch/faiss) by facebookresearch
- [ContentVec](https://github.com/auspicious3000/contentvec/) by auspicious3000
- [audio-slicer](https://github.com/openvpi/audio-slicer) by openvpi
- [python-audio-separator](https://github.com/nomadkaraoke/python-audio-separator.git) by nomadkaraoke
> [!NOTE]
> We extend our gratitude to the authors and communities behind these projects for their invaluable contributions.
## Contributing
> [!NOTE]
> We welcome contributions to NeoRVC! To get involved:
- Report issues at [GitHub Issues](https://github.com/TheNeodev/NeoRVC/issues).
- Submit improvements via [Pull Requests](https://github.com/TheNeodev/NeoRVC/pulls).
- Star the repository to show your support! 💙.
Support the project via donations:
[](https://saweria.co/neodev)
|