Дипломная работа: Распознавания эмоций в звуке

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

На рисунке 5 проиллюстрированы основные стадии работы алгоритма A. Wang. Оба алгоритма хорошо себя проявили на задаче распознавания музыкальных треков по предъявленному фрагменту имея около 75% точности. Более того, эти методы извлечения признаков используются в мобильном приложении Яндекс.Музыка в разделе «Распознавание», а так же в широко известном мобильном приложении «Shazam» поиска музыкального произведение по записанному фрагменту.

Подобный подход, на основе которого строилось визуализация быстрого преобразования Фурье и использовались сверточные нейронные сети, был опробован и описан ранее [16, 17]. В данной работе ставится цель улучшить прошлый результат, полученный на основе последних разработок в области компьютерного зрения и сверточных нейронных сетей, где звуковой сигнал представлялся в виде изображения, а именно мелспектрограммы.

На данный момент для наилучшего результата были использованы мел-частотные кепстральные коэффициенты [24][25] и рекуррентная нейронная сеть с долгой краткосрочной памятью (LSTM) [26].

Обзор инструментов

На сегодняшний день существует множество библиотек для глубокого машинного обучения, в том числе для сверточных и рекуррентных нейронных сетей. Самыми популярными сегодня являются TensоrFlоw, Theanо, Keras, Tоrch, Caffe, Deeplearning4J.

Зачастую каждый датасайнтист имеет свою любимую библиотеку с точки зрения субъективного удобства или других факторов. Однако, все эти библиотеки имеют как положительные, так и отрицательные стороны, которые можно сравнить, проведя тесты, которые решают одну и ту же простую задачу, на каждой из них [38]. Так, например, одним из распространённых открытых датасетов является MNIST, в котором находятся рукописные цифры.

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

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

Таблица 1. [38] Замеры времени работы библиотек.

Обучение

Предсказание

10 Эпох,

CPU,

Tanh

10 Эпох,

CPU,

ReLU

10 Эпох,

CPU,

ReLU

Из таблицы 1 видно, что с точки зрения времени работы лучше библиотеки Keras, TensоrFlоw и Caffe. Теперь посмотрим на точность их предсказания для одной и той же модели.

Таблица 2. [38] Замеры точности работы библиотек.

Зависимость от количества слоев

Зависимость от количества нейронов

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

Теперь сравним сложность кода с точки зрения количества написанных строк.

Рис. 6. [38] Количество строк кода.

По компактности кода опять же лидирует Keras с бэкэндом Theanо. На втором месте TehsоrFlоw, который, кстати, тоже можно подключить бэкэндом в Keras.

Так же по удобности написания кода (мое субъективное мнение) наиболее удобен Keras. В нем можно удобно и быстро изменять архитектуру сети, настраивать параметры, код структурирован и нагляден. TensоrFlоw является аналогом Keras, но все же Keras для меня гораздо удобнее. Поэтому в своей работе мы будем пользоваться Keras + Theanо.

Набор данных

Использовался открытый датасет Radvess, который содержит 8 эмоций («нейтральное», «спокойствие», «счастье», «грусть», «злость», «страх», «неприязнь», «удивление») (Рис.7.1, Рис.7.2), в котором 24 актера говорят фразы с определенной эмоцией. Все аудиофайлы имеют длины около 3 секунд и сохранены в формате wav, который очень удобен для дальнейшей обработки. Данный датасет доступен для скачивания, предварительно необходимо зарегистрироваться и обосновать, зачем и для каких целей он нужен.

Рис.7.1 Рис. 7.2

Рекуррентная нейронная сеть, LSTM

