Введение
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