Особенности генеративных моделей для аудиосинтеза

Сегодня я прочитал статью об использовании Deep Learning для синтеза звука (от звуковых эффектов до музыкальных инструментов). Источник статьи можно найти внизу этой статьи.

Как объяснялось в моей предыдущей статье (https://bit.ly/3qysWQt), генерация контента в настоящее время является большой тенденцией в области ИИ с приложениями, варьирующимися от создания поддельных видео до увеличения разрешения изображения. Вся эта область глубокого обучения опирается на сетевую архитектуру, часто называемую GAN (генеративно-состязательная сеть), которая изначально была разработана для создания изображений.

Авторы сегодняшней статьи исследовали 2 разных подхода к синтезу звука, оба основаны на оригинальной архитектуре GAN, предложенной Гудфеллоу и его коллегами в 2014 году. Оба метода были разработаны с учетом специфики звуковых данных, и оба подхода показывают многообещающие результаты.

Во-первых, нам нужно понять, чем звуковые данные отличаются от данных изображения. Изображения часто рассматриваются как двумерные объекты: они имеют ширину и высоту. Вот почему, например, когда мы ищем новые обои, нам нужно сначала узнать размер нашего экрана, а затем искать изображения, соответствующие ему. Это может быть ширина 1920 и высота 1080 для экрана 1080p или ширина 2560 и высота 1440 для экранов 1440p. Мы также можем думать о дюймах экрана (наибольшая длина между двумя противоположными углами экрана), связанных с форм-фактором или соотношением сторон (например, 16:9).

Эти различные переменные упускают из виду самое важное измерение изображения: разрешение изображения, то есть количество пикселей, из которых оно состоит. Раньше ширина и высота выражались в пикселях: экрану 1080p 16:9 соответствует экран, способный отображать 1920 пикселей на строку и 1080 пикселей на высоту, что в сумме составляет более 2 миллионов пикселей. Чем больше пикселей, тем больше деталей может содержать изображение. Но все ли пиксели эквивалентны? Нет. Отдельный пиксель может принимать только конечное число значений, которое называется битовой глубиной. Битовая глубина 8 означает, что каждый пиксель может принимать один из 256 цветов, а битовая глубина 10 означает, что каждый пиксель может принимать один из 1024 цветов.

Итак, как мы описываем изображение? Мы знаем, что изображение состоит из пикселей. Мы также знаем, что каждый пиксель может принимать конечное число цветов (разрядность) и что изображение состоит из двумерной сетки пикселей, описываемой шириной и высотой. Зная размер изображения, нам нужно только указать значение каждого пикселя, чтобы иметь возможность восстановить изображение. Для изображений размером 128x128 пикселей потребуется 16 384 значения: по одному на каждый пиксель. Мы все еще кое-что упускаем: как изображение может быть таким детализированным на большинстве 8-битных мониторов 1080p, если каждый пиксель может принимать только один из 256 цветов? Это возможно, потому что каждый пиксель может содержать цвета из 3 каналов: красного, зеленого и синего, которые часто называют RGB. Поскольку каждый канал может отображать 256 значений, мы получаем, что каждый пиксель может отображать более 16 миллионов цветов. Вся эта информация объясняет, почему в глубоком обучении мы представляем данное изображение как набор из 3 субизображений, каждое из которых представляет собой двумерные объекты с шириной, высотой и значением, представляющим значения пикселей из одного из каналов RGB. .

Теперь нам нужно понять, как представлять аудиоданные. Звук состоит из звуковых волн, которые состоят из волн сжатия. Волну сжатия можно рассматривать как волну, проходящую через различные материалы (например, воздух) и сжимающую его на своем пути. Как только это сжатие достигает наших ушей, оно заставляет нашу барабанную перепонку вибрировать, и этот механический эффект превращается в электрический сигнал, который поступает в наш мозг, который может анализировать его как звук. Существует множество различных методов преобразования информации о волнах сжатия в цифровую информацию, основным из которых является «импульсно-кодовая модуляция» (или ИКМ), которая представляет звуки волн в числах. Здесь следует сказать, что при переходе от реальной звуковой волны к набору чисел или кодированию звуковой информации часто приходится терять часть информации по пути. PCM может представлять любую форму волны в виде двумерного объекта, который состоит из пар (временная метка — амплитуда волны), и после повторной нормализации по времени (т. е. установка точной единицы времени) может быть представлен в виде одномерного объекта, подобного нотный лист.

Теперь, когда мы поняли размерность числовых звуковых объектов, нам нужно понять их разрешение. Разрешение изображения зависит от его битовой глубины и количества пикселей. С другой стороны, разрешение звука может быть представлено двумя значениями: битовой глубиной, которая представляет диапазон амплитуды звука, и его частотой дискретизации, которая соответствует количеству звука в секунду (и которое можно увидеть в звуковое разрешение). Типичными значениями для аудио могут быть битовая глубина 16 бит (каждая выборка принимает одно из 65 536 значений) и частота дискретизации 16 кГц (16 000 выборок в секунду).

Мы можем узнать, что одна минута звука 16 кГц представляет 16 000 значений, которые эквивалентны изображению размером 128x128 пикселей. Мы также можем видеть, что каждое звуковое значение 16-битного звука может принимать одно из 65 536 значений против более чем 2 миллионов для 8-битных изображений и его 3-х каналов. С точки зрения размеров, звук может быть представлен как одномерный объект (однажды нормализованный по времени), а изображения могут быть представлены как набор трех двумерных объектов (ширина, высота, значение в пикселях).

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

Первый подход состоит из GAN, где размеры самого первого слоя были адаптированы к одномерным аудиообъектам. В этом подходе мы в основном берем GAN и адаптируем размеры структуры. Они назвали родственную сетевую структуру WaveGAN.

Второй подход более прямолинейный: мы представляем звуки в виде изображений (спектрограмм) и надеемся, что обычная GAN «Генерация изображений» сможет учиться на них. Этот метод, не требующий столь значительных изменений в архитектуре, имеет большой недостаток: сначала нам нужно превратить звук в изображение (и, возможно, потерять информацию), а затем снова превратить изображение в звук. Связанную сетевую структуру они назвали SpecGan.

Чтобы протестировать две их структуры вместе, авторы использовали набор данных 1-секундных образцов людей, произносящих числа от один до девять. В каждом случае сеть учили выдавать свое человекоподобное число. Примеры результатов каждой сети можно найти здесь: https://chrisdonahue.com/wavegan_examples/.

После обучения своих алгоритмов они попросили разных людей прослушать звуки из 3 источников: исходный набор данных (он же реальные люди), выходные данные WaveGan (GAN на звуковых данных) и выходные данные SpecGan (GAN на звуковых данных, преобразованных в изображения). - спектрограммы). Участников просили: угадать, какое число было произнесено, насколько это было легко, насколько разнообразны были выходные данные и каково было общее качество звука.

