Янник Килчер разобрал сквозную модель синтеза речи от DeepMind

Yannic Kilcher 16,2 тыс. 40 мин 6 мин 10.06.2020
Главное

В новом обзоре научных публикаций известный ИИ-исследователь и блогер Янник Килчер разбирает революционный подход команды инженеров из лаборатории DeepMind к задаче генерации человеческой речи. Статья под названием «End-to-End Adversarial Text-to-Speech» предлагает полностью отказаться от традиционных многоэтапных конвейеров синтеза звука в пользу единой сквозной генеративно-состязательной сети (GAN). Ведущий подробно объясняет, как авторам удалось решить фундаментальную проблему временного выравнивания текста и аудио без использования промежуточных размеченных представлений.

🎙️ Проблема сквозного синтеза речи: от текста к звуковой волне 0:01

В начале видео Янник Килчер разыгрывает зрителей, включая нарочито роботизированный, механический голос, и лишь затем демонстрирует реальную работу обсуждаемой модели, которая звучит поразительно естественно и неотличимо от человеческой речи. Статья, подготовленная интернациональной командой исследователей DeepMind (среди которых Джефф Донахью, Сандер Дилеман, Миколай Биньковский, Эрих Элсен и Карен Симоньян), нацелена на решение сложнейшей задачи — генерации сырого аудиосигнала напрямую из нормализованного текста или фонем. Главное отличие этого метода от предшественников заключается в полном отсутствии промежуточных контролируемых представлений, что порождает серьезный вызов для алгоритмов машинного обучения.

По словам ведущего, классический синтез речи (Text-to-Speech, TTS) сталкивается со следующими фундаментальными трудностями:

Традиционные ИИ-конвейеры, включая аналогичные разработки от компании Meta, обычно решают эти проблемы за счет дробления задачи на три независимых этапа. Сначала текст преобразуется в лингвистические фичи, затем отдельная модель строит по ним спектрограмму, и лишь на финальной стадии вокодер превращает спектрограмму в звук. Преимущество такого подхода в том, что каждый модуль можно тренировать изолированно. Тем не менее авторы разбираемой статьи доказывают, что сквозное (end-to-end) обучение в рамках одной сессии способно давать куда более качественный результат.

🤖 Архитектура модели: генераторы и безусловные дискриминаторы 7:11

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

Как отмечает Янник Килчер, секрет обобщающей способности модели кроется в масштабировании окон наблюдения:

Ведущий подчеркивает принципиальный нюанс: вычисление спектрограммы здесь служит исключительно пространством признаков для функции потерь дискриминатора, а не промежуточной ступенью генерации, как в старых системах. Самым удивительным свойством этих дискриминаторов является их «безусловный» характер. Они не получают на вход текст и не знают, какие именно слова должны звучать в аудиофрагменте; их единственная задача — оценить, похож ли случайный отрезок звуковой волны на подлинную человеческую речь. Если бы сравнение шло по всей длине аудиосигнала поточечно, малейший сдвиг фазы или тайминга приводил бы к катастрофическому штрафу для генератора, но локальные окна успешно решают эту проблему.

🧩 Модуль выравнивания (Aligner) и предсказание длительности токенов 14:37

Центральным узлом, позволяющим обучать модель без готовой разметки, выступает детерминированный модуль выравнивания (aligner). На вход системы подается текст, который на первом этапе автоматически очищается и трансформируется в последовательность фонем с помощью жестко запрограммированных скриптов. Далее этот поток фонем обрабатывается глубоким стеком сверточных нейронных сетей с расширением (dilated convolutions).

Процесс предсказания временной структуры устроен следующим образом:

  1. Сверточный блок принимает последовательность фонем $X$ и переводит ее в скрытое латентное представление $H$.
  2. На основе латентных векторов $H$ специальный слой предсказывает числовой параметр $L$ для каждого токена — его условную длительность в кадрах или фреймах. Например, для слова «cat» система может выделить 200 дата-поинтов, а для короткого предлога «on» — всего 50.
  3. Зная длительность каждого токена, алгоритм математически вычисляет центральную точку каждого слова на временной шкале путем последовательного суммирования всех предыдущих отрезков.

