
Осенью 2021 года мы впервые представили пользователям технологию перевода видео в Яндекс Браузере. Этот инструмент быстро стал популярен: с его помощью переведены уже миллионы часов видеоконтента. Напомним, что на старте для перевода использовались только два голоса — мужской и женский. Затем мы расширили набор заранее созданных голосов. Ну а сегодня мы делаем следующий большой шаг вперёд.
Теперь наша технология сохраняет тембр и интонации оригинального голоса, создавая перевод, который звучит более естественно и близко к оригиналу. О том, как мы этого добились, расскажу в этой статье. Вы узнаете, как выглядит архитектура нашего нового решения, какие проблемы zero‑shot‑синтеза мы решали и как ускоряли инференс новой модели. Расскажу про эвристики для выбора аудиопромптов. Поговорим про замеры качества. Ну и, конечно же, покажу итоговый результат нашей работы в виде ролика в конце статьи.
Синтез речи нового поколения
Для начала поговорим о том, как устроена наша новая базовая технология синтеза речи.
Не сомневаюсь, что все слышали про революцию, которую совершили большие языковые модели, или LLM, в задачах обработки естественного языка. Примерно такая же революция с некоторым запозданием происходит сейчас и в синтезе речи, если перенести похожие подходы из NLP. В основе лежит идея представления аудио как последовательности дискретных токенов небольшой длины, после чего происходит предсказание аудиотокенов по текстовым токенам.
Первопроходцами в этом направлении были опенсорс‑модель Tortoise‑TTS и модель VALL‑E из академической среды. Для своей новой модели мы использовали первую из них — Tortoise‑TTS — сильно доработав и модифицировав её.
Напомню, из чего состоит архитектура Tortoise:
VQ‑VAE‑кодек, работающий по принципу автоэнкодера и обученный на большом корпусе произвольного аудио. С его помощью можно извлечь дискретные аудиотокены из произвольного звука.
Языковая модель, или LM, предсказывающая по текстовым BPE‑токенам аудиотокены.
CLVP‑ / CLIP‑like‑ранжировщик гипотез из LM, который по паре текстовых и аудиотокенов возвращает их близость. CLVP полезен, когда мы формируем несколько гипотез из LM и хотим выбрать из них лучшую.
Диффузионная модель, которая по латентам LM восстанавливает мел‑спектрограмму. По сути, это обычная спектрограмма, где частота выражена не в Гц, а в мелах. Эта единица измерения основана на психофизиологическом восприятии звука человеком и логарифмически зависит от частоты.
Вокодер, который по мел‑спектрограмме возвращает аудиоволну.

Модель Tortoise умеет синтезировать речь, сохраняя тембр и интонацию из произвольного аудиопромпта, длительность которого может не превышать несколько секунд. Причём синтез выдаёт приемлемый результат даже в том случае, если аудиопромпт на одном языке, а синтезируем мы фразу на другом. Такой сценарий как раз подходит для озвучки перевода видео, когда мы хотим синтезировать текст перевода на русском языке, сохранив тембр и интонации оригинала на английском.
Базовое качество Tortoise при наличии большого датасета аудиоданных хорошего качества позволяет получить синтез, который звучит естественно и практически неотличим от человеческой речи. Мы в своих экспериментах использовали датасет, который включает несколько сотен тысяч часов открытых данных.
Например, так может звучать голос Алисы на английском:
Однако у исходной реализации есть ряд серьёзных недостатков, которые не позволяют использовать её в продакшне:
Качество zero‑shot‑синтеза, когда мы по аудиопромпту пытаемся синтезировать аудио тем же голосом, часто оказывается недостаточно высоким: голос получается непохожим, могут быть проблемы с качеством произношения, в синтезе может быть слышен акцент при переносе тембра с английского на русский.
Инференс модели очень медленный: для синтеза одной фразы необходимо сгенерировать 512 гипотез из языковой модели, а также запустить диффузионную модель на сотню итераций. RTF (real‑time factor) такого инференса значительно больше 1. Собственно, из‑за скорости инференса модель и получила своё название — Tortoise, то есть «черепаха».
Синтез ведёт себя нестабильно на шумных аудиопромптах: либо он полностью ломается и генерирует нечленораздельные звуки, либо сохраняет много шума, присутствовавшего в оригинальном аудио.
Поэтому мы сделали несколько улучшений, направленных на решение каждой из указанных проблем. Давайте теперь поговорим про каждое из них более подробно.
Улучшение качества zero-shot-синтеза