Реальные звуки (звуки из исходного набора данных реальных человеческих чисел) получили самые высокие оценки с точностью 95% (участники узнавали число в 95% случаев), против 58% для WaveGan и 66% для SpecGAN. Эти результаты, хотя и были очень далеки от точности в реальном наборе данных, все же были намного выше производительности случайной модели: в наборе данных 9 чисел, и если бы выходные данные WaveGAN и SpecGAN были понятны, мы могли бы ожидать, что участники будут достичь точности 1/9 ~ 11%. Авторы также отметили, что наибольшей точности двух моделей добилась SpecGAN. Когда дело доходит до качества звука, простоты и разнообразия, WaveGAN в целом показал лучшие результаты, чем SpecGAN. Это означает, что, хотя выходные данные SpecGAN угадывались легче, участники предпочитали звук, генерируемый WaveGAN.

Эти результаты показывают, что два разработанных ими подхода приводят к многообещающим результатам в создании звука с помощью GAN.

Для более подробного объяснения WaveGAN я приглашаю вас посмотреть отличное видео от Henry AI Labs: https://www.youtube.com/watch?v=BA-Z0KJIyJs.

Источник: Донахью, К., Маколи, Дж. и Пакетт, М., 2018. Состязательный аудиосинтез. препринт arXiv arXiv:1802.04208.