venerdì 7 giugno 2024

Suno: musica intelligente

20240607-suno-sample-odi
Abbiamo già visto, in precedenti articoli, i primi utilizzi dei computer per generare musica, l'uso dei frattali nella generazione della musica e l'uso delle reti neurali per completare opere lasciate incomplete del passato. Gli articoli precedenti, sistemati non nell'ordine cronologico di uscita ma nell'ordine consigliato di lettura, vengono completati con quello in uscita oggi, che allo stesso tempo inizia anche una nuova serie dedicata agli esperimenti che ne sono generati, alcuni a tema scientifico, altri per puro divertimento.
Per riallacciarci alla questione sulla ricostruzione della decima sinfonia di Beethoven, avevo concluso che all'epoca non era ancora giunto il momento per le reti neurali di essere creative. E in effetti se mettiamo a confronto i risultati dei software di musica frattale e quelli di un compositore umano, esiste una certa differenza rilevabile a udito tra i due prodotti e per far sì che la musica frattale generata da un algoritmo bisogna comunque trafficare un po' con le impostazioni. Alla fine, però, è arrivato online un progetto interessante, Suno, una rete neurale in grado di generare musica.
Stando a quanto afferma il team, costituito da programmatori e artisti, l'obiettivo del progetto è quello di democratizzare la creazione della musica e renderla accessibile a chiunque. Avendo studiato musica (pianoforte, in particolare), ed essendomi cimentato, con qualche esperimento di composizione (di cui non vi ho ancora raccontato), l'idea dietro il progetto l'ho trovata molto interessante e così sono corso a provare il sistema. Prima di raccontarvi del secondo esperimento (al primo dedicherò un episodio a parte di particelle musicali), vorrei però approfondire velocemente le basi tecniche del progetto.
Suno, come detto, è una rete neurale, ovvero una rete strutturata con nodi, che sono i "neuroni", e link, che può essere modellizzata utilizzando la matematica delle reti, che è a sua volta una branca della teoria dei grafi, iniziata dal buon Leonhard Euler quando risolse il famoso problema dei ponti di Konigsberg. Seguendo la direzione indicata da Alan Turing, una rete neurale va addestrata con quelli che vengono chiamati modelli o algoritmi di apprendimento, rendendo così la rete neurale stessa (o l'intelligenza artificiale, se preferite) specializzata in un compito specifico, che può essere dialogare (chatbot), e qui avremmo miriadi di specializzazioni differenti, giocare a scacchi, fare calcoli di fisica e, appunto, generare musica.
Da un punto di vista strettamente matematico la rete neurale si basa su neuroni e funzioni di propagazione. Nel caso di una rete ordinata, lo stato \(a_i(t)\) di un neurone è dato da una funzione che a sua volta dipende dallo stato del neurone che lo precede, dal valore della funzione di propagazione \(p_i(t)\) calcolato per il neurone precedente e da un eventuale valore di soglia \(\vartheta_i\) che è fisso a meno di sovrascritture dovute al processo di apprendimento. \[a_{j+1} (t) = f \left ( a_j( t), p_j (t), \vartheta_j \right )\] A partire dallo stato così definito, il neurone genera una risposta in uscita, o funzione d'uscita, che a sua volta definisce la funzione di propagazione calcolata nel neurone e che influenzerà la funzione d'uscita del neurone successivo e così via a cascata. \[o_j (t) = f_{out} \left ( a_j(t) \right )\] In tutto questo è anche possibile introdurre dei pregiudizi all'interno della rete, definiti come delle costanti additive \(w_{0i}\) nella funzione di propagazione e che, come è stato recentemente scoperto, sono molto difficili da eliminare tramite il processo di apprendimento. \[p_j(t) = \sum_i o_i (t) w_{ij} + w_{0j}\] Dopo questo dettaglio, non eccessivamente approfondito, sul funzionamento, torniamo a Suno e ai modelli scelti dal team per renderlo un compositore di musica a comando! In particolare, Suno utilizza Bark, sviluppato proprio dal team di Suno, e Chirp di Google. I due modelli lavorano in parallelo per generare la voce e la musica seguendo le indicazioni dell'utente.
Una volta scoperto Suno ho, quindi, iniziato con gli esperimenti. Il primo, di cui scenderò nel dettaglio in un post futuro, è fondamentalmente quello standard, molto simile a quello dei text-to-image generator: un prompt di testo che, abbinato al genere preferito, ha prodotto un pezzo tutto sommato in linea con gusti e attese. C'era, però, qualcosa di insoddisfacente in questo esperimento, così ho deciso di provare il custom mode in cui la descrizione della canzone viene sostituita con l'inserimento del testo. Ovviamente è possibile anche generare casualmente il testo, ma questa parte l'ho trovata molto interessante per un motivo particolare: ho conosciuto diversi musicisti cui ho sottoposto alcuni dei miei versi, uno in particolare che ha ricevuto diversi apprezzamenti, ma che alla fine nessuno ha deciso di trasformare in musica. Così ho tirato fuori dalla libreria Raggi di Sole, la mia raccolta di poesie uscita più di venti anni fa per la Pellegrini Editore (di fatto quei libercoli li ha pagati mio padre), e da lì ho scelto una delle mie poesie e l'ho trasformata in un jazz.
Suno, dopo un po', ha prodotto due sample, il primo, quello che alla fine ho pubblicato anche su YouTube, è un pezzo alla Cammariere che rientra perfettamente nei miei gusti, ma che è rimasto troncato senza alcuna sfumatura, vai a sapere perché (sospetto per via del piano gratuito). Il secondo, che non so se pubblicherò, è una versione alla Nathalie Cole, che però non mi sembra catturare l'atmosfera dei versi che avevo scritto.
Prima di lasciarvi all'ascolto del pezzo, vi rimando al testo di Odi che si trova all'interno del minisito con cui sto recuperando l'intera raccolta. Infine vi ricordo che l'articolo è anche abbinato al quarto video della miniserie con cui particelle musicali ha esordito su YouTube.

Nessun commento:

Posta un commento