В наших экспериментах мы наблюдали, что LM влияет на интонацию, качество произношения и похожесть голоса, в то время как диффузия отвечает за качество звука и в меньшей степени — за моделирование тембра голоса. Поэтому бóльшую часть усилий мы приложили к улучшению LM.
Сперва мы перенесли подходы, которые используем для предобработки текста в наших текущих продакшн‑моделях, и полечили проблему, связанную с правильностью произношения. Недостаток оригинальной архитектуры Tortoise в том, что она обучена на BPE‑токенах. Такой подход позволяет существенно упростить пайплайн препроцессинга исходного текста и экономит вычислительные ресурсы за счёт меньшей длины выходной последовательности. Но мы заметили, что качество произношения синтеза на BPE не всегда высокое, и в случае ошибок — например, в иностранных словах — мы не можем их исправить.
Здесь нам помогает фонемное представление текста: мы предсказываем корректное произношение исходных слов и возвращаем их фонемную транскрипцию. Кроме того, поскольку мы работаем на двух языках — английском и русском, — с помощью лингвиста мы создали общий фонемный алфавит, который отображает английские и русские фонемы в единое фонемное пространство.
Теперь же поговорим про улучшения, которые мы привнесли для моделирования тембра и интонации. Обычно про задачу синтеза речи говорят, что она ill‑defined, поскольку один и тот же текст можно произнести бесконечным числом способов. Поэтому, чтобы сузить пространство потенциальных ответов, используют внешнюю подсказку: например, в Tortoise это аудиопромпт, из которого модель может получить всю информацию, которая не присутствует в тексте. Сюда как раз таки входит информация о голосе, интонации, громкости и акустических условиях записи.
Аудиопромпт в LM Tortoise пропускается через нейросеть, подсчитывающую conditioning latents. Архитектура этой сети — это стандартный трансформер, из которого удалены все feed‑forward‑слои и positional encoding. На последнем этапе все эмбеддинги этой сети усредняются, и на выходе мы получаем один вектор.
Для такой схемы обучения модели критичен алгоритм подбора аудиопромптов: чем выше точность совпадения голосов и интонации между промптом и аудио, которое мы предсказываем, тем выше качество синтеза итоговой модели. Однако даже при достаточно точном подборе аудиопромптов на обучении, в своих экспериментах мы заметили, что тембр синтеза всё равно может сильно плавать от фразы к фразе и само качество переноса тембра остаётся не очень высоким. В связи с этим мы решили обуславливать работу языковой модели не только информацией из аудиопромпта, но и напрямую использовать дополнительные аудиоподсказки.
Первой такой подсказкой стало значение автометрики синтеза UTMOS, рассчитанной по целевому аудио. Модель UTMOS предсказывает качество речи на аудио по оценке от 1 до 5, и её часто используют, чтобы оценить качество синтеза. В наших тестах студийные записи с хорошей интонацией обычно получают значения от 3,5 и выше, а аудио с выраженным шумом или артефактами — около 1,5 или ниже. Использование UTMOS в качестве подсказки позволяет контролировать качество синтеза на этапе инференса, при этом применение фиксированного высокого значения приводит к улучшению интонации и более приятному звучанию. По результатам наших экспериментов мы остановились на значении 3,75 на инференсе.
Вот так звучит оригинальный аудиопромпт и синтез с UTMOS 3,0, 3,75 и 4,25.
Мужской голос:
Женский голос:
Второй подсказкой для переноса тембра, интонации и акустических условий стали эмбеддинги, полученные с помощью модели голосовой биометрии, рассчитанные по целевому аудио. Важно, что этот тип обусловливания практически не обучается, что предотвращает «подглядывание» LM за правильным ответом и снижает риск переобучения. На этапе инференса мы вычисляем биометрический эмбеддинг по аудиопромпту, тембр которого хотим перенести.
После внедрения биометрической подсказки модель успешно передаёт тембр, если язык аудиопромпта совпадает с языком синтезируемого текста, и тембр остаётся практически неизменным от фразы к фразе. Однако при подаче на вход английского аудио для синтеза русского текста модель выдаёт речь с ярко выраженным английским акцентом. Хотя такое поведение естественно для носителей английского, не владеющих русским, оно нас не устраивало. Дальше я расскажу, как мы решили проблему наличия акцента при синтезе.
Вот как звучит синтез с сильным акцентом:
Уменьшение акцента в синтезе
Основная причина появления акцента в синтезе нашей модели заключается в том, что биометрическая модель содержит значительный объём языковой информации. Например, в одной из статей показано, что с её помощью можно обучить достаточно точный классификатор для различения акцентов по аудио.
Кроме того, во время обучения модель видит данные только на одном языке, а на этапе инференса подаётся аудиопромпт на английском, в то время как текст — на русском. Чтобы устранить это несоответствие train‑inference, мы решили собрать «параллельный датасет», состоящий из английских аудиопромптов и соответствующих таргет‑аудио на русском, и дообучить LM на этих данных.
Собрать датасет реальных аудиопримеров, где один и тот же человек говорит на разных языках, крайне сложно. Поэтому мы использовали генерацию синтетических данных. Для этого мы применили модель Tortoise, обученную без подсказки на биометрический эмбеддинг, и синтезировали английские тексты с аудиопромптами на русском. Такие генерации не всегда точно передавали тембр голоса, но при этом не содержали акцента. Затем мы отфильтровали пары (русский аудиопромпт и английская генерация) по высокой схожести биометрической модели, оставив только те, в которых голос совпадал с оригинальным аудиопромптом.
При дообучении языковой модели на профильтрованном датасете мы использовали биометрические эмбеддинги, рассчитанные по аудиопромпту, чтобы модель видела примеры, где голос и текст представлены на разных языках. В результате доля синтеза с акцентом снизилась с 50% до 5%, пусть и с незначительной потерей качества переноса тембра.
Ускоряем инференс
С точки зрения производительности для нас важны две метрики: throughput и latency модели. Первая показывает, сколько одновременных запросов модель может обрабатывать, вторая — сколько времени занимает ожидание ответа от модели. В нашем сценарии, когда мы обрабатываем большие видео и нам приходится синтезировать сотни фраз в единицу времени, важен в бóльшей степени throughput, и мы можем несколько жертвовать latency. В своих экспериментах мы улучшали обе метрики.
Для увеличения throughput мы для каждого компонента модели реализовали пакетную обработку входа, местами реализовав поддержку масок внутри инференса моделей. Для LM в наших экспериментах удалось снизить число формируемых гипотез с 512 до 16, а для диффузии — снизить число итераций forward pass‑ов со 100 до 20 без видимой потери качества.
Теперь поговорим про уменьшение latency. Из стандартных решений мы используем вычисления в пониженной точности, более производительный низкоуровневый бэкенд (torch.compile) и flash attention в качестве быстрой реализации механизма внимания. Для поддержки torch.compile мы даже реализовали поддержку статического кеша для общеиспользуемого класса GPTModel в библиотеке Transformers.
В части инференса диффузионной модели мы используем алгоритм classifier‑free guidance, когда необходимо запускать нейросеть дважды: один раз в условном режиме, когда мы подаём в качестве обуславливания латенты GPT‑модели, и второй — в безусловном режиме, когда диффузионная модель реконструирует только случайный шум. Далее оба выхода объединяются с определёнными весами.
Для ускорения classifier‑free guidance мы используем технику knowledge distillation, когда мы обучаем нейросеть‑студента на выходах нейросети‑учителя. Здесь в качестве учителя выступают ответы двух проходов forward pass обычной диффузионной модели, а студент, инициализированный весами учителя, пытается напрямую предсказать его ответы. Благодаря такому обучению мы получаем нейросеть‑студента с таким же числом параметров, как и у учителя, но требующую только одного прохода инференса.
Собрав все улучшения вместе, мы получили систему с RTF ≈ 0,18. Это всё ещё достаточно медленно, но уже позволяет генерировать ответ пользователю в режиме реального времени.
Применение модели синтеза для перевода видео
У нас есть модель синтеза речи, которая умеет переносить тембральные характеристики с переданного аудио и работает достаточно быстро с точки зрения производительности. Чтобы рассказать, как мы её применяем в переводе видео, нужно сначала напомнить устройство нашего базового пайплайна.

