6.5.5 Современные достижения в анализе эмоций
Современные модели, предназначенные для распознавания эмоциональной окраски речи в аудиоканале, обычно представляют собой свёрточные или свёрточно-рекуррентные нейронные сети, получающие на вход различные представления звукового сигнала (спектрограммы, последовательности наборов мел-кепстральных коэффициентов и т. п.) и решающие задачу классификации или регрессии. В этом смысле они напоминают модели, предназначенные для решения других задач обработки человеческого голоса: определения пола и возраста говорящего, выявления ключевых слов или полнотекстового распознавания речи. Рассмотрим для примера одну из таких работ[1], увидевшую свет в 2020 г. и установившую, по заявлению авторов, новые рекорды в точности распознавания эмоциональной окраски сразу для двух датасетов — RAVDESS и IEMOCAP (при этом результат на датасете EMO-DB лишь несущественно уступает наилучшему существующему решению).
Её авторы, исследователи Диас Исса, Мухаммед Фатих Демирджи и Аднан Языджи из Назарбаев Университета (Астана, Казахстан), представили новую архитектуру, в которой на вход нейронной сети подаются мел-кепстральные коэффициенты, хромаграмма (представление, напоминающее спектрограмму, с тем лишь отличием, что по оси y в хромаграмме отложены не диапазоны частот, а звуковысотные классы [pitch class] — классы, образуемые множеством всех звуковых высот, отстоящих друг от друга на целое число октав), мел-спектрограмма, а также два более хитрых представления — на основе так называемых спектральных контрастов и на основе тоннетца [Tonnetz].
Термином «тоннетц» (от нем. Tonnetz — тоновая сеть), или эйлеровской звуковой сеткой, в теории музыки называют сетевую диаграмму, представляющую звуковысотную систему, задающую набор и возможную последовательность в музыкальном произведении звуковысотных классов. Узлы эйлеровской звуковой сетки соответствуют звуковысотным классам, а треугольники, объединяющие три соседних узла, соответствуют аккордам. В музыкальном произведении, принадлежащем к описываемой тоннетцем звуковысотной системе, друг за другом могут следовать только аккорды, соответствующие соседним треугольникам тоннетца.
Рис. 144. Тоннетц, или эйлеровская звуковая сетка
Тоннетц был впервые предложен[2] Леонардом Эйлером в 1739 г., затем на долгое время забыт, затем переоткрыт в XIX в. и стал весьма популярен у музыкальных теоретиков — таких, например, как Риман и Эттинген.
В книге одно тянет за собой другое, и трудно понять, где следует остановиться. Что такое спектрограммы, мел-шкала и кепстр, мы более-менее подробно разобрали в разделах, посвящённых распознаванию и синтезу речи. Сведения о хромаграмме, в принципе, удалось вместить в одно вроде бы понятное предложение. Хуже обстоят дела с тоннетцем. Авторы рассматриваемой нами модели использовали функцию librosa.feature.tonnetz из популярной библиотеки для обработки звука Librosa в языке Python для получения соответствующего представления звука. Для описания работы этой функции нужно объяснять, что такое натуральный строй, равномерно темперированный строй, как тоновое пространство из плоскости становится сначала трубкой с нанизанной на её поверхность спиральной матрицей Чу, а потом и вовсе гипертором. И как 12-мерный вектор хромаграммы при помощи операции построения центроидов превращается в набор из шести координат представления, предложенного[3] Хартом, Сэндлером и Гэссером и основанного на тоннетце Эйлера. Примерно так же дело обстоит и со спектральными контрастами[4]. В общем, выглядит как бессмысленный экскурс в теорию музыки для тех, кому она не особо-то и нужна. Один из моих коллег (занимающийся среди прочего созданием моделей для распознавания эмоций), выслушав мои страдания, посоветовал написать так: «авторы считают сложные непонятные фичи из теории музыки».
Итак, авторы статьи берут хорошо известные нам фичи, а также ряд сложных и непонятных фичей из теории музыки, получают матрицу размерностью 193 × 1 (т. е. все спектральные представления строятся для всей фразы целиком; таким образом, фраза в итоге описывается набором из 193 чисел) и пихают её на вход свёрточной нейронной сети. Базовая топология сети, использованная авторами, содержит целых шесть слоёв свёртки (размер ядер везде 5 × 1), один слой максимизирующего пулинга (8 × 1), три слоя прореживания и один полносвязный слой.
Эта архитектура затем модифицируется авторами под каждую отдельную задачу путём модификации параметров прореживания, а также удаления некоторых слоёв. В случае с EMO‑DB авторы выделяют отдельные сети для выявления наиболее сложно распознаваемых эмоций, а также объединяют несколько моделей в ансамбли. Впрочем, с датасетом RAVDESS неплохо справляется и базовая архитектура. Вот так выглядит матрица ошибок [confusion matrix] для этого набора данных (авторы разделили все записи на обучающую и тестовую выборки в пропорции 80 : 20, ниже приведена матрица ошибок для тестовой выборки).
Раздра-жение | Спокой-ствие | Отвра-щение | Страх | Счастье | Нейтральная окраска | Печаль | Удив-ление | |
---|---|---|---|---|---|---|---|---|
Раздражение | 92,31 | 0 | 3,85 | 3,85 | 0 | 0 | 0 | 0 |
Спокойствие | 0 | 57,14 | 10,71 | 0 | 3,57 | 7,14 | 17,86 | 3,57 |
Отвращение | 3,45 | 0 | 72,41 | 3,45 | 6,9 | 0 | 0 | 13,79 |
Страх | 2,7 | 0 | 5,41 | 75,68 | 5,41 | 2,7 | 0 | 8,11 |
Счастье | 3,23 | 0 | 3,23 | 9,68 | 67,74 | 0 | 0 | 16,13 |
Нейтральная окраска | 0 | 12,5 | 0 | 12,5 | 0 | 75 | 0 | 0 |
Печаль | 0 | 3,7 | 7,41 | 18,52 | 7,41 | 3,7 | 51,85 | 7,41 |
Удивление | 0 | 0 | 6,67 | 6,67 | 6,67 | 0 | 0 | 80 |
В каждой ячейке матрицы ошибок в строке i и столбце j указывается процент классов j, опознанных моделью как i. При идеальной точности модели в ячейках, в которых номер столбца равен номеру строки, должны стоять единицы, а в остальных ячейках — нули.
Итоговая точность [precision] предсказаний модели составляет около 71,6% для датасета RAVDESS, что превосходит точность распознавания, демонстрируемую людьми (67,0%), почти на пять процентных пунктов (для датасета IEMOCAP точность — 64,3%). Как видно из матрицы ошибок, наиболее частая ошибка модели заключается в том, что она иногда (в 18,52% случаев) принимает страх за печаль — ошибка, которая выглядит весьма «по-человечески».
Разобранная нами работа довольно характерна для данной области. Результаты на таких «игрушечных» эмоциональных датасетах, как RAVDESS, TESS, EMO-DB, IEMOCAP, улучшаются в наше время порой несколько раз в год — вы можете сами убедиться в этом, набрав в поисковой системе название соответствующего датасета и аббревиатуру SOTA (state-of-the-art, уровень развития, употребляется в значении «лучший результат по какому-либо критерию»). Однако и глубокое обучение не миновала одна из главных проблем современной науки — проблема кризиса воспроизводимости, ввиду чего к результатам без публикации исходного кода следует относиться с осторожностью. Если опытным взглядом присмотреться к разобранной нами статье, то может возникнуть ряд вопросов, требующих прояснения. Например, в тексте статьи упоминается свёртка с ядром 5 × 5, хотя на схемах мы видим свёртку с ядром 5 × 1. Ну ладно, это сравнительно безобидная опечатка. Но вот авторы пишут (в отношении эксперимента с RAVDESS): «Поскольку разделение данных [на обучающую и тестовую выборку] осуществлялось случайным образом, классификация является независимой от актёра» [Since data partitioning is performed randomly, the classification is speaker-independent]. Если под «случайным образом» подразумевалось, что каждый образец с вероятностью 80% попадал в обучающую и с вероятностью 20% в тестовую выборки, это значит, что с довольно большой вероятностью образцы речи одного и того же актёра попали как в обучающую, так и в тестовую выборки (напомню, что в RAVDESS содержится в общей сложности 7356 записей, сделанных всего 24 актёрами). Таким образом, классификатор становится как раз зависимым от актёра. В разделе про выделение признаков ничего не сказано о параметрах использованных преобразований, не объяснено, почему число признаков в итоге оказалось равно 193, сколько из них приходится на мел-кепстральные коэффициенты, а сколько на мел-спектрограмму, как эти признаки упорядочены внутри матрицы. Это не совсем праздный вопрос, ведь, объединяя разнородные признаки в одну матрицу, которая затем подвергается свёртке, авторы допускают ситуацию, когда в окно свёртки попадут разнородные по сути величины. А применение к небольшой матрице размерностью 193 × 1 многослойной сети с целыми шестью слоями свёртки и количеством признаков в каждом из них от 128 до 256, да ещё в итоге и полносвязного слоя при сравнительно скромных параметрах прореживания наверняка должно приводить к систематическому переобучению модели. Как авторы боролись с этой проблемой? Возможно, применяли раннюю остановку обучения при достижении минимальной ошибки на тестовой выборке? Если так, то сколько экспериментов было проведено и не возник ли эффект подстройки под тестовую выборку? Или в каждом эксперименте происходило переразбиение данных?
Кроме того, от внимания авторов исследования ускользнула работа 2019 г. российских исследователей — Григория Стерлинга (моего теперешнего коллеги) и Евы Казимировой — под названием «Сквозное распознавание эмоций по голосу с глубокими эмбеддингами фреймов и обработкой нейтральной речи» (End-to-End Emotion Recognition From Speech With Deep Frame Embeddings And Neutral Speech Handling), в которой заявлена более высокая точность распознавания для IEMOCAP (65,9%) (российские исследователи использовали спектральное представление звукового сигнала и сочетание свёрточной нейронной сети с LSTM)[5].
Разумеется, наличие такого рода вопросов вовсе не означает недобросовестности авторов исследования из Казахстана, особенно учитывая сумасшедшие темпы развития науки в этой области. Но, чтобы избежать возможных ошибок или неоднозначностей, многие исследователи в области глубокого обучения предпочитают публиковать не только статьи, но и кодовую базу своих проектов. Крупнейшим каталогом таких публикаций является ресурс paperswithcode.com, позволяющий найти работы, устанавливающие SOTA для самых разных задач машинного обучения, в том числе и для задачи распознавания эмоций. Например, по запросу «Speech Emotion Recognition» можно найти сразу девять работ, в том числе работу[6], установившую в 2018 г. новый уровень SOTA для датасета IEMOCAP. В этой статье приводится несколько моделей, использующих различные модальности данных: только текст (автоматически распознанная речь), только аудио и текст + аудио. Точность модели, использующей только звук, составляет 54,6% против 64,3% в работе казахстанских исследователей. Но при этом в нашем распоряжении не только статья, но и репозиторий с кодом, из которого видно, что использованная авторами модель представляет собой LSTM-сеть, получающую на вход мел-кепстральные коэффициенты (а также их разности первого и второго порядка для соседних фреймов) для каждого из фреймов звукозаписи длиной 25 миллисекунд с шагом в 10 миллисекунд.
Интересно, что модель, основанная только на тексте, позволяет достичь точности 63,5%, а модель, использующая и текст и звук, достигает точности 71,8% (69,1% при использовании системы распознавания речи от Google для получения текстовых расшифровок). Тесты показывают, что точность людей на IEMOCAP составляет около 70%[7], а это означает, что в публичном доступе с 2018 г. есть модель, способная распознавать эмоции в человеческой речи на уровне самих людей (по крайней мере на таком наборе данных, как IEMOCAP).
- ↑ Issa D., Fatih Demirci M., Yazici A. (2020). Speech emotion recognition with deep convolutional neural networks / Biomedical Signal Processing and Control, Vol. 59 // https://doi.org/10.1016/j.bspc.2020.101894
- ↑ Euler L. (1739). Tentamen novae theoriae musicae ex certissismis harmoniae principiis dilucide expositae (in Latin) / Saint Petersburg Academy, p. 147.
- ↑ Harte C., Sandler M., Gasser M. (2006). Detecting Harmonic Change In Musical Audio / AMCMM '06: Proceedings of the 1st ACM workshop on Audio and music computing multimedia, October 2006, pp. 21—26 // https://doi.org/10.1145/1178723.1178727
- ↑ Jiang D.-N., Lu L., Zhang H.-J., Tao J.-H., Cai L.-H. (2002). Music type classification by spectral contrast feature / Proceedings of the IEEE International Conference on Multimedia and Expo // https://doi.org/10.1109/ICME.2002.1035731
- ↑ Sterling G., Kazimirova E. (2019). End-to-end Emotion Recognition From Speech With Deep Frame Embeddings And Neutral Speech Handling / FICC 2019: Advances in Information and Communication, pp. 1123-1135 // https://doi.org/10.1007/978-3-030-12385-7_76
- ↑ Yoon S., Byun S., Jung K. (2018). Multimodal speech emotion recognition using audio and text // https://paperswithcode.com/paper/multimodal-speech-emotion-recognition-using
- ↑ Chernykh V., Prikhodko P. (2018). Emotion Recognition From Speech With Recurrent Neural Networks // https://arxiv.org/abs/1701.08071