RVC-MAKER / main /app /parser.py
NeoPy's picture
Upload 115 files
96134ee verified
raw
history blame
17.8 kB
import os
import sys
sys.path.append(os.getcwd())
try:
argv = sys.argv[1]
except IndexError:
argv = None
argv_is_allows = ["--audio_effects", "--audioldm2", "--convert", "--create_dataset", "--create_index", "--extract", "--preprocess", "--separator_music", "--train", "--help_audio_effects", "--help_audioldm2", "--help_convert", "--help_create_dataset", "--help_create_index", "--help_extract", "--help_preprocess", "--help_separator_music", "--help_train", "--help"]
if argv not in argv_is_allows:
print("Invalid syntax! Use --help for more information")
quit()
if argv_is_allows[0] in argv: from main.inference.audio_effects import main
elif argv_is_allows[1] in argv: from main.inference.audioldm2 import main
elif argv_is_allows[2] in argv: from main.inference.convert import main
elif argv_is_allows[3] in argv: from main.inference.create_dataset import main
elif argv_is_allows[4] in argv: from main.inference.create_index import main
elif argv_is_allows[5] in argv: from main.inference.extract import main
elif argv_is_allows[6] in argv: from main.inference.preprocess import main
elif argv_is_allows[7] in argv: from main.inference.separator_music import main
elif argv_is_allows[8] in argv: from main.inference.train import main
elif argv_is_allows[9] in argv:
print("""Parameters for `--audio_effects`:
1. File paths:
- `--input_path` (required): Path to the input audio file.
- `--output_path` (default: `./audios/apply_effects.wav`): Path to save the output file.
- `--export_format` (default: `wav`): Output file format (`wav`, `mp3`, ...).
2. Resampling:
- `--resample` (default: `False`): Whether to resample or not.
- `--resample_sr` (default: `0`): New sampling frequency (Hz).
3. Chorus effect:
- `--chorus`: Enable/disable chorus.
- `--chorus_depth`, `--chorus_rate`, `--chorus_mix`, `--chorus_delay`, `--chorus_feedback`: Parameters to adjust chorus.
4. Distortion effect:
- `--distortion`: Enable/disable distortion.
- `--drive_db`: Degree of audio distortion.
5. Reverb effect:
- `--reverb`: Enable/disable reverb.
- `--reverb_room_size`, `--reverb_damping`, `--reverb_wet_level`, `--reverb_dry_level`, `--reverb_width`, `--reverb_freeze_mode`: Adjust reverb.
6. Pitch shift effect:
- `--pitchshift`: Enable/disable pitch shift.
- `--pitch_shift`: Pitch shift value.
7. Delay effect:
- `--delay`: Enable/disable delay.
- `--delay_seconds`, `--delay_feedback`, `--delay_mix`: Adjust delay time, feedback, and mix.
8. Compressor:
- `--compressor`: Enable/disable compressor.
- `--compressor_threshold`, `--compressor_ratio`, `--compressor_attack_ms`, `--compressor_release_ms`: Compression parameters.
9. Limiter:
- `--limiter`: Enable/disable audio level limiter.
- `--limiter_threshold`, `--limiter_release`: Limiter threshold and release time.
10. Gain (Amplification):
- `--gain`: Enable/disable gain.
- `--gain_db`: Gain level (dB).
11. Bitcrush:
- `--bitcrush`: Enable/disable bit resolution reduction effect.
- `--bitcrush_bit_depth`: Bit depth for bitcrush.
12. Clipping:
- `--clipping`: Enable/disable audio clipping.
- `--clipping_threshold`: Clipping threshold.
13. Phaser:
- `--phaser`: Enable/disable phaser effect.
- `--phaser_rate_hz`, `--phaser_depth`, `--phaser_centre_frequency_hz`, `--phaser_feedback`, `--phaser_mix`: Adjust phaser effect.
14. Boost bass & treble:
- `--treble_bass_boost`: Enable/disable bass and treble boost.
- `--bass_boost_db`, `--bass_boost_frequency`, `--treble_boost_db`, `--treble_boost_frequency`: Bass and treble boost parameters.
15. Fade in & fade out:
- `--fade_in_out`: Enable/disable fade effect.
- `--fade_in_duration`, `--fade_out_duration`: Fade in/out duration.
16. Audio combination:
- `--audio_combination`: Enable/disable combining multiple audio files.
- `--audio_combination_input`: Path to additional audio files.
""")
quit()
elif argv_is_allows[10] in argv:
print("""Parameters for `--audioldm2`:
1. File paths:
- `--input_path` (required): Path to the input audio file.
- `--output_path` (default: `./output.wav`): Path to save the output file.
- `--export_format` (default: `wav`): Output file format.
2. Audio configuration:
- `--sample_rate` (default: `44100`): Sampling frequency (Hz).
3. AudioLDM model configuration:
- `--audioldm_model` (default: `audioldm2-music`): Select AudioLDM model for processing.
4. Model guidance prompt:
- `--source_prompt` (default: ``): Description of source audio.
- `--target_prompt` (default: ``): Description of target audio.
5. Processing algorithm configuration:
- `--steps` (default: `200`): Number of steps in audio synthesis process.
- `--cfg_scale_src` (default: `3.5`): Guidance scale for source audio.
- `--cfg_scale_tar` (default: `12`): Guidance scale for target audio.
- `--t_start` (default: `45`): Editing level.
6. Computation optimization:
- `--save_compute` (default: `False`): Whether to enable compute optimization mode.
""")
quit()
elif argv_is_allows[11] in argv:
print("""Parameters for `--convert`:
1. Voice processing configuration:
- `--pitch` (default: `0`): Adjust pitch.
- `--filter_radius` (default: `3`): F0 curve smoothness.
- `--index_rate` (default: `0.5`): Voice index usage rate.
- `--volume_envelope` (default: `1`): Volume amplitude adjustment factor.
- `--protect` (default: `0.33`): Consonant protection.
2. Frame hop configuration:
- `--hop_length` (default: `64`): Hop length during audio processing.
3. F0 configuration:
- `--f0_method` (default: `rmvpe`): F0 prediction method (`pm`, `dio`, `mangio-crepe-tiny`, `mangio-crepe-small`, `mangio-crepe-medium`, `mangio-crepe-large`, `mangio-crepe-full`, `crepe-tiny`, `crepe-small`, `crepe-medium`, `crepe-large`, `crepe-full`, `fcpe`, `fcpe-legacy`, `rmvpe`, `rmvpe-legacy`, `harvest`, `yin`, `pyin`, `swipe`).
- `--f0_autotune` (default: `False`): Whether to auto-tune F0.
- `--f0_autotune_strength` (default: `1`): Strength of F0 auto-tuning.
- `--f0_file` (default: ``): Path to existing F0 file.
- `--f0_onnx` (default: `False`): Whether to use ONNX version of F0.
4. Embedding model:
- `--embedder_model` (default: `contentvec_base`): Embedding model used.
- `--embedders_mode` (default: `fairseq`): Embedding mode (`fairseq`, `transformers`, `onnx`).
5. File paths:
- `--input_path` (required): Path to input audio file.
- `--output_path` (default: `./audios/output.wav`): Path to save output file.
- `--export_format` (default: `wav`): Output file format.
- `--pth_path` (required): Path to `.pth` model file.
- `--index_path` (default: `None`): Path to index file (if any).
6. Audio cleaning:
- `--clean_audio` (default: `False`): Whether to apply audio cleaning.
- `--clean_strength` (default: `0.7`): Cleaning strength.
7. Resampling & audio splitting:
- `--resample_sr` (default: `0`): New sampling frequency (0 means keep original).
- `--split_audio` (default: `False`): Whether to split audio before processing.
8. Testing & optimization:
- `--checkpointing` (default: `False`): Enable/disable checkpointing to save RAM.
9. Formant shifting:
- `--formant_shifting` (default: `False`): Whether to enable formant shifting effect.
- `--formant_qfrency` (default: `0.8`): Formant shift frequency factor.
- `--formant_timbre` (default: `0.8`): Voice timbre change factor.
""")
quit()
elif argv_is_allows[12] in argv:
print("""Parameters for `--create_dataset`:
1. Dataset paths & configuration:
- `--input_audio` (required): Path to audio link (YouTube link, can use `,` for multiple links).
- `--output_dataset` (default: `./dataset`): Output data directory.
- `--sample_rate` (default: `44100`): Audio sampling frequency.
2. Data cleaning:
- `--clean_dataset` (default: `False`): Whether to apply data cleaning.
- `--clean_strength` (default: `0.7`): Data cleaning strength.
3. Voice separation & effects:
- `--separator_reverb` (default: `False`): Whether to separate voice reverb.
- `--kim_vocal_version` (default: `2`): Kim Vocal model version for separation (`1`, `2`).
4. Audio segmentation configuration:
- `--overlap` (default: `0.25`): Overlap level between segments during separation.
- `--segments_size` (default: `256`): Size of each segment.
5. MDX (Music Demixing) configuration:
- `--mdx_hop_length` (default: `1024`): MDX hop length during processing.
- `--mdx_batch_size` (default: `1`): Batch size during MDX processing.
- `--denoise_mdx` (default: `False`): Whether to apply denoising during MDX separation.
6. Skip audio sections:
- `--skip` (default: `False`): Whether to skip any audio seconds.
- `--skip_start_audios` (default: `0`): Time (seconds) to skip at the start of audio.
- `--skip_end_audios` (default: `0`): Time (seconds) to skip at the end of audio.
""")
quit()
elif argv_is_allows[13] in argv:
print("""Parameters for `--create_index`:
1. Model information:
- `--model_name` (required): Model name.
- `--rvc_version` (default: `v2`): Version (`v1`, `v2`).
- `--index_algorithm` (default: `Auto`): Index algorithm used (`Auto`, `Faiss`, `KMeans`).
""")
quit()
elif argv_is_allows[14] in argv:
print("""Parameters for `--extract`:
1. Model information:
- `--model_name` (required): Model name.
- `--rvc_version` (default: `v2`): RVC version (`v1`, `v2`).
2. F0 configuration:
- `--f0_method` (default: `rmvpe`): F0 prediction method (`pm`, `dio`, `mangio-crepe-tiny`, `mangio-crepe-small`, `mangio-crepe-medium`, `mangio-crepe-large`, `mangio-crepe-full`, `crepe-tiny`, `crepe-small`, `crepe-medium`, `crepe-large`, `crepe-full`, `fcpe`, `fcpe-legacy`, `rmvpe`, `rmvpe-legacy`, `harvest`, `yin`, `pyin`, `swipe`).
- `--pitch_guidance` (default: `True`): Whether to use pitch guidance.
3. Processing configuration:
- `--hop_length` (default: `128`): Hop length during processing.
- `--cpu_cores` (default: `2`): Number of CPU threads used.
- `--gpu` (default: `-`): Specify GPU to use (e.g., `0` for first GPU, `-` to disable GPU).
- `--sample_rate` (required): Input audio sampling frequency.
4. Embedding configuration:
- `--embedder_model` (default: `contentvec_base`): Embedding model name.
- `--f0_onnx` (default: `False`): Whether to use ONNX version of F0.
- `--embedders_mode` (default: `fairseq`): Embedding mode (`fairseq`, `transformers`, `onnx`).
""")
quit()
elif argv_is_allows[15] in argv:
print("""Parameters for `--preprocess`:
1. Model information:
- `--model_name` (required): Model name.
2. Data configuration:
- `--dataset_path` (default: `./dataset`): Path to directory containing data files.
- `--sample_rate` (required): Audio data sampling frequency.
3. Processing configuration:
- `--cpu_cores` (default: `2`): Number of CPU threads used.
- `--cut_preprocess` (default: `True`): Whether to cut data files.
- `--process_effects` (default: `False`): Whether to apply preprocessing.
- `--clean_dataset` (default: `False`): Whether to clean data files.
- `--clean_strength` (default: `0.7`): Data cleaning strength.
""")
quit()
elif argv_is_allows[16] in argv:
print("""Parameters for `--separator_music`:
1. Data paths:
- `--input_path` (required): Path to input audio file.
- `--output_path` (default: `./audios`): Directory to save output files.
- `--format` (default: `wav`): Output file format (`wav`, `mp3`, ...).
2. Audio processing configuration:
- `--shifts` (default: `2`): Number of predictions.
- `--segments_size` (default: `256`): Audio segment size.
- `--overlap` (default: `0.25`): Overlap level between segments.
- `--mdx_hop_length` (default: `1024`): MDX hop length during processing.
- `--mdx_batch_size` (default: `1`): Batch size.
3. Cleaning processing:
- `--clean_audio` (default: `False`): Whether to clean audio.
- `--clean_strength` (default: `0.7`): Cleaning filter strength.
4. Model configuration:
- `--model_name` (default: `HT-Normal`): Music separation model (`Main_340`, `Main_390`, `Main_406`, `Main_427`, `Main_438`, `Inst_full_292`, `Inst_HQ_1`, `Inst_HQ_2`, `Inst_HQ_3`, `Inst_HQ_4`, `Inst_HQ_5`, `Kim_Vocal_1`, `Kim_Vocal_2`, `Kim_Inst`, `Inst_187_beta`, `Inst_82_beta`, `Inst_90_beta`, `Voc_FT`, `Crowd_HQ`, `Inst_1`, `Inst_2`, `Inst_3`, `MDXNET_1_9703`, `MDXNET_2_9682`, `MDXNET_3_9662`, `Inst_Main`, `MDXNET_Main`, `MDXNET_9482`, `HT-Normal`, `HT-Tuned`, `HD_MMI`, `HT_6S`).
- `--kara_model` (default: `Version-1`): Backing track separation model version (`Version-1`, `Version-2`).
5. Effects and post-processing:
- `--backing` (default: `False`): Whether to separate backing vocals.
- `--mdx_denoise` (default: `False`): Whether to use MDX denoising.
- `--reverb` (default: `False`): Whether to separate reverb.
- `--backing_reverb` (default: `False`): Whether to separate reverb for backing vocals.
6. Sampling frequency:
- `--sample_rate` (default: `44100`): Output audio sampling frequency.
""")
quit()
elif argv_is_allows[17] in argv:
print("""Parameters for `--train`:
1. Model configuration:
- `--model_name` (required): Model name.
- `--rvc_version` (default: `v2`): RVC version (`v1`, `v2`).
- `--model_author` (optional): Model author.
2. Save configuration:
- `--save_every_epoch` (required): Number of epochs between saves.
- `--save_only_latest` (default: `True`): Save only the latest checkpoint.
- `--save_every_weights` (default: `True`): Save all model weights.
3. Training configuration:
- `--total_epoch` (default: `300`): Total number of training epochs.
- `--batch_size` (default: `8`): Batch size during training.
- `--sample_rate` (required): Audio sampling frequency.
4. Device configuration:
- `--gpu` (default: `0`): Specify GPU to use (agena: Specify GPU to use (number or `-` if not using GPU).
- `--cache_data_in_gpu` (default: `False`): Cache data in GPU for faster processing.
5. Advanced training configuration:
- `--pitch_guidance` (default: `True`): Use pitch guidance.
- `--g_pretrained_path` (default: ``): Path to pretrained G weights.
- `--d_pretrained_path` (default: ``): Path to pretrained D weights.
- `--vocoder` (default: `Default`): Vocoder used (`Default`, `MRF-HiFi-GAN`, `RefineGAN`).
6. Overtraining detection:
- `--overtraining_detector` (default: `False`): Enable/disable overtraining detection.
- `--overtraining_threshold` (default: `50`): Threshold for detecting overtraining.
7. Data processing:
- `--cleanup` (default: `False`): Clean old training files to start training from scratch.
8. Optimization:
- `--checkpointing` (default: `False`): Enable/disable checkpointing to save RAM.
- `--deterministic` (default: `False`): When enabled, uses deterministic algorithms to ensure consistent results for the same input data.
- `--benchmark` (default: `False`): When enabled, tests and selects the optimal algorithm for the hardware and specific size.
""")
quit()
elif argv_is_allows[18] in argv:
print("""Usage:
1. `--help_audio_effects`: Help for adding audio effects.
2. `--help_audioldm2`: Help for music editing.
3. `--help_convert`: Help for audio conversion.
4. `--help_create_dataset`: Help for creating training data.
5. `--help_create_index`: Help for creating an index.
6. `--help_extract`: Help for extracting training data.
7. `--help_preprocess`: Help for preprocessing data.
8. `--help_separator_music`: Help for music separation.
9. `--help_train`: Help for model training.
""")
quit()
if __name__ == "__main__":
if "--train" in argv:
import torch.multiprocessing as mp
mp.set_start_method("spawn")
try:
main()
except:
pass