Dépôt officiel pour Combining audio control and style transfer using latent diffusion de Nils Demerlé, Philippe Esling, Guillaume Doras et David Genova accepté à l'ISMIR 2024 (lien papier).
La formation du modèle nécessite trois étapes : traitement de l'ensemble de données, formation d'un auto-encodeur, puis formation du modèle de diffusion.
python dataset/split_to_lmdb.py --input_path /path/to/audio_dataset --output_path /path/to/audio_dataset/out_lmdb
Ou pour utiliser Slakh avec le traitement midi (après avoir téléchargé Slakh2100 ici) :
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 #
Une fois l'autoencodeur entraîné, il doit être exporté vers un fichier torchscript .pt :
python export_autoencoder.py --name my_autoencoder --step # #
Il est possible de sauter toute cette phase et d'utiliser un encodeur automatique pré-entraîné tel que Encodec, enveloppé dans un nn.module avec des méthodes d'encodage et de décodage.
La formation du modèle est configurée avec les fichiers de configuration gin. Pour entraîner le modèle audio sur audio :
python train_diffusion.py --db_path /data/nils/datasets/slakh/lmdb_midi/ --config midi --dataset_type midi --gpu #
Pour entraîner le modèle midi-audio :
python train_diffusion.py --db_path /path/to/lmdb --config main --dataset_type waveform --gpu #
À déterminer