Авторы статьи:
Кургузов Михаил
Гуза Владислава
И снова здравствуйте! В этой части завершаем разбор рабочего процесса локализации видео и нейроозвучки. В предыдущих публикациях (раз, два) мы говорили о том, как возникла задача оптимизировать процесс и почему нашей команде стало критично ускорить подготовку десятков обучающих роликов для наших заказчиков в Узбекистане, а также к чему по итогу пришли в ходе наших изысканий.
Теперь давайте поговорим про оставшиеся этапы нового рабочего процесса.
Два последних этапа (собственно, упомянутые в заголовке пересъемку и монтаж видео) мы объединили, расхождения фиксили на этапе монтажа. Таким образом, необходимость в пересъемке отпала в принципе.
Полный ремейк видеоряда требовался только тогда, когда бизнес-процессы в других странах кардинально отличались от таковых в России, но, к нашей радости, случалось это довольно редко.
Отсутствие исходников добавило нам головной боли, потому что, как вы понимаете, уже готовое и озвученное видео — это один файл со звуковой дорожкой. Но решение данной проблемы было найдено быстро: просто в видеоредакторе выдернули старую аудиодорожку и заменили ее на новую, используя все тот же видеоряд, что и был раньше.
Благодаря тайм-кодам накладывать ту же узбекскую озвучку на видеоролики может любой участник команды, даже если его знание узбекского ограничивается словом «салом».
Вот так выглядит файл с тайм-кодами и переводом на узбекский:
По сути, нам нужно было просто найти определенный промежуток в видео, вставить туда соответствующую реплику на узбекском — все, PROFIT! \o/
Да, свои сложности были, куда же без них. Например, семантически узбекский язык длиннее русского, следовательно, реплика на узбекском частенько могла звучать дольше, чем та же реплика на русском. Получалось, что герой видео уже все сделал, а озвучка еще тараторит. Пришлось выкручиваться, так что мы:
растягивали статичные кадры;
немного замедляли видео;
ускоряли озвучку (все в рамках разумного, рассинхрона, как в третьем «Ведьмаке» на релизе, мы избегали);
меняли формулировки и соответствующим образом переделывали некоторые озвученные реплики.
Помимо различий в длине фраз, не всегда корректно работали автоматические модели нормализации и шумоподавления — часть аудиофрагментов приходилось выравнивать вручную. Иногда утилита неверно расставляла акценты в именах собственных и терминах, особенно если они не были заранее внесены в глоссарий. Но, опять же, с помощью своевременного апдейта подобные проблемы удавалось решать практически на лету.
Сотрудники нашей команды узбекского языка не знали, так что было нескучно, но тайм-коды всегда спасали. Ну и для финального QA с целью повышения качества мы дополнительно подключали носителя языка.
Проверка носителем
Чтобы убедиться, что монтаж корректный, а озвучка идеально совпадает с видеорядом, мы подключали нашего специалиста-носителя узбекского языка для финальной проверки. Если ролик прошел этот этап — значит, мы молодцы и финальный вариант можно спокойно выкладывать.
Это решение оказалось куда практичнее, чем если бы мы нанимали целый штат узбекоговорящих спецов или же гоняли аутсорс. Связка «технологии + опыт и экспертиза + профессиональный лингвист» по итогу выдавала вполне себе хорошее качество получаемых материалов с минимальными (в сравнении с другими вариантами выстраивания процесса) временными, финансовыми и трудовыми затратами.
Преимущества процесса
Итак, какие основные преимущества есть у нашего рабочего процесса:
локализуем видео без необходимости пересъемки;
записываем сценарий 10-минутного видео за пару минут;
максимальная автоматизация процессов озвучки: не привлекаем диктора, не арендуем профессиональное оборудование и студию;
вносим правки быстро и безболезненно;
работаем даже с языками, которые знаем на уровне «привет–пока»;
не зависим от текущего языка проекта, можем масштабироваться с минимальной необходимостью найма дорогостоящих специалистов (знающих используемый язык);
развиваем наши собственные языковые скиллы, эдакий learning by doing в максимальном проявлении;
«говорим» на языке, даже не зная его (ну или же крайне убедительно прикидываемся).
Также хотелось бы проговорить еще несколько моментов, которые отражают новый процесс с положительной стороны.
Во-первых, весь такой процесс в целом можно выстроить за счет опенсорсных решений. Хвала техническому прогрессу и Ричарду Столлману, за последние несколько лет нейросети совершили огромнейший скачок, а новые и новые модели постоянно выкладываются на все том же HuggingFace, который сейчас как Steam для ML-моделей — зашел за одной, а вышел с десятью. Поэтому в теории вы можете значительно сэкономить, развернув локально необходимую инфраструктуру, если у вас видеокарта мощнее таковой среднего криптоэнтузиаста (за исключением определенных специализированных инструментов для локализации). Скачали, например, последнюю модель из семейства whisper, далее любую приглянувшуюся LLM для постобработки результатов распознавания — и вот субтитры уже готовы. Причем в зависимости от используемой LLM вы можете как просто настроить формат получаемых субтитров, так и более точечные моменты: адаптация повторов и заиканий спикеров, исправление орфографических и пунктуационных ошибок и так далее. В теории, вы можете использовать машинный перевод для локализации, но, конечно же, машинный перевод сейчас выдает все еще далеко не идеальное качество даже с учетом развития технологий трансформеров (помните «All your base are belong to us»? Так вот такие приколы всплывают до сих пор).
Так что подход в духе «машинный перевод и дальнейшая редактура человеком» может подойти. После чего вы вольны использовать различные модели и сервисы для генерации нейроозвучки, тут уже выбирайте на свое усмотрение, от закоса под Володарского до «Стоп, а это не человек?!». Но не забывайте, что для нейроозвучки также может понадобиться определенная степень редактуры, поэтому важно, чтобы в идеале ее делал человек со знанием того языка, на котором делается озвучка.
Выстроенный таким образом процесс прекрасно подвержен горизонтальному и вертикальному масштабированию. Понадобилось вам осуществлять локализацию роликов на другие языки — пожалуйста. По сути, вопрос решается выбором другого языка в пару кликов на каждом из шагов рабочего процесса. Нужно таким же образом обработать любой другой контент схожего формата — не вопрос. Более того, оба наших инструмента поддерживают работу по API, поэтому в теории их можно интегрировать в любой из сервисов, где это может быть необходимо. Допустим, сделали вы свой видеохостинг с блекджеком и нейросетками — и благополучно влепили туда фичу с автоматическим созданием субтитров.
Теперь по вертикальному масштабированию. Благодаря структуре нашего рабочего процесса можно спокойно автоматизировать либо отдельные его этапы, либо вообще все разом. Осталось совсем немного до стадии «Джарвис, сделай мне субтитры». Сейчас у нас в разработке общий инструмент, который будет в себя включать универсальный конвертер, сам распознаватель с возможностью выбора и маршрутизации в зависимости от формата файла, контента и языка, ну и парсер и конвертер результирующих субтитров для получения наших любимых экселек. В общем, все работать будет по принципу «жми кнопку — получишь результат, не жми — получишь тикет в JIRA».
Ну и снова про автоматизацию, вы можете увязать свое файловое богатство с любой системой контроля версий, а дальше нужно будет только загрузить туда аудио для распознавания, а остальное уже пройдет в автоматическом режиме (ну, после некоторой настройки, но все же). После этого остается только забрать из нужной ветки/директории уже готовые субтитры. Помимо этого, можно настроить необходимые оповещения в корпоративном мессенджере или в том же Slack и всегда быть в курсе того, что и как у вас происходит. Ну и, конечно же, вы сможете в любой момент отследить необходимые логи, всю историю изменений и так далее. В общем, простор всегда есть, развернуться можно, было бы желание и достаточно оперативки на сервере.
Еще один важный момент — модульность выстроенной архитектуры. Ага, прям как LEGO! Этот фактор и наличие альтернатив у наших инструментов, в свою очередь, предоставляют достаточно высокую степень отказоустойчивости выстроенной архитектуры, значительно меньше нужно играть в развеселую игру «угадай, что и почему упало». Ну а так, благодаря модульному характеру, вы можете спокойно заменить любой из имеющихся компонентов процесса. Что-то не устраивает, перестало работать, нашли более достойную альтернативу — с минимальными усилиями внедрили новый компонент без необходимости полной перенастройки рабочего процесса.
Кроме того, никто не запрещает не только заменять, но и добавлять новые компоненты в вашу с любовью выстроенную архитектуру. Например, можете развернуть языковую модель (а может быть, и не одну) для обработки результатов распознавания и начать LLM-батл в духе «Кто кого перефразирует». А потом до кучи еще одну — для проверки того, как таки обработались результаты распознавания на предыдущем этапе. Skynet reviews Skynet.
Тут главное — не уйти в рекурсию.
Когда речь заходит о тотальном распространении технологий в целом и нейросетей в частности, у многих возникает очень и очень много вопросов касательно того, а что же будет дальше. Мол, не проснемся ли мы завтра — а всю работу уже делают T-800 с бейджиками. Но не все так страшно. Итак...
Во-первых, не паникуем. Нейросети — не потенциальный соперник, а скорее ответственный коллега, который всегда успевает к дедлайну, работу которого ОБЯЗАТЕЛЬНО нужно перепроверять, но который зато может освободить время от рутинных задач в пользу тех, где нужен человеческий мозг, креатив, импровизация и чувство вкуса, а не просто жмакать CTRL+C/CTRL+V.
Во-вторых, многие беспокоятся за качество. Но, так как мы делаем не Cyberpunk 2077, то, конечно же, на каждом этапе рабочего процесса происходит полноценный контроль качества, все проверяется, тестируется, при необходимости откатывается и переделывается. Тут, опять же, возвращаемся к тому, что нейросетки и прочие технологии не являются заменой человеку, а скорее — помощниками, по итогу всегда должен быть кто-то, кто будет следить за тем, как хорошо нейросети свою работу сделали.
Ну и третий момент — безопасность. Тут тоже все в лучшем виде, мы не кидаем данные в рандомный API, как кто-то, кто копипастит креды в ChatGPT. Все обрабатывается на выделенных серверах, данные не улетают дальше закрытой корпоративной инфраструктуры, плюс со всеми поставщиками у нас, конечно же, подписаны NDA, так что на тему безопасности можно не беспокоиться.
Немного подытожим, в чем основные преимущества всего нашего нового процесса в целом.
Мы постоянно ориентируемся на лидеров отрасли и стараемся использовать наилучшие продукты для улучшения рабочих процессов.
Благодаря новым инструментам мы можем поддерживать высокий темп работы и обеспечивать все потребности наших заказчиков в срок.
Для нас нейросети стали рабочим инструментом, который помогает ускорить рутинные этапы и выстроить воспроизводимый процесс локализации видео. При этом ключевая роль остается за специалистами, которые контролируют качество и принимают финальные решения. Главное — пользоваться последними достижениями прогресса себе во благо и не бояться нового. То есть основной вывод, который мы можем сделать: нейросети отлично закрывают рутину, но в ближайшем будущем вряд ли полностью заменят редактора/QA, который понимает контекст, культурные детали и подобные моменты. Машина может озвучить, а человек — сделать так, чтобы это не звучало как GPS-навигатор.
Если у вас был опыт автоматизации локализации или работы с TTS-моделями — будем рады обсудить подходы и услышать ваши кейсы в комментариях.
Источник


