Generare musica utilizzando MusicGen di Meta su Colab
Creare musica con MusicGen di Meta su Colab
Nel vasto campo dell’intelligenza artificiale, l’apprendimento automatico ha rivoluzionato numerosi ambiti, tra cui l’elaborazione del linguaggio naturale, la visione artificiale e il riconoscimento vocale. Tuttavia, un’area affascinante che ha attirato l’attenzione dei ricercatori e degli appassionati di musica è la generazione di musica utilizzando algoritmi di intelligenza artificiale. MusicGen è un modello all’avanguardia per la generazione di musica a partire da testo, che traduce senza soluzione di continuità le indicazioni testuali in affascinanti composizioni musicali.
Cos’è MusicGen?
MusicGen è un modello straordinario progettato per la generazione di musica che offre semplicità e controllabilità. A differenza dei metodi esistenti come MusicLM, MusicGen si distingue eliminando la necessità di una rappresentazione semantica auto-supervisionata. Il modello utilizza un’architettura di Transformer auto-regressivo a singolo stadio ed è addestrato utilizzando un tokenizer EnCodec a 32kHz. Va notato che MusicGen genera tutti e quattro i codebook in un singolo passaggio, distinguendosi così dagli approcci convenzionali. Introducendo un leggero ritardo tra i codebook, il modello dimostra la capacità di predirli in parallelo, risultando in soli 50 passaggi auto-regressivi al secondo di audio. Questo approccio innovativo ottimizza l’efficienza e la velocità del processo di generazione di musica.
MusicGen è addestrato su 20.000 ore di musica con licenza. È stato anche addestrato sul dataset interno di 10.000 tracce musicali di alta qualità e sui dati musicali di ShutterStock e Pond5.
Prerequisiti:
Come indicato nell’ repo ufficiale di MusicGen su GitHub:
- Questo articolo AI introduce FELM Benchmarking Factuality Evaluation of Large Language Models.
- Incontra l’Air-Guardian un sistema di intelligenza artificiale sviluppato dai ricercatori del MIT per tracciare dove un pilota umano sta guardando (utilizzando la tecnologia di eye-tracking)
- Moltiplicazione di matrici su GPU
- Python 3.9
- PyTorch 2.0.0
- Una GPU con almeno 16 GB di memoria
Modelli disponibili di MusicGen
Sono disponibili 4 modelli pre-addestrati e sono i seguenti:
- Small: modello da 300M, solo testo in musica
- VoAGI: modello da 1,5B, solo testo in musica
- Melody: modello da 1,5B, testo e melodia in musica
- Large: modello da 3,3B, solo testo in musica
Esperimenti
Di seguito è riportato l’output della generazione di musica condizionata utilizzando il modello MusicGen large.
Input di testo: Suono della campanella con violino e pianoforte
Output: (Utilizzando il modello "large" di MusicGen)
Di seguito è riportato l’output del modello MusicGen “melody”. Abbiamo utilizzato l’audio e l’input di testo sopra riportati per generare l’audio seguente.
Input di testo: Aggiungi batteria pesante e solo batteria
Output: (Utilizzando il modello "melody" di MusicGen)
Come configurare MusicGen su Colab
Assicurati di utilizzare la GPU per una rapida inferenza. Ci sono voluti circa 9 minuti per generare 10 secondi di audio utilizzando la CPU, mentre con la GPU(T4) sono bastati solo 35 secondi.
Prima di iniziare, assicurati che Torch e TorchAudio siano installati in Colab.
Installa la libreria AudioCraft di Facebook.
!python3 -m pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft
Importa le librerie necessarie.
from audiocraft.models import musicgenfrom audiocraft.utils.notebook import display_audioimport torchfrom audiocraft.data.audio import audio_write
Carica il modello. Ecco l’elenco dei modelli disponibili:
# | tipi di modello sono => small, VoAGI, melody, large |# | dimensioni dei modelli sono => 300M, 1.5B, 1.5B, 3.3B |model = musicgen.MusicGen.get_pretrained('large', device='cuda')
Imposta i parametri (opzionale):
model.set_generation_params(duration=60) # questo genererà 60 secondi di audio.
Generazione di musica condizionata (genera la musica fornendo il testo).
model.set_generation_params(duration=60)res = model.generate( [ 'Suono della campanella con violino e pianoforte' ], progress=True)# Questo mostrerà i controlli della musica su Colab
Per generare musica incondizionata:
res = model.generate_unconditional( num_samples=1, progress=True)# this will show the music controls on the screendisplay_audio(res, 16000)
Per generare una continuazione musicale
Per creare una continuazione musicale abbiamo bisogno di un file audio. Alimenteremo quel file al modello e il modello genererà e aggiungerà più musica ad esso.
from audiocraft.utils.notebook import display_audioimport torchaudio