АЛГОРИТМЫ КЛАССИФИКАЦИИ И ИДЕНТИФИКАЦИИ АУДИОЗАПИСЕЙ
Алгоритмы работы с аудио применяются во многих областях: от биологии, где они помогают распознавать различные виды птиц по их пению, до криптографии, где голос является биометрическим ключом. Важность данных алгоритмов сложно переоценить. В повседневной жизни они встречаются в голосовых помощниках, приложениях банков, поисковых системах, распознавании музыкальных треков, и это лишь очевидная часть того, где они применяются и могут быть полезны. Все перечисленные примеры являются сложными задачами. В большинстве случаев при работе с подобными задачами алгоритм решения неясен, а шаги, которые необходимо предпринять, неизвестны, и поэтому задача представляется нерешаемой.
Нейросетевые алгоритмы, в частности, глубокое обучение, являются универсальным решением множества задач, для которых проблематично придумать традиционный алгоритм, то есть последовательность действий.
Нейросеть – это набор вершин и связей, в каждой вершине которой производятся простейшие вычисления (рис. 1). Входные сигналы приходят в вершину (нейрон), обрабатываются по определенной формуле, и полученный сигнал отправляется дальше на другие нейроны[1, с. 16–18]. При этом каждая связь имеет некий уровень значимости для нейрона𝑤𝑖, в который она входит. Этот параметр называется весовым коэффициентом или же весом сигнала. Взвешенные входные сигналы суммируются, к ним применяется функция активации 𝑓(𝑆), после чего сигнал используется сетью в других нейронах или выводится. Из таких простых элементов строится множество вершин и связей – граф, который называется нейросетью (рис. 2).
Процесс подбора данных весов называется обучением нейросети. Обучение происходит на уже имеющемся наборе входных данных и решений: веса нейросети подбираются так, чтобы в среднем для всей обучающей выборки ошибка в выходных данных и действительного решения была минимальна.
Рис. 1. Модель искусственного нейрона (1 – входные сигналы с весовым коэффициентом 𝑤𝑖, 2 – сумматор, 3 – функция активации, 4 – выходной сигнал)
Данные во входные нейроны вводятся напрямую, и также напрямую изымаются результаты. Все они представлены числовыми значениями.
Рис. 2. Искусственная нейронная сеть (нейросеть)
Простая модель нейрона позволяет выполнять вычисления на GPU (графических процессорах), так как GPU могут выполнять много небольших простых вычислений одновременно. Это ускоряет процесс обучения в несколько раз, что является важным при работе с большим количеством данных или большой нейросетью.
Для решения задачи необходимо выбрать определенный набор нейронов и правильно их соединить. Рабочие модели нейросетей насчитывают от сотен тысяч до десятков и сотен миллионов нейронов. Однако отдельные нейроны не используются в составлении нейросетей изза сложности практических задач. Вместо этого используют специальные наборы с заранее известной структурой. Их называют слоями, а из них в свою очередь составляются сложные большие нейронные сети, пригодные для решения задач. Общий вид, или структура, нейросети со всеми слоями, функциями активации, регуляризации, входными и выходными нейронами называется архитектурой нейросети.
В настоящее время в области алгоритмов машинного обучения лучше всего изучена область анализа изображений. В ней используются такие методы, как свёрточные нейросети (CNN), обработка отдельных цветовых каналов, масштабирование, преобразование изображений и т.д. Используя данные методы, можно достичь хороших результатов и во многих других областях.
В области обработки аудиофайлов существует множество как классических задач: классификации, распознавания речи (speech to text), генерация речи (speech to text), так и более сложно устроенных прикладных, например, выделение определенного голоса из зашумлённой записи, генерация музыки с определенным стилем, идентификация пения птиц. Обычно входными данными являются аудиофайлы: это могут быть отдельные звуки, шумы различной длины, музыка, речь; реже – текст или видео.
В области задач обработки аудиофайлов известные методы не приносят значительных результатов. Каждая из приведенных задач имеет свой подход к решению, однако общие механизмы позволяют улучшить этот процесс.
В качестве исходных данных аудиофайлы представляются в виде частотной спектрограммы, сохраняемой как изображение (мелспектрограммы), которая получается из импульсно кодовой модуляции цифровых файлов. Именно изображение обрабатывается нейросетью.
Стандартной практикой является использование архитектур, хорошо зарекомендовавших себя при решении других задач. В задачах обработки аудиофайлов применяли архитектуры сверхточных сетей, таких как AlexNet, VGG, Inception, ResNet, разработанных для анализа изображений. Они показывают неплохие результаты, однако требуют длительного времени и значительных ресурсов. Время обучения и тестирования составляют порядка 100-200 часов с использованием десятковGPU. Используют также предобученные модели, которые являются основной частью нейросети, а для применения к требуемой задаче с целью корректного вывода включаются дополнительные слои.
Для обработки аудиофайлов на данный момент существует несколько механизмов, показывающих хорошие результаты: это сочетание сверхточных нейросетей с LSTM (долгой краткосрочной памятью) и GRU (управляемых рекуррентных блоков) [4], а также механизмы внимания, имитирующие человеческие сигналы – большое значение они придают определенным признакам в процессе работы нейросети.
Примером применения данных методов и алгоритмов является задача классификации аудиозаписей. В процессе работы на звукозаписывающих студиях, записи аудио и хранения аудио архивов возникает проблема неопознанных файлов. Количество таких файлов может быть велико, а для распознавания того или иного аудиофайла требуется значительное количество времени. Поэтому требуется создать алгоритм, позволяющий производить идентификацию таких аудиозаписей.
При разработке решения акцент был поставлен на большее удобство использования, так как все существующие решения являются исследовательскими и не адаптированы для пользователя. Система состоит из нескольких модулей и позволяет обрабатывать практически все существующие форматы аудиофайлов.
В алгоритме классификации использовалась архитектура, совмещающая сверхточные нейросети и управляемые рекуррентные блоки [3] (рис. 3). Помимо основного алгоритма, реализован графический интерфейс, позволяющий осуществлять конфигурирование настроек алгоритма (рис. 4). Запуск алгоритма производится из консоли.
Рис. 3. Архитектура нейросети
Рис. 4. Графический интерфейс конфигуратора алгоритма
Алгоритм способен использовать практически любые форматы аудиофайлов. Структура состоит из нескольких модулей, которые удобно конфигурировать и изменять при изменении задачи или алгоритма (рис.5).
Для тестирования алгоритма классификации использовались два датасета: artist20 и датасет гитарной музыки. Artist20 содержит музыку 20 различных исполнителей: это 1300 композиций и 1,3 Gb данных формата mp3. Датасет гитарной музыки состоит из 5 различных исполнителей 495 композиций и 3,7 Gb данных; классы распределены неравномерно (165, 37, 92, 93, 108 треков соответственно).
Репозиторий реализации алгоритма классификации аудиозаписей по исполнителям доступен на Github (https://github.com/Seag011/music-artistclassifier).
Рис. 5. Схема модулей алгоритма
Результатом тестирования на датасет еartist20 стала точность в 93% (precision: 0,9349, recall: 0,9375, f1: 0,937) для 20 классов аудиозаписей на фрагментах.
Результатом тестирования на датасете гитарной музыки стала точность в 97% (precision: 0,9763, recall: 0,9755, f1: 0,9757) для 20 классов аудиозаписей на фрагментах.
Нужно заметить, что реализованная нейросеть позволяет производить обучение и проводить идентификацию за небольшое время: на обучение необходимо 2-5 часов, а для анализа одного трека – не более 5-10 секунд. При этом система способна работать и на домашнем компьютере.
Таким образом, используя различные методы из других областей, можно добиться значительных результатов в решении сложных задач классификации и идентификации аудиозаписей, причем сделать это быстро и качественно даже с помощью небольшого количества ресурсов. 