Вступление

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

В этой статье мы опишем наши усилия в Crater Labs по разработке мультимодальной сети GAN, которая использует как видео, так и аудио сигналы для улучшения речи. В частности, мы предлагаем использовать форму губ и черт лица, чтобы направлять нашу модель в устранении фонового шума.

Часть первая: Начиная с SEGAN

SEGAN [1] - это тип условного GAN, который использует дополнительную информацию, чтобы помочь генератору создавать «хорошие» образцы. При улучшении речи речь содержится в исходной зашумленной речи. Сама зашумленная речь используется как дополнительная информация, необходимая для генерации улучшенной речи.

Генератор SEGAN показан на рисунке ниже, где он содержит кодировщик, который оценивает вектор признаков по зашумленной речи c, а затем по белому шуму z объединяется с c. Точно так же все векторные слои из кодировщика используются в качестве дополнительной информации, чтобы помочь генератору таким же образом.

Дискриминатор имеет аналогичную архитектуру кодировщику генератора. Но принимает на вход как шумную, так и чистую речь.

Поскольку в SEGAN доступна речь без шума, она используется в качестве цели для улучшения речи. В дополнение к потерям GAN, описанным выше, также включены потери L1, которые представляют собой абсолютную разницу между чистой речью и сгенерированной речью. Хотя SEGAN продемонстрировал некоторые успехи в улучшении речи, как и большинство GAN, он склонен к коллапсу.

Часть вторая: улучшение SEGAN

SEGAN, реализованный первоначальным автором, показывает значительные перспективы в улучшении речи. Мы предположили, что если мы сможем (а) стабилизировать SEGAN и (б) включить черты лица, мы сможем улучшить способность SEGAN улучшать речь. В частности, мы стремимся достичь наших двух целей за счет включения «спектральной нормализации» [2] и нескольких методов, не использованных в исходной реализации SEGAN.

Стабилизирующий SEGAN

Слои свертки, используемые в SEGAN, создают «артефакты шахматной доски» [3] при генерации изображений. Соответствующим артефактом в области звука будет постоянный гул с определенной высотой звука в сгенерированной речи. Оказывается, дискриминатор может идентифицировать артефакт, который привел к гудению, и имеет почти 100% -ный шанс отличить сгенерированную речь от реальной речи.

Сила перестановки фаз

Уловка состоит в том, чтобы дискриминатору было сложнее изучить такие артефакты. Это делается путем случайного смещения аудиовхода дискриминатора на несколько пикселей. Этот процесс получил название «перестановка фаз» [4]. График ниже показывает это [обратите внимание, что мы используем соглашение в LSGAN, где потери генератора составляют 0,5 × (D (G (z)) - 1) ²]:

Обучая SEGAN с помощью перестановки фаз, генератор сходится к D (G (z)) = 0,5, идеальному сценарию, когда 50% сгенерированной речи выглядят реальными для дискриминатора. После внедрения Phase Shuffle в SEGAN мы также наблюдали падение потерь L1.

Обучив SEGAN технике перестановки фаз, теперь мы готовы оснастить SEGAN визуальными подсказками.

Включение черт лица

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

Чтобы получить особенности рамки губ, мы захватили кадры из видео с веб-камеры и сложили их по глубине. Затем кадры передаются в глубокую сверточную нейронную сеть. Результатом каждого слоя является набор элементов обрамления губ.

Мы использовали «метод проекции» [5], первоначально предложенный для второго последнего слоя дискриминатора, и наблюдали значительно улучшенные результаты. Проекция включает скалярное произведение между двумя наборами функций. Если два набора функций совпадают (т. Е. Похожи), скалярное произведение возвращает положительное число. Если они не похожи, будет возвращено отрицательное число. Было показано, что метод проецирования превосходит другие методы использования дополнительной информации, такие как метод конкатенации, используемый в SEGAN. Мы будем использовать метод проецирования для наших рамок для губ.

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

В ходе предварительных экспериментов наивная реализация метода привела к увеличению функции потерь на порядок. Причина - сумма в скалярном произведении. Чтобы позаботиться об этом, мы взяли среднее значение, а не сумму, когда выполняется скалярное произведение. Таким образом, выравнивание по-прежнему выполняется с приведением функции потерь к обычному диапазону.

Кондиционирование генератора с непрерывными метками классов

В такой литературе, как cGANs с проекционным дискриминатором, ограничение сгенерированных выборок определенными классами обычно выполняется с помощью условной пакетной нормализации [6], где для каждого класса используются разные весовые коэффициенты масштабирования и смещения. В наших приложениях метки классов состоят из рамок губ, связанных с каждым аудиоклипом. Было бы непрактично использовать разные веса для каждой рамки губ.

Реальная проблема заключается в том, что пакетная нормализация может привести к коллапсу SEGAN, особенно когда она реализована в генераторе. Без пакетной нормализации нам пришлось бы объединять элементы рамки губ с аудио. Однако это приводит к дополнительным затратам памяти.

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

Использование проекции в генераторе не только улучшает обучение, но также стабилизирует GAN. Мы также заметили, что обобщение ухудшается примерно в то же время, когда GAN разрушается. На рисунке ниже показано, что стабильна только модель с проекцией как в дискриминаторе, так и в генераторе. После 20 000 итераций базовый SEGAN разрушается, и он начинает переоснащаться. Для модели с только проекцией в дискриминаторе обучение несколько замедляется и уступает место модели с проекцией как в дискриминаторе, так и в генераторе.

Выводы

Предварительно обученный SEGAN может довольно хорошо улучшить некоторые звуки. Мы попытались улучшить результаты, обучив SEGAN непосредственно на наборе данных, используя только аудиоклипы. Однако мы обнаружили, что SEGAN быстро разрушается и начинает переоснащаться. Мы считаем, что это связано с тем, что данные настолько сложны, что SEGAN не может их изучить.

Как оказалось, включение модуля обработки рамок губ в GAN может стабилизировать SEGAN. Черты лица могут помочь в задачах улучшения речи. Мы расширили метод проецирования, чтобы использовать его на каждом уровне генератора, и наблюдали повышенную стабильность и потерю проверки в GAN с улучшением речи.

Кроме того, мы обнаружили, что стабильность GAN коррелирует с обобщающей способностью модели. По мере того, как GAN рушится, модель становится все труднее обобщать.

Примечания: набор данных

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

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

  1. В нем 540 спикеров, что в 30 раз больше, чем у того, на котором обучался SEGAN.
  2. У всех спикеров есть уникальные ответы на один и тот же вопрос.

использованная литература

[1] Сантьяго Паскуаль и др., SEGAN: Сеть противоборства, направленная на усиление речи, https://arxiv.org/abs/1703.09452

[2] Такеру Миято и др., Спектральная нормализация для порождающих враждебных сетей. Https://arxiv.org/pdf/1802.05957.pdf

[3] Одена и др., Деконволюция и артефакты шахматной доски. Https://distill.pub/2016/deconv-checkerboard/

[4] Крис Донахью и др., Синтез звука с помощью GAN. Https://openreview.net/pdf?id=r1RwYIJPM

[5] Такеру Миято и др., CGAN с проекционным дискриминатором https://arxiv.org/pdf/1802.05637.pdf

[6] Винсент Дюмулен и др., Научное представление художественного стиля https://arxiv.org/abs/1610.07629