Аугментация экспрессивных аудиоданных на основе TTS
В этой статье мы поговорим о системах клонирования голоса на основе TTS (Text-to-Speech), которые мы используем в корпоративной лаборатории человеко-машинного взаимодействия ИТМО для аугментации речевых баз данных в рамках задачи мультимодального распознавания доминантности дикторов в полилогах. Хотел отметить, что данный текст является, скорее, кратким обзором современных методов и технологий, которые могут быть полезны в решении такого рода задач. Предполагается, что читатель имеет хотя бы базовые знания в области машинного обучения.
Итак, хотелось бы начать наш разговор с самых основ – зачем нам необходимо аугментировать аудиоданные, как представить TTS в качестве задачи машинного обучения, и, наконец, перейти к рассмотрению тех технологий, которые нашли применение в решении задач нашей лаборатории.
Зачем нужна аугментация аудиоданных?
Современные решения, применяемые в области речевых технологий, основаны на базе нейронных сетей, и, соответственно, требуют обширных обучающих выборок. А для решения задач распознавания речи и эмоций, идентификации диктора, а также синтеза аудио необходимы корпуса данных с экспрессивной речью. Несложно догадаться, какие проблемы возникают при сборе таких данных. Во-первых, необходимо вызвать у человека требуемую эмоцию, однако не все реакции могу быть вызваны простыми и естественными способами. А во-вторых, использование записей профессиональных актеров может привести к значительным финансовым затратам, а также к «наигранности» полученных эмоций.
Очевидно, из-за указанных причин на данный момент существует дефицит экспрессивных речевых данных на русском языке, доступных для широких масс разработчиков. Но все же, можно найти примеры корпусов данных, которые могут быть использованы для настройки моделей машинного обучения – акустические датасеты dusha (250 часов + 100 разметка без аудио, 4 эмоции) и aniemore (4 часа, 7 эмоций). Однако, несмотря на высокое качество записи и разметки, проблема несбалансированности представленных эмоций все же остается.
Для решения этих проблем существуют две группы подходов. Первая группа - это стандартные преобразования аудиозаписей (растяжение во времени, изменение громкости, изменение темпа, сдвиг высоты тона, добавление фонового шума или тишины, частотное и временное маскирование, а также комбинации этих методов). Вторая группа подходов, которую мы рассмотрим более детально, основана на генерации синтетических данных с использованием методов машинного обучения, например с помощью TTS-моделей, основанных на генеративных состязательных сетях (GAN, generative adversarial network) и вариационных автокодировщиках (VAE, variational autoencoder).
Как представить TTS в качестве задачи машинного обучения?
Системы синтеза речи TTS позволяют генерировать человеческий голос с помощью компьютеров. Основное требование к TTS-системе – это естественность речи и ее разборчивость. Прежде чем приступить к рассказу о том, как же все-таки работают современные системы TTS, рассмотрим процесс речеобразования человека, чтобы разобраться с основными признаками, которые имеют значение для генерации аудиоданных.
В процессе человеческого речеобразования нервная система передает нервные импульсы мышечным волокнам, которые приводят в движение органы речевого тракта. В ходе работы органов речи, во время которого речевой тракт постоянно меняет свою конфигурацию, происходят аэродинамические процессы с воздушным потоком из легких, который преобразуется в периодический комплексный звук. Выходной сигнал состоит из основной частоты колебаний – частота основного тона
Все вышеуказанные характеристики (признаки) можно найти на спектрограмме. Спектрограмма – это график, показывающий значение амплитуды сигнала в зависимости от частоты в момент времени t, получаемое после вычисления квадрата амплитуды для оконного преобразования Фурье (STFT) к звуковому сигналу. Суть STFT в случае дискретного преобразования состоит в том, что исходный сигнал во временной области разбивается на перекрывающиеся части, на каждой из которых рассчитывается спектр Фурье с последующим сдвигом на заданный шаг.
Классическая постановка задачи TTS является ярким примером обучения с учителем (supervised learning). Исходную задачу TTS можно описать в терминах машинного обучения в следующем виде. Пусть
где
Данное выражение – функция качества во временной области, представляющее собой композицию моделей, что, вообще говоря, может усложнять сходимость алгоритма к локальному оптимуму. Поэтому, следует отдельно обучать модели во временно-частотной и временной области соответственно:
Из этого вытекает основная схема обучения большинства современных конвейерных моделей TTS:
Первый этап – это лингвистический анализ, включающий в себя нормализацию текста, разбиение на слова, морфологическую разметку, преобразование графем в фонемы (G2P), а также выделяющий различные лингвистические особенности. Второй этап состоит из процесса преобразования входной последовательности фонем в спектрограмму – представление сигнала в частотно-временной области. Последний этап – восстановление звуковой волны по спектрограмме. Для этого обычно используется специальный алгоритм – вокодер.
Мощь генеративного моделирования
В последнее время качество современных (SOTA) моделей адаптивного синтеза уже сопоставимо с реальной человеческой речью. Во многом, этого удалось добиться путем использования end-to-end TTS-моделей, использующих data-driven методы на основе генеративного моделирования. Именно такой подход на основе генеративных архитектур наша команда использовала в своей работе.
На самом деле существуют тонкие различия между различными глубокими порождающими моделями и методами их обучения. Например, VAE состоит в определении вероятностной модели совместного распределения латентных переменных
Начали мы наши исследования с модели FlowTron. Это TTS-сеть с возможностью контроля стиля и вариативности речи диктора, использующий такой порождающий механизм как поток. Генерация кадра
где
Примечательно, что в сравнении с VAE и GAN, потоки дают более точную оценку плотности распределения наблюдаемых данных. Данный механизм обучается стандартным образом – путем максимизации их общего логарифмического правдоподобия. На практике мы, конечно же, предполагаем, что латентная переменная распределена нормально
где
Стоит отметить, что спектрограмма, используемая в FlowTron – непростая, а взвешенная мел-фильтрами, которые используются из-за особенностей психофизиологического восприятия звука человеком: человеческое ухо более чувствительно к изменениям звука на более низких частотах, чем на высоких.
Процесс генерации на основе текста и диктора представляется как:
где
Теперь можно выполнять выборки из нужных областей латентного пространства, соответствующих определённым характеристикам речи в пространстве мел-спектрограмм. Но это еще не все. Как оказалось, FlowTron обучается латентному представлению, которое хранит нетекстовую (паралингвистическую) информацию, а также позволяет увеличивать вариацию в мел-спектрах и выполнять перенос стиля диктора.
Тогда, сразу после процесса обучения, мы принялись за эксперименты с использованием корпуса данных, который основывается на озвучке игры The Elder Scrolls V: Skyrim на русском языке. В таблице ниже представлены оценки качества итогового синтеза:
Эксперимент | MOS |
Изменение контента | 4.0996 |
Замена диктора с сохранением гендера | 4.4828 |
Замена диктора с изменением гендера | 4.3103 |
Перенос стиля на реплику того же диктора | 4.4828 |
Перенос стиля на реплику другого диктора | 3.9310 |
Современные решения, применяемые в области речевых технологий, основаны на базе нейронных сетей, и, соответственно, требуют обширных обучающих выборок. А для решения задач распознавания речи и эмоций, идентификации диктора, а также синтеза аудио необходимы корпуса данных с экспрессивной речью. Несложно догадаться, какие проблемы возникают при сборе таких данных. Во-первых, необходимо вызвать у человека требуемую эмоцию, однако не все реакции могу быть вызваны простыми и естественными способами. А во-вторых, использование записей профессиональных актеров может привести к значительным финансовым затратам, а также к «наигранности» полученных эмоций.
Очевидно, из-за указанных причин на данный момент существует дефицит экспрессивных речевых данных на русском языке, доступных для широких масс разработчиков. Но все же, можно найти примеры корпусов данных, которые могут быть использованы для настройки моделей машинного обучения – акустические датасеты dusha [https://github.com/salute-developers/golos/tree/master/dusha#dusha-dataset] (250 часов + 100 разметка без аудио, 4 эмоции) и aniemore [https://github.com/aniemore/Aniemore] (4 часа, 7 эмоций). Однако, несмотря на высокое качество записи и разметки, проблема несбалансированности представленных эмоций все же остается.
Примечательно, что в сравнении с VAE и GAN, потоки дают более точную оценку плотности распределения наблюдаемых данных. Данный механизм обучается стандартным образом – путем максимизации их общего логарифмического правдоподобия. На практике мы, конечно же, предполагаем, что латентная переменная распределена нормально z~N(z;0,I). В этом случае композиция x=f_0∘f_1∘…f_k (z) называется нормализующим потоком. Шаг потока m в модели FlowTron состоит из аффинного связывающего слоя и принимает на вход спектрограмму фразы, произнесённый диктором (speaker_id):
Чтобы вычислить оценки MOS (mean opinion score), необходимо взять среднее арифметическое оценок качества синтезируемой речи, выставляемой специальными людьми по шкале от 1 до 5. Заметим, что данная оценка не абсолютна, так как является субъективной, поэтому сравнение экспериментов, произведенных отдельными группами людей в разное время на отличающихся данных некорректно.
Сначала мы думали что проблема аугментации решена, ведь у нас есть модель, показывающая хорошее качество. Однако мы столкнулись с некоторыми трудностями.
При значительном расхождении в длине фразы звук сильно искажается
Перенос стиля работает нестабильно
Качество данных, используемых на этапе обучения, имеет критическое влияние на итоговый результат при изменении диктора
Тогда стало понятно, что FlowTron нам не совсем подходит, и мы принялись искать другие модели, которые потенциально можно было бы использовать для решения нашей задачи.
Как нам показалось, одна из возможных систем, которая могла бы обеспечить масштабируемое решение задачи клонирования голоса с хорошей производительностью, является VITS – параллельная end2end система TTS. VITS использует вариационный автокодировщик (VAE) для соединения акустической модели с вокодером через латентное (скрытое) представление. Такой подход позволяет генерировать высококачественные аудиозаписи путем улучшения выразительных особенностей сети с помощью механизма нормализующих потоков и состязательного обучения во временной области сигнала, а также добавляет возможность произнесения текста с различными вариациями благодаря моделированию неопределённости латентного состояния и стохастическому предсказателю длительности.
VITS обладает примечательными особенностями:
Синтез сигнала во временной области непосредственно из текста без дополнительных условий ввода
Использует алгоритм MAS (Monotonic Alignment Search), который представляет из себя одну из разновидностей DTW (dynamic time warping), для поиска выравнивания последовательностей без расчета потерь сети. Alignment очень важен в модели, так как из него можно получить представление о том, какие части входных данных более релевантные для генерации соответствующего фрейма мел-спектрограммы
Генерация сигнала происходит параллельно
VITS превосходит двухконвейерные модели
Из рисунка выше можно увидеть, что VITS состоит из априорного кодировщика, стохастического предиктора длительности, апостериорного кодировщика и декодера. При обучении VITS использует оценку ELBO (Evidence Lower Bound), которая состоит из ожидаемого логарифмического правдоподобия и регуляризатора, штрафующего апостериорное распределение за сильное отклонение от априорного:
где
Но мы пошли еще дальше и использовали модификацию VITS, которая основана на технологии Transfer learning и вместо фонем на вход текстового кодировщика требует представление, вычисленное с помощью подхода на основе HuBERT (Hidden-Unit BERT). HuBERT применяет кластеризацию на основе K-Means к коротким звуковым сегментам (25 миллисекунд), а полученные кластеры использует в качестве дискретных скрытых блоков (hidden units), которые модель BERT будет обучаться прогнозировать.
Благодаря такой модификации мы смогли получить ряд улучшений. Во-первых, высококачественный и надежный адаптивный синтез с сохранением произношения и эмоций. Во-вторых, отпадает необходимость в текстовой аннотации. В-третьих, требуется минимальное количество аудиоданных для обучения. И наконец, в-четвертых, у нас теперь есть возможность изменения
Так как же мы выполняем преобразование голоса? Тут все достаточно прозрачно. Во время обучения мы специально убираем идентификаторы дикторов для того, чтобы кодировщик текста обучался представлениям
Мы решили использовать этот подход для аугментации набора данных MELD для дальнейшей работы над мультимодальным распознаванием доминантности и валентности дикторов в полилогах.
Заключение
Теперь уже не для кого не секрет, что с ростом количества аудиоданных и развитием методов полуавтоматического обучения, модели глубокого обучения становятся доминирующими в сфере TTS. Вероятно, это связано с использованием потенциала глубоких архитектур в обучении скрытых представлений, что позволяет преодолевать принципиальное ограничение методов, использующих предварительно заданные характеристики для обрабатываемых данных. Такой подход позволил повысить обобщаемость моделей на различных дикторах и ранее не встречаемых словах, что положительно сказалось на задаче адаптивного синтеза. Использование генеративного моделирования, дополняющего нейронные модели состязательным процессом обучения, позволило системам TTS повысить свои выразительные возможности.
Мы провели эксперименты, в результате которых было подтверждено, что FlowTron может быть успешно применен для аугментации речевых данных. Эта модель показывает хорошие результаты в изменении контента, замене диктора и переносе стиля. Однако, у FlowTron есть некоторые недостатки, такие как скачки качества синтеза и сильная зависимость от «чистоты» обучающих данных. Модификация VITS с использованием модели HuBERT является более высококачественной и надежной для адаптивного синтеза, однако схему с изменением контента следует еще доработать. Мы собираемся использовать этот подход для аугментации данных в задаче мультимодального распознавания доминантности дикторов.