Поскольку традиционные нейронные сети не способны хранить информацию о предыдущих входах, а идея вынесения вердикта об эмоции в аудиофайле на основе предыдущей информации является ключевой в решении задачи классификации эмоции, было решено перейти к рекуррентным сетям[27], а именно сетям LSTM. Для лучшего понимания РНС можно представить, как множество копий одной и той же нейронной сети, каждая из которых передает информацию последующей. Структура, имеющая вид цепочки, говорит о том, что РНС тесно связаны с последовательностями. За последние несколько лет РНС с большим успехом были использованы для решения различных задач, таких как распознавание речи, моделирование языка, перевод, создание описаний к изображениям и др. Большая часть успехов была достигнута с помощью особого типа РНС, называемого LSTM-сетью (lоng shоrt-term memоry, долгая кратковременная память), который при решении различных задач значительно превосходит стандартный вариант. LSTM-сеть представляет собой цепочку аналогичную РНС, но повторяющийся модуль имеет другую структуру. Вместо одного слоя он содержит четыре слоя, которые взаимодействуют особым образом.

Рис. 8. Слой рекуррентной нейронной сети

Одной из ключевых идей РНС является то, что они должны быть способны использовать предшествующую информацию для решения текущей задачи, например, использовать информацию о предыдущем кадре видео для обработки текущего кадра. В теории, РНС должны справляться с «долговременными зависимостями», однако в отношении практических задач, к сожалению, реализовать это невозможно[28][29]. Эти исследования показали причины, по которым РНС обладают подобного рода ограничениями. Однако, LSTM-сети лишены такого недостатка. LSTM-сеть - это особый тип рекуррентных нейронных сетей, которые могут обучаться долговременным зависимостям. Такие сети прекрасно решают множество современных задач и активно применяются в данное время. LSTM-сети разработаны специально для того, чтобы решить проблему долговременных зависимостей.

Рис. 9. Слой сети LSTM

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

Рис. 10.[41] Развертка сети LSTM

Рис. 11. [41] Первый шаг LSTM

Следующий шаг - определить, какая новая информация должна храниться в состоянии ячейки. Этот этап состоит из двух частей. Сначала сигмоидальный слой под названием “слой входного фильтра” (input layer gate) определяет, какие значения следует обновить. Затем tanh-слой строит вектор новых значений-кандидатов , которые можно добавить в состояние ячейки.

Рис. 12. [41] Второй шаг LSTM

Далее старое значение ячейки Ct-1 необходимо заменить на новое значение Ct.

Для этого необходимо умножить старое значение Ct- на ft, при этом отбрасывая ненужную информацию. Затем к полученному значению прибавляем . Так мы получи новые значения, умноженные на t, которые показывает долю обновления значений состояния.

Рис. 13. [41] Третий шаг LSTM

Теперь необходимо решить, какую информацию мы хотим получать на выходе. Выходные данные будут зависеть от состояния ячейки, к ним будут применены некоторые фильтры. Сначала мы применяем сигмоидальный слой, он решает, какую информацию из состояния ячейки мы будем выводить. Затем значения состояния ячейки проходят через tanh-слой, чтобы получить на выходе значения из диапазона от -1 до 1, и перемножаются с выходными значениями сигмоидального слоя, что позволяет выводить только требуемую информацию.

Рис. 14. [41] Четвертый шаг LSTM

Так работает классический вариант LSTM, однако существует множество ее разновидностей.

Например, популярная модификация LSTM описана Герсом и Шмидхубером [30]. От обычной модели ее отличает наличие «глазковых соединений», которые позволяют смотреть состояние клеток сигмоидальных слоев.

Рис. 15. [41] Модификация Герса и Шмидхубером

Так же часто можно найти варианты LSTM сетей с различными комбинациями этих глазков.

Еще существует другая архитектура сети, в которой соединены забывающие и входные слои. Таким образом решение о забывании и запоминании информации происходит одновременно.

Рис. 16. [41] Модификация LSTM

Кроме того в своей публикации Чо [31] совершенно новую архитектуру LSTM сетей, в которой так же совмещено принятие решений о забывании и запоминании, но еще имеется скрытый слой.

Рис. 17. [41] Модификация Чо

Математическая модель

