Разумное пение

Разумное пение

22 июля 2021

«Пение — универсальный язык красоты, доступный для понимания всем вне зависимости от возраста и национальности. В красивом вокале нет фальши, а звуки гармонируют. Мелодия — набор звуков. Условные знаки, обозначающие звуки, — это ноты. Хорошо спеть — значит «попасть в ноты», то есть точно повторить мелодию, либо придумать свою собственную так, чтобы звуки в ней сочетались», — пишет преподаватель вокала с многолетним стажем Екатерина Карпенко, разработавшая методику онлайн-сервиса обучения пению. Программа учит пользователя «попадать в ноты» и оценивает точность освоения навыков.

С 2015 года программисты EDISON разрабатывают «Разумное пение» — сервис, который представляет пение в форме двухмерного графика. На оси абсцисс откладывается время в миллисекундах, на разделенной по нотам оси ординат — частота звука в герцах. Алгоритм считает «основную» высоту звука, наносит ее на плоскость, составляя тем самым график пения. Программа анализирует исполнение и сравнивает расхождение с эталонной дорожкой, заранее записанной учителем. По итогам упражнения программа выставляет оценку, основанную на качестве попадания в ноты.

Построить алгоритм, определяющий высоту звука, оцифрованного микрофоном, оказалось сложно. В идеальных условиях можно использовать метод автокорреляции. В реальных же условиях возникает много посторонних шумов: шуршание одежды, звуки улицы и так далее. Точность алгоритма неприемлемо падает. Применение фильтров шумоподавления, попытки математической подготовки аудиопотока перед автокорреляцией не дали результатов. В какой-то момент инженеры опробовали библиотеку Aubio на языке C, реализующую несколько алгоритмов, один из которых, YINFFT, оказался лучшим по соотношению точности и скорости. Для сайта YINFFT был портирован в JavaScript.

Сигнал делится на фреймы длиной около 12 мс. Звуки тише минимальной громкости фильтруются, затем применяется окно Хеннинга. Подготовленный сигнал попадает на вход алгоритма вычисления высоты звука YINFFT. На выходе — высота звука и уровень достоверности. Недостоверные данные отбраковываются, а по оставшимся строится график.

Объем работ:

  • создание сайта;
  • создание обучающей программы;
  • возможность поделиться оценкой выполнения упражнения в VK, Facebook, Twitter;
  • подключение платежей «Робокассы».
Разумное пение, читаем книгу
Разумное пение, плейлист
Разумное пение, выполненные упражнения
Разумное пение, аудио-материалы