Repositório oficial para Combinar controle de áudio e transferência de estilo usando difusão latente de Nils Demerlé, Philippe Esling, Guillaume Doras e David Genova aceito no ISMIR 2024 (link em papel).
O treinamento do modelo requer três etapas: processamento do conjunto de dados, treinamento de um autoencoder e, em seguida, treinamento do modelo de difusão.
python dataset/split_to_lmdb.py --input_path /path/to/audio_dataset --output_path /path/to/audio_dataset/out_lmdb
Ou para usar o slakh com processamento midi (depois de baixar o Slakh2100 aqui):
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 #
Uma vez treinado o autoencoder, ele deve ser exportado para um arquivo torchscript .pt:
python export_autoencoder.py --name my_autoencoder --step # #
É possível pular toda essa fase e usar um autoencoder pré-treinado como o Encodec, envolto em um nn.module com métodos encode e decode.
O treinamento do modelo é configurado com arquivos de configuração gin. Para treinar o modelo de áudio para áudio:
python train_diffusion.py --db_path /data/nils/datasets/slakh/lmdb_midi/ --config midi --dataset_type midi --gpu #
Para treinar o modelo midi para áudio:
python train_diffusion.py --db_path /path/to/lmdb --config main --dataset_type waveform --gpu #
A definir