Genererade Spotify låttexter

Ett kursprojekt under den senaste perioden har gått ut på att analysera data från Spotify-topplistor. Det huvudsakliga målet vi satte upp var att göra prognoser på vad som gör låtar framgångsrika. Vi laddade ner tusentals låtars data som beskriver allt från hur högljudda de är till hur mycket prat de innehåller. 

Men ett litet sidoprojekt visade sig vara mycket mer kul, åtminstone är slutresultatet lite komiskt. Jag tog nämligen alla mina låttitlar och laddade ner deras texter via Genius API. Sedan filtrerade jag bort alla tyska och spanska låtar (hejdå Despacito), samt andra språk, så endast engelska fanns kvar. En hel del av återstoden var aningen vulgära raplåtar, det kommer att märkas kan jag säga. 

Min idé var att träna någon form av maskininlärning/djupinlärning på texterna för att kunna generera egna låttexter. Jag testade mig fram med några Python paket för det ändamålet. Det visade sig krävas ganska mycket smart konfiguration och förhandskunskap för att göra det från scratch. Man kan använda sig av något som kallas Long short-term memory recurrent neural network (LSTM RNN), jag tänker inte ens försöka översätta det. 

En av mina tidigaste tester såg i varje fall ut ungefär såhär:

Yeah could someone got go higher
even gone like got bad
bitch like
got bitch
like got bitch
got bitch got bitch...

Inte särskilt bra, men en början. Ett mycket mer nybörjarvänligt sätt som jag vände mig till sedan var att använda textgenrnn. Nätverkets parametrar är i det paketet färdigt optimerade för texter av olika typer. Summa summarum gav det helt superbra resultat och jag bestämde mig för att ladda upp det på webben. 

Mästerverken tar ungefär 15 sekunder att generera på damp-harbor-56160.herokuapp.com Rekommenderar varmt att pröva. Kan hända också att det tar några sekunder för sidan att vakna ifall den har somnat, gratis hosting ¯\_(ツ)_/¯

Om någon är intresserad så finns den minimalistiska Flask-koden här: github.com/hd4niel/Lyrics-generation-webpage

<Daniel/>

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *