Введение
1. Проблематика работы………………………………………….…………..6
1. Разработанность темы………………………………….…………7
2. Цель и задачи исследования……………………………………………….7
3. Гармонизация мелодий……………………………..………...…………….8
3.1 Модель на основе сопоставления шаблонов…………..……….9
3.2 Модель на основе НММ………………………………………..10
3.3 Модель на основе генетического алгоритма……….……..…..12
3.4 Глубокая модель на основе BILSTM………………..………..14
3.5 Глубокая многозадачная модель MTharmonizer…...…………15
4. Сравнительное исследование.………….…………………….......……....19
4.1 Субъективная оценка ..…………………………….…............21
4.2 Объективная оценка ..…...…………………………….….........24
4.3 Оценка наилучшей модели...………………………………….26
5. Разработка программы для гармонизации мелодий………………….…27
5.1 Функционал программы……………………………………..…27
6. Алгоритм работы программы…………………………………………….28
6.1 Работа с wav файлами……………………………….…………28
6.2 Преобразование Фурье…………………………………….…..29
6.3 Pitch Class Profile (PCP) ……………………………………..…30
6.4 Нормировка PCP……………………………………………….30
6.5 Полносвязная нейронная сеть…………………………………30
6.5.1 Архитектура полносвязной нейросети……………………..31
6.5.2 Функция активации (Rectified Linear Unit) ………………..32
6.5.3 Функция активации (сигмоидная функция)………………..33
6.6 Обучение нейронной сети…………………………………………34
6.6.1 Обучение с учителем…………………………………………34
6.6.2 Параметры нейронной сети…………………………………..36
6.6.3 Метрики качества…………………………………………….37
6.Предсказания модели…………………………………….………….38
7. Итоги……………………………………………………………….…….39
8. Будущая исследовательская деятельность……………………………..41
Термин гармония или гармонизация используется для обозначения аккордового сопровождения. Задача автоматической гармонизации направлена на построение модели, которая генерирует последовательность аккордов исходя из заданной мелодии. То есть, под термином гармонизация мы подразумеваем разложение звука на аккорды. Все программы по гармонизации звуковых сигналов работают по принципу: программа слышит мелодию, определяет аккорды и выдает файл с последовательностью этих аккордов. Гармонизация музыки – сложная задача, существует много способов гармонизации одной и той же мелодии, а то, что делает ту или иную гармонизацию приятной часто зависит от музыкального жанра и других факторов.
Тональная музыка, которая охватывает большую часть западной музыки, определяет специфические мотивы отношений между аккордами на основе иерархической централизации - функции тональности связаны с «тоникой». То есть, тональная музыка подразумевает под собой зависимость от «тоники» - ноты, с которой произведение начинается и которым оно, как правило, заканчивается: все сводится к ней – так тоническая музыка и приобретает свой привычный и приятный человеческому уху гармоничный строй и приятное звучание (в отличие от атонической, где ноты не зависят друг от друга, не подчиняются законам тоники).
Создание приятной музыки часто зависит не только от технической стороны музыкальной грамоты, но и от тонкостей, долгосрочных зависимостей и культурных контекстов, которые могут быть легко доступны для композитора-человека, но будут очень трудно воспринимаемы и определяемы машиной.
В данной работе мы представляем исследование, оценивающее эффективность канонических подходов к решению поставленной задачи, а затем создаем программу по определению аккордов в музыкальной прогрессии. В сравнительном исследовании будут оцениваться модели, гармонизирующие мелодии с участием нескольких музыкальных инструментов, звучащих одновременно. Мы же на данном этапе своей научной деятельности создадим модель, которая будет способна распознавать гитарную музыку, виолончель и пианино. Гармонизация сложных оркестровых композиций будет рассмотрена нами, как поле для дальнейшего исследования. Сравнительное исследование включает в себя модель, основанную на согласовании шаблонов, скрытую модель Маркова, генетический алгоритм и два метода глубокого обучения. Сами мы создадим модель глубокого обучения с полносвязной архитектурой.
Оценка первых пяти моделей проводится на наборе данных Hookthe-ory Pianoroll triad Dataset (HTPD3 состоит всего из 48 трезвучий). В итоге мы получаем результаты объективной оценки с использованием шести различных метрик. К сожалению, данный датасет оказался закрытым, и мы не смогли провести на нем обучение нашей модели.
Мы же обучаем нашу модель на наборе данных, состоящем из 10 основных аккордов ("C", "D", "Dm", "E", "Em", "F", "G", "A", "Am", "Bm"). Мы берем такой набор аккордов, так как они являются основными и с помощью них можно будет добиться хороших результатов гармонизации мелодий с одним инструментом. Оценка качества получившейся проводится с помощью двух метрик: Categorical accuracy и Top-k Accuracy.
Проанализировав различные модели гармонизации (согласование шаблонов, скрытая Марковская модель (HMM), генетический алгоритм, глубокая нейронная сеть на основе BILSTM и глубокая нейронная сеть MTharmonizer) и выяснив, что наилучший результат дают модели, основанные на глубоком обучении, мы создали свою модель с использованием глубокой полносвязной нейронной сети. Программа для гармонизации мелодий показала очень хорошие результаты для распознавания гитарной музыки. Предполагается, что данная модель нейронной сети будет хорошо распознавать бардовские песни, лирические композиции, рок музыку, так как в музыке такого типа, как правило ведущий инструмент – гитара. Для гитары точность предсказания составила 99 процентов.
Что же касается фортепиано и виолончели, здесь модель обучилась чуть хуже – на это повлияли длинные и тягучие особенности звуков данных инструментов. Но это означает только пространство для дальнейших исследований.
Работа выложена в общий доступ, к ней написаны подробные комментарии с целью максимально понятно донести до людей цель и устройство программы. Ссылку прикрепляю: https://github.com/Ustinova1234567/chrod_recognition
[1] “Автоматическая гармонизация мелодий с помощью аккордов триады”. Yin-Cheng Yeh, Wen-Yi Hsiao, Benjamin Genchel. (2021) [Электронный ресурс]. URL: https://www.tandfonline.com/doi/full/10.1080/09298215.2021.1873392 (дата обращения 21.08.2021)
[2] “Deep learning techniques for music generation: A survey”. Briot, J. P., Hadjeres, G., & Pachet, F. (2017). Preprint arXiv:1709.01620. [Google Scholar] (дата обращения 08.04.2022)
[3] “Генетические алгоритмы: фитнесс – функция”. [Электронный ресурс]. URL: https://coderlessons.com/tutorials/akademicheskii/izuchite-geneticheskie-algoritmy/geneticheskie-algoritmy-fitnes-funktsiia (дата обращения 05.04.2022)
[4] “Chord generation from symbolic melody using BLSTM networks. In Proceedings of the international society for music information retrieval conference”. Lim, H., Rhyu, S., & Lee, K. (2017). (pp. 621–627). [Google Scholar] (дата обращения 08.03.2022)
[5] “Automatic functional harmonic analysis”. De Haas, W. B., Magalhães, J. P., Wiering, F., & Veltkamp, R. C. (2014). Computer Music Journal, 37(4), 37–53. https://doi.org/10.1162/COMJ_a_00209 [Crossref], [Web of Science ®], [Google Scholar] (дата обращения 08.03.2022 )
[6] “Realtime Chord Recognition of Musical Sound: a System Using Common Lisp Music”, Takuya Fujishima, 1999 (дата обращения 05.04.2022)
[7] “Neural Networks For Musical Chords Recognition”, J. Osmalsyj, J-J. Emrechts, S. Pierard, M. Van Droogenbroeck, 2012 (дата обращения 15.04.2022)
[8] “Neural networks for musical chords recognition” J. Osmalskyj, J-J. Embrechts, S. Piérard, M. Van Droogenbroeck. NTELSIG Laboratory, University of Liège, Departement EECS (дата обращения 15.04.2022)
[9] “Структура и принцип работы полносвязных нейронных сетей”. [Электронный ресурс]. URL: https://proproprogs.ru/neural_network/struktura-i-princip-rabotypolnosvyaznyh-neyronnyh-setey (дата обращения 20.04.2022)
[10] “Fourier Transform at Action”. [Электронный ресурс]. URL: http://makeloft.xyz/lessons/signal-processing/fourier-transform (дата обращения 20.04.2022)
[11] “Функции активации нейросети: сигмоида, линейная, ступенчатая, ReLu, than” [Электронный ресурс]. URL: https://neurohive.io/ru/osnovy-data-science/activation-functions/ (дата обращения 16.05.2022)
[12] “Deep Learning Techniques for Music Generation -- A Survey”. Jean-Pierre Briot, Gaëtan Hadjeres, François-David Pachet. [Электронный ресурс]. URL: https://arxiv.org/abs/1709.01620 (дата обращения 16.05.2022)
[13] “Метод генетического программирования на основе моделирования противоборствующих популяций автоматных программ”. Кулев Владимир Анатольевич. [Электронный ресурс]. URL: http://is.ifmo.ru/diploma-theses/_kulev_report.pdf (дата обращения 21.05.2022)
[14] “Сопоставление с образцом - Pattern matching”. [Электронный ресурс]. URL: https://wiki5.ru/wiki/Pattern_matching (дата обращения 23.05.2022)
[15] “Bidirectional LSTM”. [Электронный ресурс]. URL: https://paperswithcode.com/method/bilstm (дата обращения 21.05.2022)
[16] “Скрытая марковская модель (HMM)”. [Электронный ресурс]. URL: https://russianblogs.com/article/2372866572/ (дата обращения 29.04.2022)
[17] “WAV. Расширение файла”. [Электронный ресурс]. URL: https://www.reviversoft.com/ru/file-extensions/wav (дата обращения 22.05.2022)
[18] “Практики реализации нейронных сетей”. [Электронный ресурс]. URL: https://neerc.ifmo.ru/wiki/index.php?title=Практики_реализации_нейронных_сетей