Как мы научились сохранять тембр и интонацию спикера при переводе видео в Яндекс Браузере |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2025-04-29 13:27 Осенью 2021 года мы впервые представили пользователям технологию перевода видео в Яндекс Браузере. Этот инструмент быстро стал популярен: с его помощью переведены уже миллионы часов видеоконтента. Напомним, что на старте для перевода использовались только два голоса — мужской и женский. Затем мы расширили набор заранее созданных голосов. Ну а сегодня мы делаем следующий большой шаг вперёд. Синтез речи нового поколения Для начала поговорим о том, как устроена наша новая базовая технология синтеза речи. Не сомневаюсь, что все слышали про революцию, которую совершили большие языковые модели, или LLM, в задачах обработки естественного языка. Примерно такая же революция с некоторым запозданием происходит сейчас и в синтезе речи, если перенести похожие подходы из NLP. В основе лежит идея представления аудио как последовательности дискретных токенов небольшой длины, после чего происходит предсказание аудиотокенов по текстовым токенам. Первопроходцами в этом направлении были опенсорс?модель Tortoise?TTS и модель VALL?E из академической среды. Для своей новой модели мы использовали первую из них — Tortoise?TTS — сильно доработав и модифицировав её. Напомню, из чего состоит архитектура Tortoise:
Модель Tortoise умеет синтезировать речь, сохраняя тембр и интонацию из произвольного аудиопромпта, длительность которого может не превышать несколько секунд. Причём синтез выдаёт приемлемый результат даже в том случае, если аудиопромпт на одном языке, а синтезируем мы фразу на другом. Такой сценарий как раз подходит для озвучки перевода видео, когда мы хотим синтезировать текст перевода на русском языке, сохранив тембр и интонации оригинала на английском. Базовое качество 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. Это всё ещё достаточно медленно, но уже позволяет генерировать ответ пользователю в режиме реального времени. Применение модели синтеза для перевода видео У нас есть модель синтеза речи, которая умеет переносить тембральные характеристики с переданного аудио и работает достаточно быстро с точки зрения производительности. Чтобы рассказать, как мы её применяем в переводе видео, нужно сначала напомнить устройство нашего базового пайплайна. Весь пайплайн состоит из пяти этапов:
Более подробно о нашем пайплайне перевода видео можно прочитать в другой нашей статье на Хабре. В нашем базовом пайплайне мы заменили модель синтеза речи на систему нового поколения, которая звучит гораздо естественнее и способна передавать тембр и интонацию с английской аудиозаписи с помощью аудиопромпта. Но как именно мы подбираем такие промпты? Мы используем две эвристики:
Насколько хорош новый перевод видео Для оценки качества перевода видео мы используем метод сравнения side?by?side двух систем. Асессорам показывается оригинальное видео и два варианта перевода, после чего они выбирают тот, который им кажется наиболее качественным. По результатам внутренних тестов, основанных на этой метрике, перевод видео с использованием синтеза нового поколения с переносом тембра и интонации оказался предпочтительнее старого многоголосого синтеза в 72% случаев. Кроме того, мы сравнили нашу модель с одной из ведущих зарубежных систем синтеза речи — ElevenLabs. Тестирование проводилось в двух сценариях:
Таблица с результатами: ![]() Наш перевод видео с английского на русский значительно превосходит перевод от ElevenLabs в end2end?замере и также немного лучше при сравнении только озвучек. А вот как это работает для пользователей Яндекс Браузера (англоязычный первоисточник ролика опубликован тут). Перевод видео нового поколения доступен пользователям Яндекс Браузера, выполнившим вход в Яндекс ID, при просмотре роликов на YouTube, VK Видео, Дзен и Rutube. Его можно выбрать в панели, которая появляется при просмотре видео в Браузере. Прогресс не стоит на месте. Мы планируем добавить возможность полного и детального переноса интонации с оригинального видео с синхронизацией речи с движением губ. А пока можете попробовать наш обновлённый перевод видео и поделиться своими отзывами в комментариях. Источник: habr.com Комментарии: |
|