Поскольку модель обучается не на длинных аудиозаписях (что было бы запредельно дорого вычислительно), а на случайно вырезанных двухсекундных сегментах, генератор обязан точно понимать, какие именно слова попали в этот двухсекундный отрезок. Для этого ИИ передается точное смещение (offset) фрагмента от начала исходной записи. Сверяя смещение с предсказанными длительностями токенов, алгоритм математически «вычеркивает» слова, оставшиеся за рамками окна, фокусируясь только на актуальном тексте.

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

📉 Преодоление стагнации обучения: спектрограммы и динамическая трансформация времени 24:01

Несмотря на элегантность математической модели, Янник Килчер объясняет, что в своем первоначальном виде эта система абсолютно недееспособна. В самом начале сессии обучения веса нейросети инициализированы случайно, из-за чего предсказания длительности слов $L$ оказываются совершенно хаотичными. Генератор пытается озвучить одни токены, в то время как безусловный дискриминатор оценивает аудиофрагмент, соответствующий совсем другим словам. Возникает замкнутый круг: дискриминатор постоянно заявляет, что звук фальшивый, но не может подсказать генератору, в каком именно месте произошел сдвиг, и обучение намертво застревает.

Для вывода системы из тупика разработчики из DeepMind внедрили вспомогательную супервизируемую функцию потерь в спектральной области. Они вычисляют логарифмическую Мел-спектрограмму сгенерированного двухсекундного окна и сравнивают ее напрямую с истинной спектрограммой оригинального человеческого аудио по критерию $L_1$-расстояния (абсолютной разницы). Этот шаг кажется отступлением от идеи «чистого» сквозного GAN-обучения, однако Янник считает его блестящим практическим трюком, который дает мощный направленный сигнал на ранних эпохах.

Для компенсации неизбежного несовпадения скоростей произношения в этот вспомогательный лосс был интегрирован классический алгоритм динамического программирования — динамическая трансформация времени (Dynamic Time Warping, DTW). Алгоритм функционирует по строго определенным правилам:

Параллельно задействован еще один вспомогательный лосс: сумма всех предсказанных модулем Aligner длительностей фонем обязана в точности равняться общей физической длине аудиозаписи. В результате, по мнению Килчера, запускается обратный синергетический процесс. На старте генератор учится просто копировать базовые спектральные характеристики человеческого голоса по $L_1$-лоссу, временно игнорируя текстовый контекст. Как только генератор начинает выдавать стабильный спектральный паттерн, градиенты ошибки наконец доходят до модуля Aligner, помогая ему скорректировать предсказания длины токенов. Когда выравнивание стабилизируется, в полную силу вступают состязательные дискриминаторы, доводящие звучание до идеала.

💬 Цитаты

«В этой работе мы беремся за сложную задачу обучения синтезу речи из нормализованного текста или фонем сквозным методом.»

Янник Килчер 00:27

«Поскольку на старте обучения предсказания длины ошибочны, безусловные дискриминаторы не дают полезного сигнала.»

Янник Килчер 25:31
👥 Спикер
📖 Термины
Сквозное обучение (End-to-End)
Подход в дизайне нейросетей, при котором система обучается выдавать конечный результат из сырых входных данных в рамках единого процесса, без разбиения на независимые промежуточные подсистемы.
Дискриминатор
Нейросетевой компонент генеративно-состязательной архитектуры (GAN), обучаемый отличать искусственно сгенерированные данные от реальных примеров из выборки.
Динамическая трансформация времени (DTW)
Алгоритм динамического программирования, предназначенный для нахождения оптимального соответствия и выравнивания двух временных последовательностей, которые могут различаться по скорости.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект DeepMind Text-to-Speech Янник Кильхер