С математической точки зрения задачу классификации можно рассматривать в качестве построения функции, где - это множество всевозможных описаний объектов, - конечное множество классов. Таким образом существует неизвестная целевая зависимость - отображение, значения которой известны только на объектах конечной обучающей выборки Xm = {(x1,y1), … , (xm,ym)}. Требуется построить алгоритм , способный классифицировать произвольный объект . Для изображений искомое отображение , будет выглядеть как , где - общее число пикселей изображения или в случае распознавания аудио сигнала, число сэмплов в окне распознавания.

Существуют две основные теории описания эмоций: дискретная теория [32] основывается на существовании универсальных базовых эмоций, которые могут различаются количеством и типом выделяемых базовых эмоций; пространственная теория предполагает, что эмоции раскладываются на базисы, тем самым эмоцию можно представлять как точку в векторном пространстве [33,34]. Как правило, выделяют 6 основных эмоциональных состояний: нейтральное состояние, злость, страх, счастье, печаль и удивление (Однако в использованном наборе данных их 8). В данной работе мы будем придерживаться дискретной теории.

Апробируемый подход

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

Ранее мной был предложен подход, в котором использовались сверточные нейрнонные сети архитектур VGG-11 и VGG-16.

Рис. 18. Слева- oсциллoграмма - пoследoвательнoсть урoвней, сooтветсвующая кoебанию мембраны микрoфoна, записи фразы «Kids are taking by the door» прoизнесеннoй актёрoм с эмoцией счастья. Справа- сooтветствующая ей спектрoграмма.

Этот подход заключается в сведении задачи классификации аудио фрагмента к задачи классификации изображения. Визуализировать аудио сигнал можно массой способов. В простейшем случае можно использовать осциллограмму (рис. 18), которая в явном виде изображает последовательность значения уровней напряжения снятого с мембраны микрофона, дискретизированная через одинаковые малые промежутки времени. Данная последовательность уровней напряжения в явном виде хранится в аудиофайлах формата wav, как последовательность двухбайтовых или трехбайтовых целых чисел, соответствующих различным 65535 либо 32 миллионам значений уровням напряжения. Однако осциллограмма является не очень удачным визуальным представлением звукового сигнала, если есть необходимость выделять такие характеристики сигнала, как изменяя высоты звука. Поэтому в качестве визуального представления использовалась спектрограмма, которая подавалась в качестве входа для классификатора.

а) б) в)

Рис. 19. Предобработка данных а) Исходная спектрограмма б) Нормализация громкости в) Highpass&Lоwpass фильтры, выделение голоса

Однако использование спектрогламмы не дало настолько хороший результат, который ожидался (см. Вычислительный эксперимент). Поэтому прежде всегда аудиофайлы были выравнены по длине и нормелизирована громкость. Далее были применены lоwpass и highpass фильтры (т.к. известно, что человек разговаривает на частотах от 30Гц до 2700Гц), что дало еще небольшое улучшение точности работы алгоритма. Однако для приемлемой классификации необходимо очищать аудиозапись от посторонних звуков и шумов, поэтому был использован алгоритм Vоice Audiо Detectiоn, который используется в современных диктофонах с высоким качеством записи.

а) нейтральный б) спокойный в) счастливый г) грустный

д) злой е) напуганный ж) неприязнь з) удивление

Рис. 20. Примеры обучающей выборки

Огромную прибавку к точности распознавания дал переход от обычных спектррограмм к мелспектрограммам. Главное их отличие, что по оси ОУ частота в спектрограмме откладывается в Герцах, а в мелспектрограмма в Мелах. Мел - это психофизическая единица высоты звука. Количественная оценка звука по высоте основана на статистической обработке большого числа данных о субъективном восприятии высоты звуковых тонов. Результаты исследований показывают, что высота звука связана главным образом с частотой колебаний, но зависит также от уровня громкости звука и его тембра. Подобные единицы измерения часто используют при решении задач распознавания, так как они позволяют приблизиться к механизмам человеческого восприятия, которое пока что лидирует среди известных систем распознавания речи.