Проекты*

Автоматический распознаватель аккордов для гитары

Работа призёров открытой городской научно-практической конференции «Инженеры будущего» по направлению «Инженеры» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10–11 классов

Направление работы: Программирование
Авторы работы: ГБОУ Школа № 1747
Предметы: Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» по направлению «Инженеры» 2022 года

Актуальность

На сегодняшний день множество людей увлекаются игрой на гитаре. Начинающие гитаристы стараются выучить новые песни или изучить различные аккорды. Но зачастую новичку может не хватить знаний или музыкального слуха, чтобы подобрать аккорды к песне, а разборы в интернете могут быть неинформативны. Или же начинающий музыкант может поставить новый для себя аккорд, но не поймёт, что именно он поставил, и как аккорд называется.

В связи с этой проблемой у нас появилась идея создания приложения для распознавания аккордов, сыгранных на гитаре.

Цель

Помощь начинающим музыкантам в освоении аккордов при игре на гитаре.

Задачи

  1.  Создание приложения для распознавания аккордов на гитаре.
  2.  Изучение технологии анализа звука.
  3.  Создание модели машинного обучения.
  4.  Создание понятного интерфейса программы.
  5.  Тестирование проекта.
  6.  Последующие улучшения и обновления продукта.
  7.  Продвижение на рынке.

Оснащение и оборудование, использованное при создании работы

  • Гитары (акустическая, электро-, классическая)
  • Микрофоны разного качества

Описание

Изначально требовалось создать концепцию работы приложения. Она выглядела следующим образом: пользователь заходит в приложение, загружает файл с аккордом или аккордами, программа распознаёт аккорды и выводит результат.

В основе программы распознавания лежал принцип машинного обучения. Машинное обучение – это математическая модель или алгоритм, направленный на решение какой-либо задачи. Перед нами стояла задача классификации объектов. Алгоритм должен был выделять особые признаки из записей аккордов и в дальнейшем распознавать и классифицировать аудиозаписи, опираясь на эти признаки.

Для реализации проекта было необходимо найти способ преобразовывать, обрабатывать и выделять общие признаки каждого аккорда. С этой задачей справился способ представления аудиосигнала в виде спектрограммы. Спектрограмма – это изображение, показывающее зависимость спектральной плотности мощности сигнала от времени.

Но простой спектрограммы было недостаточно для выделения каких-либо признаков отличия каждого аккорда. Исходя из этого, авторы решили использовать особый вид спектрограммы – хроматограмму. Хроматограмма – это разновидность спектрограммы, разделяющая звук на определённые ноты.

С этой задачей справилась открытая библиотека Librosa.

На определённом промежутке времени значение каждой ноты изменяется от 0 до 1. Исходя из этого, мы смогли очистить хроматограмму от лишних значений постороннего шума и т. д. Пусть значения меньше 0,8 будут приниматься за 0, а всё, что выше, – за 1. Таким образом, мы выделили главные звучащие ноты.

Затем вычислили суммарный уровень сигнала каждой ноты на всём промежутке времени. В нашем случае сигнал ноты A – самый большой. После этого записывалось суммарное значение каждой ноты в файл формата CSV.

Для обучения модели нам понадобился большой объём записей аккордов. Было сделано около 100 записей шести аккордов: Am, C, F, Em, E, A. Каждый аудиофайл был обработан по алгоритму, описанному выше, но именно для обучающей выборки все данные были записаны в один большой CSV-файл с добавлением ещё одного столбца с правильным обозначением аккорда.

Затем, используя библиотеки Pandas и SkLearn, мы обучили модель машинного обучения и протестировали её.

Результаты работы/выводы

1. Приложение создано.

2. Приложение успешно функционирует и выполняет поставленные задачи: правильно распознаёт аккорды и выводит полученный результат.

3. Приложение эксплуатируется реальными пользователями.

Перспективы использования результатов работы

Анализ рынка дал понять, что приложение может получить широкий охват аудитории начинающих музыкантов. Программа будет существовать по принципу Open-Source. Пользователи смогут сами улучшать приложение и предлагать идеи.

Разработчики будут выдвигать обновления и улучшать работу приложения, появятся новые функции для удобства пользователя.

Мнение автора

«Мы надеемся на долгое существование нашего проекта. Авторы рады, что смогли поучаствовать в Открытой городской научно-практической конференции «Инженеры будущего» и представить свою работу людям. Мы желаем успехов и достижений другим участникам конференции. Было представлено много различных и интересных работ: поисковые устройства, умные ёмкости, различные приложения и множество других. Мы желаем Открытой городской научно-практической конференции «Инженеры будущего» больше перспективных и классных проектов»