Весь пайплайн состоит из пяти этапов:
ASR, или распознавание речи, конвертирует исходную аудиодорожку в текст.
Speaker diarization и чанкеризация разделяют текст из ASR на предложения. Для каждого предложения определяется пол говорящего и его идентификатор.
Машинный перевод речи с учётом контекста и пола говорящего.
Синтез речи.
Постобработка, в которой мы накладываем аудио с синтезированным переводом на оригинальное видео.
Более подробно о нашем пайплайне перевода видео можно прочитать в другой нашей статье на Хабре.
В нашем базовом пайплайне мы заменили модель синтеза речи на систему нового поколения, которая звучит гораздо естественнее и способна передавать тембр и интонацию с английской аудиозаписи с помощью аудиопромпта. Но как именно мы подбираем такие промпты?
Мы используем две эвристики:
Денойзинг аудио. Аудио из случайных видеороликов нередко содержит фоновый шум, музыку или посторонние звуки. Это негативно сказывается на качестве синтеза, так как модель передаёт акустические характеристики исходного промпта. Чтобы устранить эту проблему, мы применяем модель денойзинга, которая очищает аудио, удаляя всю лишнюю информацию и оставляя только голос. Благодаря этому качество синтеза значительно улучшилось как в естественности звучания, так и в точности переноса тембра.
Выбор наиболее качественного аудиопромпта. Для каждого голоса в оригинальной дорожке мы выбираем фразу с самым высоким значением UTMOS. Такой подход позволяет найти наиболее приятную по звучанию реплику спикера и отсеять аудиопромпты с возможными артефактами, возникшими после денойзинга.
Насколько хорош новый перевод видео
Для оценки качества перевода видео мы используем метод сравнения side‑by‑side двух систем. Асессорам показывается оригинальное видео и два варианта перевода, после чего они выбирают тот, который им кажется наиболее качественным.
По результатам внутренних тестов, основанных на этой метрике, перевод видео с использованием синтеза нового поколения с переносом тембра и интонации оказался предпочтительнее старого многоголосого синтеза в 72% случаев.
Кроме того, мы сравнили нашу модель с одной из ведущих зарубежных систем синтеза речи — ElevenLabs. Тестирование проводилось в двух сценариях:
Сравнение двух систем перевода видео end2end. Берём видео и отправляем его на полный перевод (с субтитрами и озвучкой) в две разные системы.
Сравнение только озвучки. Берём одни и те же субтитры (текст для озвучки) и прогоняем их через разные системы синтеза речи. Например, у ElevenLabs иногда плохо работает перевод, но если использовать наши субтитры и их озвучку, результат становится лучше. Так мы проверяем, какая система лучше превращает текст в речь, без влияния ошибок перевода.
Таблица с результатами:

Наш перевод видео с английского на русский значительно превосходит перевод от ElevenLabs в end2end‑замере и также немного лучше при сравнении только озвучек.
А вот как это работает для пользователей Яндекс Браузера (англоязычный первоисточник ролика опубликован тут).
Перевод видео нового поколения доступен пользователям Яндекс Браузера, выполнившим вход в Яндекс ID, при просмотре роликов на YouTube, VK Видео, Дзен и Rutube. Его можно выбрать в панели, которая появляется при просмотре видео в Браузере.
Прогресс не стоит на месте. Мы планируем добавить возможность полного и детального переноса интонации с оригинального видео с синхронизацией речи с движением губ. А пока можете попробовать наш обновлённый перевод видео и поделиться своими отзывами в комментариях.