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>
  
  ---

  [![License: BSD-3-Clause](https://img.shields.io/badge/License-BSD_3--Clause-black.svg?style=for-the-badge&color=red&logo=shadow-the-hedgehog&logoColor=white)](https://github.com/TheNeodev/NeoRVC/LICENSE)
  [![Open In Colab](https://img.shields.io/badge/Open%20In-Colab-%23D21F2D?logo=google-colab&style=for-the-badge&logoColor=%23FF6A00)](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:

[!["Support Me On Saweria"](https://img.shields.io/badge/Support%20me%20on-Saweria-%23FF0000?logo=sonic&logoColor=black&labelColor=black)](https://saweria.co/neodev)