Файл testing.py используется, чтобы запустить программу. Там же находятся комментарии, которые помогут разобраться в работе программы.
Нужные для первого запуска программы тестовые файлы уже находятся в репозитории.
- Initialization matrix - показывает оценку вероятности того, что песня начнется с данного аккорда.
- Transition matrix - показывает оценку вероятности того, какой аккорд будет следующим после текущего.
- Emission matrix - показывает вероятность того, с какой вероятностью мы распознаем данный аккорд, когда на самом деле был текущий аккорд (который был на самом деле в песне).
Распознавание для Emission matrix происходит с помощью классификатора.
-
Создаются PCP шаблоны, которые тренируются на датасете. Далее, классификатор реализуется как минимальная норма между PCP векторами тренировочных щаблонов. Таким образом и происходит "распознавание", которое было в пояснении к работе Emission matrix.
-
Используются теоритические шаблоны, которые находятся в templ.txt. Классификатор, как в варианте 1.
-
Шаблоны не используются. Готовый классификатор k nearest neighbors тренируется на данных и используется для тренировки Emission matrix. (Аналогично вышеописанным классификаторам)
Далее полученные матрицы и классификатор используются в алгоритме Витерби, который и дает нам окончательный ответ относительно аккордов в песне
В папке test_chords_txt находятся подготовленные файлы, которые будут использоваться для первого запуска проекта.
В папке training_result при необходимости будут записаны основные данные натренированной Марковской модели.
В папке rnn_data после запуска программы появлятся данные для тренировки нейронной сети.