Сверточная нейронная сеть (CNN) для аудио

Я следил за учебными пособиями на DeepLearning.net, чтобы узнать, как реализовать сверточную нейронную сеть, которая извлекает функции из изображений. Учебник хорошо объяснен, легко понять и следовать.

Я хочу расширить ту же CNN, чтобы одновременно извлекать мультимодальные функции из видео (изображения + аудио).

Я понимаю, что видеовход — это не что иное, как последовательность изображений (интенсивность пикселей), отображаемых в течение определенного периода времени (например, 30 кадров в секунду), связанного со звуком. Однако я не совсем понимаю, что такое звук, как он работает или как он разбивается на части для передачи в сеть.

Я прочитал пару статей на эту тему (извлечение/представление мультимодальных функций), но ни в одной из них не объяснялось, как звук вводится в сеть.

Более того, из своих исследований я понял, что мультимодальное представление — это то, как на самом деле работает наш мозг, поскольку мы намеренно не фильтруем наши чувства, чтобы достичь понимания. Все это происходит одновременно без нашего ведома об этом через (совместное представление). Простой пример: если мы слышим львиный рык, мы мгновенно создаем мысленный образ льва, чувствуем опасность и наоборот. В нашем мозгу запускается множество нейронных паттернов, чтобы достичь всестороннего понимания того, как выглядит лев, как он звучит, что он чувствует, как пахнет и т. д.

Вышеупомянутое является моей конечной целью, но пока я разбиваю свою проблему для простоты.

Я был бы очень признателен, если бы кто-нибудь мог пролить свет на то, как аудио анализируется, а затем представляется в сверточной нейронной сети. Я также был бы признателен за ваши мысли относительно мультимодальной синхронизации, совместных представлений и того, как правильно обучать CNN с мультимодальными данными.

EDIT: я обнаружил, что звук может быть представлен в виде спектрограмм. Это обычный формат для аудио, представленный в виде графика с двумя геометрическими измерениями, где горизонтальная линия представляет время, а вертикальная — частоту.

введите здесь описание изображения

Можно ли использовать ту же технику с изображениями на этих спектрограммах? Другими словами, могу ли я просто использовать эти спектрограммы в качестве входных изображений для моей сверточной нейронной сети?




Ответы (2)


Мы использовали глубокие сверточные сети на спектрограммах для задачи идентификации разговорного языка. Точность набора данных, предоставленного в этом конкурсе TopCoder, составила около 95 %. . Подробности здесь .

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

person Hrant Khachatrian    schedule 11.10.2015
comment
ссылка Microsoft в этой работе не ведет ни к какой статье или PDF-файлу, можете указать название? - person AlexGuevara; 07.04.2017
comment
извините за поздний ответ. Вот он: scholar.google.com/. - person Hrant Khachatrian; 18.04.2017

Существует множество методов извлечения векторов признаков из аудиоданных для обучения классификаторов. Наиболее часто используется MFCC (Mel-частотный кепстр), который можно рассматривать как «улучшенную» спектрограмму, сохраняющую более важную информацию для различения классов. Другим часто используемым методом является PLP (Perceptual Linear Predictive), который также дает хорошие результаты. Это еще много других менее известных.

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

Также очень важно отметить, что аудиоданные являются последовательными. После обучения классификатора вам необходимо обучить последовательную модель как HMM или CRF, которая выбирает наиболее вероятные последовательности речевых единиц, используя в качестве входных данных вероятности, заданные вашим классификатором.

Хорошей отправной точкой для изучения распознавания речи являются Юрски и Мартинс: Обработка речи и языка. Он очень хорошо объясняет все эти понятия.

[EDIT: добавление потенциально полезной информации]

Существует множество наборов инструментов для распознавания речи с модулями для извлечения векторов признаков MFCC из аудиофайлов, но использовать их для этой цели не всегда просто. В настоящее время я использую CMU Sphinx4. У него есть класс FeatureFileDumper, который можно использовать отдельно для генерации векторов MFCC из аудиофайлов.

person Saul Berardo    schedule 24.05.2014
comment
спектрограммы содержат всю информацию о волнах (наиболее прямое представление звука) - person Laie; 08.01.2015
comment
Лайе прав, в настоящее время я использую спектрограммный подход, и первая функция, которую я написал, заключалась в преобразовании wav в спектрограмму, а затем обратном преобразовании в wav. Он воспроизводится со 100% точностью, за исключением нескольких первых и последних нескольких образцов. - person ghostbust555; 28.11.2016