В новом обзоре научных публикаций известный ИИ-исследователь и блогер Янник Килчер разбирает революционный подход команды инженеров из лаборатории DeepMind к задаче генерации человеческой речи. Статья под названием «End-to-End Adversarial Text-to-Speech» предлагает полностью отказаться от традиционных многоэтапных конвейеров синтеза звука в пользу единой сквозной генеративно-состязательной сети (GAN). Ведущий подробно объясняет, как авторам удалось решить фундаментальную проблему временного выравнивания текста и аудио без использования промежуточных размеченных представлений.
🎙️ Проблема сквозного синтеза речи: от текста к звуковой волне 0:01
В начале видео Янник Килчер разыгрывает зрителей, включая нарочито роботизированный, механический голос, и лишь затем демонстрирует реальную работу обсуждаемой модели, которая звучит поразительно естественно и неотличимо от человеческой речи. Статья, подготовленная интернациональной командой исследователей DeepMind (среди которых Джефф Донахью, Сандер Дилеман, Миколай Биньковский, Эрих Элсен и Карен Симоньян), нацелена на решение сложнейшей задачи — генерации сырого аудиосигнала напрямую из нормализованного текста или фонем. Главное отличие этого метода от предшественников заключается в полном отсутствии промежуточных контролируемых представлений, что порождает серьезный вызов для алгоритмов машинного обучения.
По словам ведущего, классический синтез речи (Text-to-Speech, TTS) сталкивается со следующими фундаментальными трудностями:
- Колоссальный дисбаланс плотности данных: если входной текст состоит из нескольких дискретных токенов-слов, то выходная звуковая волна представляет собой плотный поток амплитуд, обычно дискретизированный с частотой 24 кГц. Один текстовый символ должен разворачиваться в тысячи аудиосемплов.
- Отсутствие точной временной разметки: при обучении у инженеров есть исходный текст и монолитная аудиозапись того, как человек читает этот текст. Однако модель изначально «не знает», в какой именно миллисекунде аудиопотока начинается и заканчивается конкретное слово.
- Требование к генерализации: система обязана не просто имитировать голос из обучающей выборки, но и успешно переносить человеческие интонации на абсолютно незнакомые текстовые фрагменты.
Традиционные ИИ-конвейеры, включая аналогичные разработки от компании Meta, обычно решают эти проблемы за счет дробления задачи на три независимых этапа. Сначала текст преобразуется в лингвистические фичи, затем отдельная модель строит по ним спектрограмму, и лишь на финальной стадии вокодер превращает спектрограмму в звук. Преимущество такого подхода в том, что каждый модуль можно тренировать изолированно. Тем не менее авторы разбираемой статьи доказывают, что сквозное (end-to-end) обучение в рамках одной сессии способно давать куда более качественный результат.
🤖 Архитектура модели: генераторы и безусловные дискриминаторы 7:11
В качестве фундамента для генерации звука исследователи используют архитектуру GAN-TTS. В генеративно-состязательной схеме задействованы два агента: генератор, создающий аудиоволну на основе текста, и дискриминатор, пытающийся отличить синтезированную речь от записей реальных людей. При этом авторы применили неочевидный архитектурный шаг, развернув целую систему из пяти различных дискриминаторов, работающих параллельно.
Как отмечает Янник Килчер, секрет обобщающей способности модели кроется в масштабировании окон наблюдения:
- Каждый из пяти дискриминаторов оценивает не всю аудиозапись целиком, а лишь случайные микроскопические фрагменты (окна) разной длины.
- Один нейросетевой дискриминатор анализирует ультракороткие интервалы звука, второй — чуть более длинные, третий — средние и так далее.
- В дополнение к пяти временным дискриминаторам архитектура включает шестой дискриминатор, который оценивает качество звука в частотной области, предварительно вычисляя спектрограмму сгенерированного сигнала.
Ведущий подчеркивает принципиальный нюанс: вычисление спектрограммы здесь служит исключительно пространством признаков для функции потерь дискриминатора, а не промежуточной ступенью генерации, как в старых системах. Самым удивительным свойством этих дискриминаторов является их «безусловный» характер. Они не получают на вход текст и не знают, какие именно слова должны звучать в аудиофрагменте; их единственная задача — оценить, похож ли случайный отрезок звуковой волны на подлинную человеческую речь. Если бы сравнение шло по всей длине аудиосигнала поточечно, малейший сдвиг фазы или тайминга приводил бы к катастрофическому штрафу для генератора, но локальные окна успешно решают эту проблему.
🧩 Модуль выравнивания (Aligner) и предсказание длительности токенов 14:37
Центральным узлом, позволяющим обучать модель без готовой разметки, выступает детерминированный модуль выравнивания (aligner). На вход системы подается текст, который на первом этапе автоматически очищается и трансформируется в последовательность фонем с помощью жестко запрограммированных скриптов. Далее этот поток фонем обрабатывается глубоким стеком сверточных нейронных сетей с расширением (dilated convolutions).
Процесс предсказания временной структуры устроен следующим образом:
- Сверточный блок принимает последовательность фонем $X$ и переводит ее в скрытое латентное представление $H$.
- На основе латентных векторов $H$ специальный слой предсказывает числовой параметр $L$ для каждого токена — его условную длительность в кадрах или фреймах. Например, для слова «cat» система может выделить 200 дата-поинтов, а для короткого предлога «on» — всего 50.
- Зная длительность каждого токена, алгоритм математически вычисляет центральную точку каждого слова на временной шкале путем последовательного суммирования всех предыдущих отрезков.
Поскольку модель обучается не на длинных аудиозаписях (что было бы запредельно дорого вычислительно), а на случайно вырезанных двухсекундных сегментах, генератор обязан точно понимать, какие именно слова попали в этот двухсекундный отрезок. Для этого ИИ передается точное смещение (offset) фрагмента от начала исходной записи. Сверяя смещение с предсказанными длительностями токенов, алгоритм математически «вычеркивает» слова, оставшиеся за рамками окна, фокусируясь только на актуальном тексте.
Чтобы сделать операцию привязки токенов к таймлайну дифференцируемой (что необходимо для обратного распространения ошибки), авторы отказались от жестких границ слов. Вместо этого вокруг вычисленного центра каждого токена разворачивается размытое гауссово облако вероятностей — так называемое гауссово ядро. В результате формируется мягкая матрица выравнивания, которая перемножается со скрытыми эмбеддингами фонем, позволяя генератору плавно растягивать или сжимать произношение слов перед финальным апсэмплингом сигнала до 24 кГц.
📉 Преодоление стагнации обучения: спектрограммы и динамическая трансформация времени 24:01
Несмотря на элегантность математической модели, Янник Килчер объясняет, что в своем первоначальном виде эта система абсолютно недееспособна. В самом начале сессии обучения веса нейросети инициализированы случайно, из-за чего предсказания длительности слов $L$ оказываются совершенно хаотичными. Генератор пытается озвучить одни токены, в то время как безусловный дискриминатор оценивает аудиофрагмент, соответствующий совсем другим словам. Возникает замкнутый круг: дискриминатор постоянно заявляет, что звук фальшивый, но не может подсказать генератору, в каком именно месте произошел сдвиг, и обучение намертво застревает.
Для вывода системы из тупика разработчики из DeepMind внедрили вспомогательную супервизируемую функцию потерь в спектральной области. Они вычисляют логарифмическую Мел-спектрограмму сгенерированного двухсекундного окна и сравнивают ее напрямую с истинной спектрограммой оригинального человеческого аудио по критерию $L_1$-расстояния (абсолютной разницы). Этот шаг кажется отступлением от идеи «чистого» сквозного GAN-обучения, однако Янник считает его блестящим практическим трюком, который дает мощный направленный сигнал на ранних эпохах.
Для компенсации неизбежного несовпадения скоростей произношения в этот вспомогательный лосс был интегрирован классический алгоритм динамического программирования — динамическая трансформация времени (Dynamic Time Warping, DTW). Алгоритм функционирует по строго определенным правилам:
- Предполагается, что начальные и конечные точки сгенерированного и эталонного аудиофрагментов совпадают.
- Алгоритм просчитывает абсолютно все возможные траектории совмещения двух сигналов на координатной сетке, накладывая жесткое условие монотонности (звуки не могут идти в обратном порядке).
- За любое отклонение траектории выравнивания от идеальной прямой линии (свидетельствующее о том, что нейросеть слишком затянула или ускорила слово) система начисляет мягкий штраф.
Параллельно задействован еще один вспомогательный лосс: сумма всех предсказанных модулем Aligner длительностей фонем обязана в точности равняться общей физической длине аудиозаписи. В результате, по мнению Килчера, запускается обратный синергетический процесс. На старте генератор учится просто копировать базовые спектральные характеристики человеческого голоса по $L_1$-лоссу, временно игнорируя текстовый контекст. Как только генератор начинает выдавать стабильный спектральный паттерн, градиенты ошибки наконец доходят до модуля Aligner, помогая ему скорректировать предсказания длины токенов. Когда выравнивание стабилизируется, в полную силу вступают состязательные дискриминаторы, доводящие звучание до идеала.