Auto-Tune Detector (ATD)

This tool utilizes deep learning and spectrogram-based techniques to identify Auto-Tuned vocals in music recordings. Preprint paper link.

Installation:

pip install -r requirements.txt
  • We recommend using Python 3.8 or higher for compatibility.

Data Preparation:

  1. Download the dataset from this link.
  2. Prepare the data:
  • For Auto-Tune Detector (ATD) training and validation:
python ATD_Data_Preparaton.py <dataset_directory> <Processed_dataset_dir> 

Example:

python ATD_Data_Preparaton.py ./Dataset/ ./ATD_dataset 
  • For baseline training and validation:
python baseline_data_preparaton.py <dataset_directory> <Processed_dataset_dir>

Example:

python baseline_data_preparaton.py ./Dataset/ ./baseline_dataset 

Training:

  • Train the ATD networks (choose backbone_name from {'ResNet18', 'ResNet50' 'ResNext', 'EfficientNet'}):
python ATD_Training.py <training_dataset_directory> <backbone_name>
python ATD_TrainingCL.py <training_dataset_directory> <backbone_name> 

Example:

python ATD_Training.py ./ATD_dataset/Training EfficientNet 
python ATD_TrainingCL.py ./ATD_dataset/Training EfficientNet 
  • Train the baseline:
python baseline_training.py <training_dataset_directory> <models_directory> 

Example:

python baseline_training.py ./baseline_dataset/Training ./models 

Testing:

Download the pretrained models from this link and put them in the 'models' directory.

  • To test the ATD models:
python ATD_Validation.py <test_dataset_directory> <backbone_name>

Example:

python ATD_Validation.py ./ATD_dataset/Test/Simple EfficientNet 
  • To test the baseline:
python baseline_validation.py <test_dataset_directory> <saved_model_path>

Example:

python baseline_validation.py ./ATD_dataset/Test/Simple ./models/RawNet.pth 

Single Music Testing for ATD:

python ATD_validation_SM.py <song_path> <backbone_name>

Example:

python ATD_validation_SM.py ./Song.wav EfficientNet

Contact

For any question regarding this repository, please contact:

Acknowledgements

Citation

If you use this code in your research please use the following citation:

@misc{gohari2024spectrogrambased,
      title={Spectrogram-Based Detection of Auto-Tuned Vocals in Music Recordings}, 
      author={Mahyar Gohari and Paolo Bestagini and Sergio Benini and Nicola Adami},
      year={2024},
      eprint={2403.05380},
      archivePrefix={arXiv},
      primaryClass={cs.SD}
}