diff --git a/docs/document.aux b/docs/document.aux index 5f4f53d..9b95870 100644 --- a/docs/document.aux +++ b/docs/document.aux @@ -85,33 +85,36 @@ \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {3.1\relax .\enspace }Koncepcja}{35}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.2\relax .\enspace }WstÄ™pne przygotowanie danych do treningu}{36}\protected@file@percent } +\newlabel{section:midi}{{3.2}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1\relax .\enspace }Muzyczne ,,sÅ‚owo''}{36}\protected@file@percent } +\newlabel{section:midi_words}{{3.2.1}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2\relax .\enspace }Konwersja MIDI na sekwencje słów muzycznych}{36}\protected@file@percent } \citation{survay} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3\relax .\enspace }Inne aspekty przygotowania danych}{39}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4\relax .\enspace }PodziaÅ‚ danych na dane wejÅ›ciowe i wyjÅ›ciowe}{40}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5\relax .\enspace }Inne aspekty przygotowania zbioru uczÄ…cego}{42}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.3\relax .\enspace }Definicja modelu}{44}\protected@file@percent } +\newlabel{section:model}{{3.3}{44}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1\relax .\enspace }Model w trybie uczenia}{44}\protected@file@percent } -\newlabel{fig:training-model}{{3.1}{45}} +\newlabel{fig:training-model}{{3.1}{46}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2\relax .\enspace }Model w trybie wnioskowania}{46}\protected@file@percent } \newlabel{section:inference-model}{{3.3.2}{46}} \newlabel{fig:inference-decoder}{{3.2}{47}} \citation{onehot} -\@writefile{toc}{\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{48}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{48}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{49}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{49}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.4.2\relax .\enspace }SÅ‚ownik}{49}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3\relax .\enspace }Elementy specjalne}{50}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.4.4\relax .\enspace }Zakodowanie sekwencji}{50}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.5\relax .\enspace }Ekperyment}{51}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{51}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{51}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{52}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{52}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.3\relax .\enspace }Wydobycie danych}{52}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.6\relax .\enspace }Trenowanie modelu}{53}\protected@file@percent } -\newlabel{fig:losses}{{3.3}{54}} \@writefile{toc}{\contentsline {section}{\numberline {3.7\relax .\enspace }Generowanie muzyki przy pomocy wytrenowanych modeli}{54}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{55}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{55}\protected@file@percent } +\newlabel{fig:losses}{{3.3}{55}} +\@writefile{toc}{\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{56}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{56}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{Rozdzia\PlPrIeC {\l }\ 4\relax .\enspace Podsumowanie}{57}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} diff --git a/docs/document.fdb_latexmk b/docs/document.fdb_latexmk index 87ace1b..0913125 100644 --- a/docs/document.fdb_latexmk +++ b/docs/document.fdb_latexmk @@ -1,12 +1,12 @@ # Fdb version 3 -["makeindex document.idx"] 1592309706 "document.idx" "document.ind" "document" 1592309893 - "document.idx" 1592309891 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" +["makeindex document.idx"] 1592309706 "document.idx" "document.ind" "document" 1592311737 + "document.idx" 1592311706 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" (generated) "document.ind" "document.ilg" -["pdflatex"] 1592309891 "/home/altarin/praca-magisterska/docs/document.tex" "/home/altarin/praca-magisterska/docs/document.pdf" "document" 1592309893 - "/home/altarin/praca-magisterska/docs/document.aux" 1592309893 10854 acd6f735e25a417b7d2be7f1654ba457 "" - "/home/altarin/praca-magisterska/docs/document.tex" 1592309890 83152 0fbbf82631bd7cd249f37c9088da1d01 "" +["pdflatex"] 1592311706 "/home/altarin/praca-magisterska/docs/document.tex" "/home/altarin/praca-magisterska/docs/document.pdf" "document" 1592311737 + "/home/altarin/praca-magisterska/docs/document.aux" 1592311708 10968 b9ce593ce2b0d41f0995bf3ec1a23fef "" + "/home/altarin/praca-magisterska/docs/document.tex" 1592311736 85266 80bb2437b200613429831b310deb8a96 "" "/usr/share/texmf-dist/fonts/enc/dvips/pl/plit.enc" 1572595918 1946 62ba825cda1ff16dbaa60d53ac60525a "" "/usr/share/texmf-dist/fonts/enc/dvips/pl/plme.enc" 1572595918 3126 59f33ff3e396436ebc36f4e7b444d5c4 "" "/usr/share/texmf-dist/fonts/enc/dvips/pl/plmi.enc" 1572595918 2005 f094775651a1386335c158fb632529f1 "" @@ -198,10 +198,10 @@ "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1589405448 334148 1b9d30ff8c861d6082e3e9bfccd8d7eb "" "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1589405429 8044939 b23304717ecc5ce8d46ad93c0d4cb929 "" "chapter-style.sty" 1585406727 376 a4a2fb4e6d39af51a43bb1e06c2593ad "" - "document.aux" 1592309893 10854 acd6f735e25a417b7d2be7f1654ba457 "pdflatex" + "document.aux" 1592311708 10968 b9ce593ce2b0d41f0995bf3ec1a23fef "pdflatex" "document.ind" 1592309706 0 d41d8cd98f00b204e9800998ecf8427e "makeindex document.idx" - "document.tex" 1592309890 83152 0fbbf82631bd7cd249f37c9088da1d01 "" - "document.toc" 1592309893 4377 8535452eb813c50233826dd58cc1ab49 "pdflatex" + "document.tex" 1592311736 85266 80bb2437b200613429831b310deb8a96 "" + "document.toc" 1592311708 4377 79773f5f3b957c073dc21afc2e647be2 "pdflatex" "images/autoencoder.png" 1590399556 23857 07547cd5bcc55280ad497e04dca51a4f "" "images/gradient_descent_1_long.png" 1590334914 10075 03e26f48b0713f31b10c11831a32dc53 "" "images/gradient_descent_2_long.png" 1590334941 8705 b70a4b02180426a4a74386cd3b33d85e "" @@ -222,10 +222,10 @@ "images/waveform_axis.png" 1592238099 15586 787fa8332b5d81033490d9d317c21a25 "" "pythonhighlight.sty" 1591814444 4822 44a39a68d852c9742af161f7166b2a03 "" (generated) + "document.log" "document.pdf" + "document.toc" "/home/altarin/praca-magisterska/docs/document.log" "document.aux" - "document.toc" - "/home/altarin/praca-magisterska/docs/document.pdf" - "document.log" "document.idx" + "/home/altarin/praca-magisterska/docs/document.pdf" diff --git a/docs/document.log b/docs/document.log index 58a9cfc..54b37f4 100644 --- a/docs/document.log +++ b/docs/document.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Arch Linux) (preloaded format=pdflatex 2020.5.13) 16 JUN 2020 14:18 +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Arch Linux) (preloaded format=pdflatex 2020.5.13) 16 JUN 2020 14:48 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -686,71 +686,93 @@ Rozdzia\PlPrIeC {\l } 3. [35] [36] LaTeX Font Warning: Font shape `OT4/cmtt/bx/n' in size <10> not available -(Font) Font shape `OT4/cmtt/m/n' tried instead on input line 758. +(Font) Font shape `OT4/cmtt/m/n' tried instead on input line 760. -[37] [38] [39] [40] [41] [42] [43] [44] +[37] +Underfull \vbox (badness 7081) has occurred while \output is active [] + + [38] [39] [40] [41] +Underfull \vbox (badness 2080) has occurred while \output is active [] + + [42] [43] [44] File: images/training-model-graph.png Graphic file (type png) -Package pdftex.def Info: images/training-model-graph.png used on input line 1094. +Package pdftex.def Info: images/training-model-graph.png used on input line 1097. (pdftex.def) Requested size: 398.33858pt x 167.1762pt. - [45 ] -Overfull \hbox (2.09326pt too wide) in paragraph at lines 1113--1114 + [45] +Overfull \hbox (2.09326pt too wide) in paragraph at lines 1116--1117 [][][][][]\OT4/cmr/m/n/12 , za-wie-ra-j¡-ce se-kwen-cje ele-men-tów wyj-±cio-wych, któ- [] -[46] +[46 ] File: images/inference-decoder-graph.png Graphic file (type png) -Package pdftex.def Info: images/inference-decoder-graph.png used on input line 1148. +Package pdftex.def Info: images/inference-decoder-graph.png used on input line 1151. (pdftex.def) Requested size: 398.33858pt x 100.0106pt. [47 ] -Overfull \hbox (11.16063pt too wide) in paragraph at lines 1192--1193 +Overfull \hbox (11.16063pt too wide) in paragraph at lines 1195--1196 [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] [] -Overfull \hbox (4.86064pt too wide) in paragraph at lines 1195--1196 +Overfull \hbox (4.86064pt too wide) in paragraph at lines 1198--1199 [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] [] -[48] [49] [50] -Overfull \hbox (42.66057pt too wide) in paragraph at lines 1321--1322 + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [48] [49] [50] +Overfull \hbox (42.66057pt too wide) in paragraph at lines 1324--1325 [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] [] -[51] [52] - + +Underfull \vbox (badness 4713) has occurred while \output is active [] + + [51] [52] [53] + File: images/training_losses.png Graphic file (type png) -Package pdftex.def Info: images/training_losses.png used on input line 1448. +Package pdftex.def Info: images/training_losses.png used on input line 1453. (pdftex.def) Requested size: 398.33858pt x 398.33534pt. - [53] -Overfull \hbox (3.0656pt too wide) in paragraph at lines 1455--1456 + +Overfull \hbox (3.0656pt too wide) in paragraph at lines 1460--1461 []\OT4/cmr/m/n/12 Gdy zde-fi-nio-wa-ne mo-de-le zo-sta-n¡ wy-tre-no-wa-ne mo-»e-my wy-ko-rzy-sta¢ skrypt [] -[54 ] [55] [56 +[54] [55 ] +Overfull \hbox (4.86064pt too wide) in paragraph at lines 1478--1479 +[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] + [] -] -Overfull \vbox (16.08192pt too high) detected at line 1475 + +Overfull \hbox (1.56473pt too wide) in paragraph at lines 1492--1494 +[][][][][][][][]\OT4/cmr/m/n/12 , któ-re wspie-ra-j¡ for-mat se-kwen-cji sªów mu-zycz-nych omó- + [] + +[56] +Overfull \vbox (16.08192pt too high) detected at line 1522 [] Rozdzia\PlPrIeC {\l } 4. -[57] [58 +[57 + +] [58 ] (/home/altarin/praca-magisterska/docs/document.ind) [59] (/home/altarin/praca-magisterska/docs/document.aux) ) Here is how much of TeX's memory you used: - 17011 strings out of 492167 - 313197 string characters out of 6131558 - 676476 words of memory out of 5000000 - 21017 multiletter control sequences out of 15000+600000 + 17040 strings out of 492167 + 313598 string characters out of 6131558 + 668511 words of memory out of 5000000 + 21046 multiletter control sequences out of 15000+600000 27095 words of font info for 80 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 60i,12n,54p,1575b,1929s stack positions out of 5000i,500n,10000p,200000b,80000s + 60i,12n,54p,1575b,1969s stack positions out of 5000i,500n,10000p,200000b,80000s {/usr/share/texmf-dist/fonts/enc/dvips/pl/plit.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/pltt.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plrm.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plms.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plmi.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plme.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plsc.enc} -Output written on /home/altarin/praca-magisterska/docs/document.pdf (59 pages, 805532 bytes). +Output written on /home/altarin/praca-magisterska/docs/document.pdf (59 pages, 809211 bytes). PDF statistics: 332 PDF objects out of 1000 (max. 8388607) 212 compressed objects within 3 object streams diff --git a/docs/document.pdf b/docs/document.pdf index b11174e..f8d0591 100644 Binary files a/docs/document.pdf and b/docs/document.pdf differ diff --git a/docs/document.synctex.gz b/docs/document.synctex.gz index 66181b2..f570a2d 100644 Binary files a/docs/document.synctex.gz and b/docs/document.synctex.gz differ diff --git a/docs/document.tex b/docs/document.tex index 8287cc1..334cc33 100644 --- a/docs/document.tex +++ b/docs/document.tex @@ -729,8 +729,10 @@ note_on channel=0 note=60 velocity=0 time=0 Kluczowe byÅ‚o zauważenie podobieÅ„stwa miÄ™dzy jÄ™zykiem naturalnym oraz muzykÄ…. Zarówno zdanie jak i partia muzyczna skÅ‚ada siÄ™ z sekwencji elementów rozmieszczonych w czasie. Elementy te sÄ… zależne od dÅ‚ugoterminowego kontekstu, oraz od tego jaki element byÅ‚ ustawiony wczeÅ›niej. Dla jÄ™zyka naturalnego sÄ… to sÅ‚owa, dla muzyki sÄ… to nuty i akordy. Dodatkowo pomyÅ›laÅ‚em, że różne instrumenty można porównać do różnych jÄ™zyków Å›wiata. Wtedy aby stworzyć melodiÄ™, np. basu, tak aby pasowaÅ‚a pod partiÄ™ gitary, należy ,,przetÅ‚umaczy'' jÄ™zyk gitary na jÄ™zyk basu. Do tÅ‚umaczeÅ„ jÄ™zyka naturalnego wykorzystuje siÄ™ modele sequence-to-sequence, dlatego postanowiÅ‚em w modelu generowania muzyki wykorzystać wÅ‚aÅ›nie tÄ… architekturÄ™. Dodatkowo modele sequence-to-sequence majÄ… tÄ™ cechÄ™, że liczba elementów sekwencji wejÅ›ciowej może być inna niż liczba elementów sekwencji wyjÅ›ciowej. Idealnie sprawdzi siÄ™ w przypadku muzyki, ponieważ o dÅ‚ugoÅ›ci trwania Å›cieżki muzycznej nie Å›wiadczy liczba nut tylko suma ich wartoÅ›ci. \section{WstÄ™pne przygotowanie danych do treningu} + \label{section:midi} \subsection{Muzyczne ,,sÅ‚owo''} + \label{section:midi_words} Na potrzeby dostosowania danych muzycznych do koncepcji słów w zdaniu zakodowaÅ‚em pojedyncze sÅ‚owo muzyczne jako @@ -1031,6 +1033,7 @@ else: Funkcja sprawdza liczbÄ™ pojedynczych nut i akordów w Å›cieżce oraz zagÄ™szczenie nut w takcie. JeÅ›li jest wiÄ™cej niż 90\% pojedynczych nut w Å›cieżce oraz jest Å›rednio wiÄ™cej nut w takcie niż dwie wtedy uznajÄ™, że partia instrumentalna utworu jest melodiÄ…. \section{Definicja modelu} +\label{section:model} Wszystkie modele sieci neuonowych zastosowane w tej pracy, zostaÅ‚y napisane z wykorzystaniem Å›rodowiska Keras. Keras jest to Å›rodowisko wyższego poziomu, sÅ‚użące do tworzenia modelu gÅ‚Ä™bokiego uczenia. @@ -1330,7 +1333,7 @@ Warto zwrócić uwagÄ™, że przed opisanÄ… transformacjÄ… sekwencje byÅ‚y różn W tej części pokażę jak wykorzystać oprogramowanie, które stworzyÅ‚em aby wygenerować muzykÄ™ na przykÅ‚adzie. OmówiÄ™ caÅ‚y proces, nastÄ™pnie zademonstrujÄ™ wyniki. \subsection{Oprogramowanie} -Stworzone przeze mnie oprogramowanie, skÅ‚ada siÄ™ z 5 skryptów pythona. +Stworzone przeze mnie oprogramowanie, napisane w jÄ™zyku Python, skÅ‚ada siÄ™ z 2 bibiotek oraz 3 skryptów. \begin{itemize} \item \pyth{midi_procesing.py} - zawiera funkcjÄ™ potrzebne do pracy w plikami midi. @@ -1340,6 +1343,8 @@ Stworzone przeze mnie oprogramowanie, skÅ‚ada siÄ™ z 5 skryptów pythona. \item \pyth{generate.py} - wykorzystuje wytrenowane modele aby wygenerować ostatecznie plik midi. \end{itemize} +Fragmenty bilbiotek \pyth{midi_procesing.py} i \pyth{model.py} zostaÅ‚y szczegółowo omówione w rozdziaÅ‚ach ~\ref{section:midi} i ~\ref{section:model}. Natomiast skrypty \pyth{extract.py}, \pyth{train.py} i \pyth{generate.py} zostaÅ‚y napisane aby uÅ‚atwić proces generowania oraz zapewniajÄ… powtarzalność i skalowalność prowadzonych ekperymentów. + \subsection{Zbiór danych} W omawianym przykÅ‚adzie wykorzystaÅ‚em zbiór wybranych utworów midi zespoÅ‚u The Offstring. ZostaÅ‚ on skompletowany ze źródeÅ‚ dostÄ™pnych na stronie internetowej https://www.midiworld.com/. SkÅ‚ada siÄ™ z 7 utworów. @@ -1455,7 +1460,7 @@ Na potrzeby badaÅ„ trenowaÅ‚em i generowaÅ‚em klipy muzyczne dla epok 1, 10, 25, Gdy zdefiniowane modele zostanÄ… wytrenowane możemy wykorzystać skrypt \pyth{generate.py}, wtedy generujÄ…ca sieć neuonowa zostanie zasilona losowym wekorem aby wygenerować partiÄ™. W tym przykÅ‚adzie gitary a wygenerowana partia posÅ‚uży jako dane wejÅ›ciowe na pozostaÅ‚ych modeli. Ostatecznie otrzymane sekwencje zostanÄ… skompilowane do pliku MIDI. W tym momencie zostajÄ… wykorzystane informacje o programach dla każdego z intrmentów, a tempo utworu domyÅ›lnie ustawione jest na 120 BPM. Możemy również zdecydować, czy zasilenie dekodera modelu generujÄ…cego odbÄ™dzie siÄ™ za pomocÄ… losowej sekwencji elementów ze sÅ‚ownika (\textit{from\textunderscore seq}), czy losowy wektor zasili bezpoÅ›rednio stany wewnÄ™trzne dekodera $h$ i $c$ (\textit{from\textunderscore state}). \begin{python} ->>> python generate.py offstring --i 10 --m from_state +>>> python generate.py offspring --i 10 --m from_state Using TensorFlow backend. Loading models... @@ -1463,7 +1468,49 @@ Generating music... Done. \end{python} -Parametr \pyth{--i} sÅ‚uży do okreslenia liczby wygenerowanych utworów a parametr \pyth{--m} pozwala zdefiniować metodÄ™ generowania, omówionÄ… wyżej. W tym momencie pomyÅ›lnie zostaÅ‚y wygenerowane fragmenty muzyczne przy pomocy gÅ‚Ä™bokiego uczenia. +Parametr \pyth{--i} sÅ‚uży do okreslenia liczby wygenerowanych utworów a parametr \pyth{--m} pozwala zdefiniować metodÄ™ generowania, omówionÄ… wyżej. + +Przekazywanie wygenerowanych patrii to odpowiednich modeli wykonywane jest przy pomocy poniższego fragmenu kodu. + +\begin{python} + notes = dict() + + for instrument, (model, program, generator) in band.items(): + if generator == None: + notes[instrument] = model.develop(mode=MODE) + else: + input_data = seq_to_numpy(notes[generator], + model.transformer.x_max_seq_length, + model.transformer.x_vocab_size, + model.transformer.x_transform_dict) + notes[instrument] = model.predict(input_data)[:-1] +\end{python} + +SÅ‚ownik \pyth{band} przechowuje dane dotyczÄ…ce caÅ‚ego zespoÅ‚u modeli. Zmienna \pyth{intrument} jest nazwÄ… intrumentu, \pyth{model} przechowuje obiekt modelu \\ +sequance-to-sequance, \pyth{program} jest liczbÄ… naturalnÄ… odpowiajÄ…cÄ… programowi MIDI z kolekcji GM a \pyth{generator} to nazwa intrumentu na podstawie którego powinna zostać wygenerowana kolejna partia intrumentalna. + +Kompilacja do MIDI zachodzi z wykorzystaniem klas biblioteki \\ +\pyth{midi_processing.py}, które wspierajÄ… format sekwencji słów muzycznych omówionych w rozdziale ~\ref{section:midi_words}. + +\begin{python} +generated_midi = MultiTrack() +for instrument, (model, program, generator) in band.items(): + if instrument == 'Drums': + is_drums = True + else: + is_drums = False + + stream = Stream(first_tick=0, notes=notes[instrument]) + track = SingleTrack(name=instrument, + program=program, + is_drum=is_drums, + stream=stream) + generated_midi.tracks.append(track) + +generated_midi.save(save_path) +\end{python} + +W ten sposób pomyÅ›lnie zostaÅ‚y wygenerowane fragmenty muzyczne przy pomocy gÅ‚Ä™bokiego uczenia. \section{Wyniki} diff --git a/docs/document.toc b/docs/document.toc index 810347a..a3036fe 100644 --- a/docs/document.toc +++ b/docs/document.toc @@ -33,18 +33,18 @@ \contentsline {section}{\numberline {3.3\relax .\enspace }Definicja modelu}{44}% \contentsline {subsection}{\numberline {3.3.1\relax .\enspace }Model w trybie uczenia}{44}% \contentsline {subsection}{\numberline {3.3.2\relax .\enspace }Model w trybie wnioskowania}{46}% -\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{48}% -\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{48}% +\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{49}% +\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{49}% \contentsline {subsection}{\numberline {3.4.2\relax .\enspace }SÅ‚ownik}{49}% \contentsline {subsection}{\numberline {3.4.3\relax .\enspace }Elementy specjalne}{50}% \contentsline {subsection}{\numberline {3.4.4\relax .\enspace }Zakodowanie sekwencji}{50}% \contentsline {section}{\numberline {3.5\relax .\enspace }Ekperyment}{51}% -\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{51}% -\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{51}% +\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{52}% +\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{52}% \contentsline {subsection}{\numberline {3.5.3\relax .\enspace }Wydobycie danych}{52}% \contentsline {section}{\numberline {3.6\relax .\enspace }Trenowanie modelu}{53}% \contentsline {section}{\numberline {3.7\relax .\enspace }Generowanie muzyki przy pomocy wytrenowanych modeli}{54}% -\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{55}% -\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{55}% +\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{56}% +\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{56}% \contentsline {chapter}{Rozdzia\PlPrIeC {\l }\ 4\relax .\enspace Podsumowanie}{57}% \contentsline {chapter}{Bibliografia}{59}%