Repositorio oficial para combinar control de audio y transferencia de estilo mediante difusión latente de Nils Demerlé, Philippe Esling, Guillaume Doras y David Genova aceptado en ISMIR 2024 (enlace en papel).
Entrenar el modelo requiere tres pasos: procesar el conjunto de datos, entrenar un codificador automático y luego entrenar el modelo de difusión.
python dataset/split_to_lmdb.py --input_path /path/to/audio_dataset --output_path /path/to/audio_dataset/out_lmdb
O usar slakh con procesamiento midi (después de descargar Slakh2100 aquí):
python dataset/split_to_lmdb_midi.py --input_path /path/to/slakh --output_path /path/to/slakh/out_lmdb_midi --slakh True
python train_autoencoder.py --name my_autoencoder --db_path /path/to/lmdb --gpu #
Una vez entrenado el codificador automático, se debe exportar a un archivo .pt de torchscript:
python export_autoencoder.py --name my_autoencoder --step # #
Es posible omitir toda esta fase y utilizar un codificador automático previamente entrenado como Encodec, incluido en un nn.module con métodos de codificación y decodificación.
El entrenamiento del modelo se configura con archivos de configuración gin. Para entrenar el modelo de audio a audio:
python train_diffusion.py --db_path /data/nils/datasets/slakh/lmdb_midi/ --config midi --dataset_type midi --gpu #
Para entrenar el modelo de midi a audio:
python train_diffusion.py --db_path /path/to/lmdb --config main --dataset_type waveform --gpu #
por confirmar