För att göra musikkomposition mer lättillgänglig utformade vi den första AI-drivna Google Doodle, Bach Doodle [1], där användare kan skapa sin egen melodi och få den harmoniserad av en maskininlärning modell (Coconet [22]) i stil med Bach. För användare att mata in melodier, har vi utformat ett förenklat sheet-music baserat gränssnitt. För att stödja en interaktiv upplevelse i skala, vi återinförde Coconet i TensorFlow.js [32] för att köra i webbläsaren och minskade dess körtid från 40s till 2s genom att anta dilaterade djupvis separerade konvolutioner och sammanfogning verksamhet. Vi minskade också modellens nedladdningsstorlek till cirka 400KB genom efterträningsviktkvantisering. Vi kalibrerade ett hastighetstest baserat på partiell modellutvärderingstid för att avgöra om harmoniseringsbegäran skulle utföras lokalt eller skickas till TPU-servrar på distans. På tre dagar tillbringade människor 350 år med att leka med Bach Doodle, och Coconet fick mer än 55 miljoner frågor. Användare kan välja att betygsätta sina kompositioner och bidra till en offentlig datauppsättning, som vi släpper med detta papper. Vi hoppas att samhället finner denna datauppsättning användbar för tillämpningar som sträcker sig från etnomusikologiska studier, till musikutbildning, till förbättring av maskininlärningsmodeller. Maskininlärning kan utöka våra kreativa förmågor genom att erbjuda generativa modeller som snabbt kan fylla i saknade delar av vår komposition, så att vi kan se en prototyp av hur ett stycke kan låta. För att fira J.S. Bachs 334:e födelsedag utformade vi Bach Doodle för att skapa en interaktiv upplevelse där användarna snabbt kan utforska olika möjligheter till harmonisering genom att justera sin melodi och begära nya harmoniseringar. Harmoniseringarna drivs av Coconet [22], en mångsidig generativ modell av motpunkt som kan fylla i godtyckligt ofullständiga poäng. Skapa denna första AI-drivna doodle innebar att övervinna utmaningar i användarinteraktion och gränssnitt design, och även tekniska utmaningar i både maskininlärning och i infrastruktur för att tjäna modellerna i skala. För att mata in melodier utformade vi ett förenklat gränssnitt för notbladsmusik som underlättar enkla försök och fel och fann att användare anpassade sig till det snabbt även när de inte var bekanta med västerländsk musik notation. Eftersom de flesta användare inte har dedikerad hårdvara för att köra maskininlärning modeller, vi återinförde Coconet i TensorFlow.js [32] så att det kunde köras i webbläsaren. Vi reducerade modellens körtid från 40 till 2s genom att använda dilaterade djupvis åtskilda konvolutioner och sammansmältningsoperationer, och vi reducerade modellens nedladdningsstorlek till 400KB genom efterträningsviktkvantisering. För att förbereda för storskalig distribution kalibrerade vi ett hastighetstest för att avgöra om en användares enhet är tillräckligt snabb för att köra modellen i webbläsaren. Om inte, skickades harmoniseringsförfrågningarna till fjärrservrar för TPU. Användare i 80 % av sessionerna undersökte flera harmoniseringar, och 53,8 % av harmoniseringarna bedömdes som positiva. Ett klagomål från förhandsanvändare var förekomsten av parallella femtedelar (P5s) och oktaver (P8s). Vi analyserade 21,8 miljoner harmoniseringar och fann att P5s och P8s förekommer i genomsnitt 0,365/mått respektive 0,391/mått. Dessutom var P5s och P8s vanligare när användarinmatningen var ur distribution, och färre P5s och P8s korrelerade med positiv användarfeedback. Maskininlärning har använts i algoritmisk musikkomposition för att stödja ett brett spektrum av musikaliska uppgifter [5, 13, 19, 28, 29]. Melody harmonisering är en av de kanoniska uppgifter [7, 11, 20, 26], uppmuntrar människa-dator interaktion [3, 14, 21, 25, 33], och är särskilt tillgänglig för nybörjare. Olika gränssnitt och verktyg har utvecklats för att göra interaktionsupplevelsen mer tillgänglig. I MySong [31] kan till exempel användare sjunga en melodi och få systemet att harmonisera den. I Hyperscore [12] kan användare rita flera nivåer av "motifer" på en grafisk skisssats och få dem harmoniserade enligt den spänningskurva de specificerat. Startups som JukeDeck och Amper Music erbjuder API:er som tillåter användare att beskriva ett stycke genom timing och stämningstaggar. Opensource-bibliotek som Magenta.js [30] tillåter maskininlärningsmodeller att vara arXiv:1907.06637v1 [cs.SD]
Ett exempel på deras arbete är Bach doodle REF, som kan harmonisera i stil med Bach de melodier som användarna skapar manuellt.
The Bach Doodle: Approachable music composition with machine learning at scale
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science', 'Engineering', 'Mathematics']}