Нейронные сети для звука в реальном времени: введение

Это первая из пяти статей об использовании нейронных сетей для звука в реальном времени.

Искусственный интеллект с каждым днем ​​все больше влияет на нашу жизнь, осознаем мы это или нет. От каналов социальных сетей до покупок в Интернете и беспилотных автомобилей - A.I. меняет наш образ жизни и то, как мы принимаем решения.

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

Нейронные сети - это разновидность искусственного интеллекта. Теория слабо основана на том, как работает мозг, который состоит из нейронов, которые образуют сложные связи, которые делают нас такими, какие мы есть. Вместо биологических клеток он использует числовые значения или «узлы», которые образуют слои и связаны определенными математическими способами. Оказывается, даже простые структуры этих искусственных нейронов можно использовать для впечатляюще сложных задач, таких как чтение рукописных букв или распознавание лиц по изображениям.

Зачем использовать нейронные сети для аудио? Одно из распространенных приложений - преобразование текста в речь или речь в текст. Такие продукты, как Alexa, которые слушают наш голос и понимают, о чем мы его просим (большую часть времени), и отвечают голосом, который звучит как человеческий. Но есть много других приложений для нейронных сетей и аудио.

Качество звука имеет большое значение в музыкальной индустрии. Мы хотим слышать наилучший звук, исходящий из наших стереосистем или наушников. Аналоговое оборудование часто ценится за то, что оно добавляет теплоте звуку. Например, в высококачественных гитарных усилителях используются вакуумные лампы для усиления и перегрузки чистого гитарного сигнала. Они искажают звук так, чтобы это было приятно для слуха. Усилители на базе транзисторов (твердотельные) слишком хороши в том, для чего они созданы. Именно недостатки в том, как электронные лампы усиливают звук, добавляют что-то особенное. Но они дорогие и хрупкие, и, как любая лампочка, со временем перегорят.

Нейронные сети можно использовать для точного моделирования этих нелинейных аудиокомпонентов. Этот тип моделирования называется моделированием «черного ящика», потому что нас не интересует, как работает физическая система, а только то, что модель реагирует таким же образом. Противоположным подходом является моделирование методом «белого ящика», когда подробный анализ схемы и уравнения определяют каждый электрический компонент. Гибридный подход называется моделированием «серого ящика».

Использование практически любой нейронной сети включает три шага:

  1. Сбор данных: модель должна иметь данные, на которых можно учиться. В случае гитарного усилителя нейронная сеть должна принимать чистый гитарный сигнал и моделировать динамический отклик усилителя. Для этого требуются две отдельные записи: вход в систему и выход из системы (где система - это аудиоусилитель / схема / компонент). Аудиозапись - это самостоятельное искусство, и есть много способов добиться наилучшего звучания.

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

3. Развертывание модели. После обучения модели нейронной сети вы можете развернуть ее для использования в конкретной задаче. Это также известно как «вывод», потому что модель предполагает, как реагировать на новые входные данные, основываясь на том, что она узнала на этапе обучения. В случае модели гитарного усилителя в реальном времени сеть постоянно обрабатывает живой аудиосигнал. Цифровые звуковые эффекты обычно работают на частоте 44,1 кГц (44 100 выборок в секунду) или выше. Это огромный объем данных, который нужно преобразовать из аналогового в цифровой, пройти через нейронную сеть, преобразовать обратно в аналоговый и отправить на динамики до того, как ваш слух заметит задержку. Для этого требуются высокопроизводительные алгоритмы.

В этой серии статей предполагается, что читатель имеет базовые представления о языках программирования и искусственном интеллекте. frameworks и предназначен в качестве справочного материала для реализации аудиорешений в реальном времени с использованием нейронных сетей. В основном я буду использовать проект GuitarML для своих примеров кода. GuitarML - это набор гитарных плагинов с открытым исходным кодом и связанное с ними программное обеспечение машинного обучения, используемое для обучения моделей. Мы шаг за шагом рассмотрим три разные архитектуры нейронных сетей и их алгоритмы в реальном времени. Программное обеспечение реального времени использует аудиофреймворк JUCE и написано на c ++. Код машинного обучения использует TensorflowKeras) и PyTorch.

В следующей статье я рассмотрю примеры кода модели нейронной сети WaveNet для обработки звука в реальном времени. Перейдите к следующей статье, нажав здесь.

Если вам нравятся мои работы здесь и над GuitarML, подумайте о том, чтобы присоединиться к моему Patreon для сообщений о негласных разработках программного обеспечения и нейросетевых моделей усилителей / педалей для моих плагинов.