Авторы статьи: Михаил Кургузов, Владислава Гуза
Коротко о нас
Привет, Хабр! Мы — сотрудники команды локализации и переводов в структуре подразделения, которое оказывает услуги по внедрению программных продуктов. Помогаем внедрять информационные системы и сервисы: осуществляем их локализацию, а также предоставляем обучение и поддержку на языке пользователя.
Цель статьи
В этой статье мы хотим рассказать вам о большом проекте по подготовке и локализации обучающих материалов для открытия розничных магазинов Спортмастер в Узбекистане.
Представьте ситуацию, когда вы сидите спокойно на своем рабочем месте, никого не трогаете, ведете свои проекты, ну и в целом все хорошо и спокойно. И тут совершенно неожиданно вам приходит письмо, в котором говорится, что теперь ваш заказчик выходит на новый рынок, а все (да, ВСЕ!!!) обучающие ролики по вашему сервису нужно в максимально сжатые сроки локализовать на язык новой страны.

Вы вспоминаете, сколько у вас уходило времени на подготовку всех материалов, примерно прикидываете, сколько времени и денег уйдёт на то, чтобы все перевести, озвучить, смонтировать… Волосы седеют, температура повышается, проступает холодный пот, а руки сами вводят буквы hh в адресную строку браузера.
Но! Не так все страшно, как кажется на самом деле, и мы сейчас расскажем, как вы можете выстроить у себя подобные процессы таким образом, чтобы ваши проекты не уничтожали множество безвозвратно теряемых нервных клеток.
На примере этого проекта мы поделимся опытом оптимизации и автоматизации процесса локализации обучающего контента на всех этапах работы. Как мы уже говорили, наша задача — обеспечивать быструю и качественную локализацию, то есть не просто перевести кнопочки, а сделать полноценный культурный апгрейд. В свою очередь, IT-сфера развивается наполеоновскими темпами, слово «автоматизация» мы слышим чаще, чем собственное имя, а нейросети уже повсюду — от кода до мемов с котиками.
О проекте
В связи с тем, что в 2023 году Спортмастер открыл свои магазины в Узбекистане, нам прилетела следующая задача:
Локализовать все имеющиеся видеоролики по ИС для розничной сети на узбекский язык.
На входе получили:
Гору обучающих видео на русском языке
Ноль исходников (ни сценариев, ни файлов проектов монтажа)
Команду без узбекоязычных специалистов (неожиданно, да?)
Команду с максимально забитым расписанием и беклогом
Ах да, ну и срок — 6 месяцев, чтобы особо не расслаблялись.
Для решения такой нетривиальной задачи мы разбили целевой рабочий процесс на несколько этапов:
Стенография текста видео. Помним же, что сценариев нет? Поэтому для начала нужно было благополучно выдернуть аудиодорожку из видеоролика, а потом ее расшифровать.
Перевод сценария на узбекский.
Озвучка текста. Нужен узбекоязычный диктор — либо штатный специалист-переводчик, либо, опять же, профи на аутсорсе.
Пересъёмка видео (опционально).
Ну и монтаж итоговых видео. Тут по-хорошему тоже нужен монтажер, который хотя бы может понять, где узбекский язык, а где нет, в идеале же — снова узбекоязычный лингвист.
Мы прикинули все возможные затраты и достаточно быстро поняли, что проект может быть настолько дорогим, что реализация окажется экономически нецелесообразной. Либо нужно создавать штат узбекоязычных лингвистов, либо же отдавать все на аутсорс.
Ну и мы пошли другим путем! Решили, что нужно наш процесс таки оптимизировать, автоматизировать с использованием всех последних достижений технического прогресса. Ну и куда же без нейросетей!
Стенография текста видео
Первый этап — стенографирование, то есть превращение аудио в текст. Ранее это выглядело бы как «ставишь паузу каждые 5 секунд и делаешь соло на клавиатуре». Но этот этап мы попытались автоматизировать по-максимуму и подлючили нейросетки.
В нашем подразделении на данный момент используются два инструмента для распознавания речи, давайте назовем их условно SubtitleKit_1 (инструмент от зарубежного поставщика в качестве основной утилиты) и SubtitleKit_2 (отечественный аналог в качестве альтернативы).
Мы провели большую работу по исследованию рынка и тестированию доступных нам инструментов. Например, ранее мы использовали инструменты от двух крупных зарубежных компаний, но, во-первых, их качество нас не устраивало (доля брака в среднем составляла 15-20 процентов), во-вторых, могли возникать сложности при работе с консолью что одного, что другого провайдера.
Прежде чем пойдем дальше, давайте проговорим, какие факторы мы считали определяющими при выборе инструмента.
Во-первых, конечно же, качество. Неожиданно, да?) Естественно, основной акцент делался на русском и английском языках, однако умение работать с другими локалями являлось плюсом.
Во-вторых, мы анализировали способность сервисов распознавать слова на других языках, которые могут встречаться в той же русской речи. Это действительно актуальная проблема, например, с которой мы сталкивались в процессе работы с зарубежными сервисами для субтитрирования. Движок распознавания при выставленном условном русском языке старается всячески понять, что же там на русском сказали, и английские термины пытается представить либо в виде беспорядочного набора кириллических символов, либо же в виде слова на русском, которое хотя бы относительно созвучно с исходным английским термином (например, commit → «камин», по итогу сидим, обтекаем и смотрим на фанфик по итогам исходной фразы).

В-третьих, стоимость. При прочих равных чем дешевле — тем лучше (ну или пока распорядитель бюджета не начнет тихо, но крайне настойчиво шептать «дорого» вам на ухо).
Далее — таймкоды. Для оптимальной работы по процессу в дальнейшем (чтобы не работать в режиме «править ручками все до утра») таймкоды необходимы (подробнее об этом расскажем далее), но не все сервисы даже банально поддерживают такой функционал. По заветам Вито Скалетты: «Прости, <username>, таймкоды в сделку не входили, но вот тебе распознанный текст, не благодари».
Ну и last, but not the least, поддерживаемые форматы как итоговых файлов, так и тех файлов, которые вы можете загрузить и благополучно распознать. Опять же, тут все понятно, чем больше — тем лучше, не нужно думать о всякоразных конвертерах и так далее (и ловить экзистенциальный кризис в 3 часа ночи из-за того, что .ogg у вас внезапно не поддерживается, нужно разбираться с ffmpeg или юзать какой-нибудь онлайн-конвертер с дизайном Рамблера из 2005 года и рекламой казино (что есть очень плохо), а за окном уже птички петь начинают).

Мы тестировали еще ряд инструментов, но они не подошли примерно по тем же причинам, что и утилиты от заграничных компаний, про которые мы говорили выше.
В табличке ниже можно увидеть варианты распознавания одного и того же аудио и в определенной мере прочувствовать разницу между двумя нашими утилитами.
SubtitleKit_1 |
SubtitleKit_2 |
Желания возвращаться снова у него точно нет. |
Желание возвращаться с 0 у него точно нет. |
Но будьте аккуратны с ободом и не поцарапайте его. |
Но будьте аккуратны с опытом, не поцарапайте его. |
Что нового в наш процесс привлек программный инкремент? |
Что нового в наш процесс привело к прогабанкримент? |
Наш новый инструмент под кодовым названием SubtitleKit_1 предоставляет наименьший процент брака при распознавании (в среднем около 1–2%, иногда и того меньше), плюс достаточно прост в использовании. Заходите на веб-форму, делаете пару кликов, загружаете файлик — и все. Также он крайне хорошо распознает англицизмы в русском тексте. Еще можно отметить корректную пунктуацию, а также оптимальный размер реплик в большинстве случаев.
Из минусов — высокие требования к железу, так как он должен ставиться на наш выделенный сервер. То есть вам нужен собственно отдельный сервер, где был бы SSD на 100 гигов, 4 ядра, 32 гига оперативы, а кроме того — нужен хороший графический чип гигов на 8 видеопамяти. SubtitleKit_2 недалеко ушел по качеству (средний процент брака — около 5%). Ну и, с одной стороны, плюс — все происходит на мощностях подрядчика, по сути максимум, что вам необходимо — это установленный python, чтобы можно было запустить один скрипт. С другой стороны, python таки нужен. Да, нужно по сути запускать одну и ту же команду, но сами знаете, как бывает: «где тут кнопка, чтоб оно все само?», «зачем инструкции, если пока все живы» и так далее. Но можем сказать, что эту проблему мы решили, сделав небольшой экзешник, так что передавать в другие подразделения компетенции по работе с SubtitleKit_2 уже можем достаточно спокойно). Да, есть определенные минусы с точки зрения пунктуации и разбития субтитров по репликам, однако в целом инструмент показывает себя тоже вполне хорошо.
Основное и самое очевидное преимущество, которое дают нам эти утилиты, заключается в том, что мы можем распознавать текст практически с любого языка, даже без доппрокачки и общения с крайне настойчивой совой в Duolingo. SubtitleKit_2 поддерживает распознавание 16 языков, SubtitleKit_1 — порядка 90 языков.

По процессу распознавания. Как мы уже говорили, SubtitleKit_1 установлен на нашем сервере, поэтому для обращения к сервису достаточно зайти на выделенный ресурс, где создана простая форма для выставления параметров.
Выглядит это вот так:

Там мы выставляем необходимые настройки, подгружаем рабочий файл и запускаем распознавание. При работе с SubtitleKit_2 процесс немного отличается, так как нам нужно обращаться к серверам подрядчика с помощью простого файла на python, где также можно выставить необходимые настройки. После чего на выходе мы получаем файл с результатами распознавания и таймкодами. Для каждого из процессов у нас написаны парсеры на python, которые представляют из себя собранные экзешники и спокойно могут запускаться любым сотрудником компании. Ну а уже с использованием данных программок мы преобразуем массивы текста в условном json в удобную для дальнейшей работы эксельку с тайм-кодами.
Итак, перейдем к очевидным плюсам использования подобных технологий. Первый и главный — мы можем выполнять распознавание, даже не владея в полной мере языком, на котором записано видео.
Далее — скорость. Раньше это была медленная пытка «слушай-ставь паузу-пиши-проклинай всё» и так до победного, теперь же два клика — и можно идти за кофе, а не за валерьянкой.
А ещё для этого не нужно нанимать лингвистов. Лицензия на софт дешевле, чем оплата команды людей, особенно если они любят работать в три часа ночи «потому что вдохновение».
При этом важно упомянуть, что инструменты можно кастомизировать. Конечно, обучение упирается в работу с разработчиками и сбор данных (чем больше объем данных — тем лучше, при небольшом объеме результаты обучения могут быть незаметны).
Можно отметить, что бывают такие случаи, когда с определенной аудиозаписью тот или иной движок справляется хуже другого. Это зависит, например, от особенностей речи говорящего, от качества записи и наличия шумов. Собственно, если интервьюируемый любит группу «Кувалда» и вещает на фоне их творчества — удачи всем моделям. Поэтому мы используем оба инструмента на постоянной основе, чтобы в случае чего иметь альтернативы.

Но все-таки остаются определенные проблемы. При всех плюсах нейросеток все еще необходима корректура получаемых файлов человеком. Например, иногда может встречаться не самая верная пунктуация по принципу «ставлю там, где чувствую», либо же реплики получаются слишком длинными. К тому же, конечно же, мы все еще зависимы от исходной записи, например, если спикер «проглатывает» слова, либо фоновые шумы идут на очень высокой громкости — все эти факторы могут снизить качество распознавания. Ну и наконец, у движков могут наблюдаться проблемы с распознаванием специфической лексики, но тут, опять же, возвращаемся к необходимости корректуры. Плюс данная проблема решается возможной кастомизацией работы движков.
Локализация сценариев видеороликов
Далее переходим к следующему этапу нового процесса. Если ранее переводы выполнялись собственными силами, то сейчас мы используем перевод на аутсорсе плюс определенные средства автоматизации процесса локализации.
Как мы уже писали выше, наше подразделение работает с большим количеством языков. Сейчас у нас нет необходимости держать штат лингвистов, вместо этого мы сформировали большую базу подрядчиков и фрилансеров, которые могут обеспечить все потребности наших заказчиков в локализации. Тут отдельно отметим, что, во-первых, каждый новый подрядчик проходит различные тестирования, во-вторых, их работы регулярно проходят проверку качества.
Итак, какие же средства для автоматизации и оптимизации процесса мы используем?
Первым делом это CAT-инструменты (Computer-Assisted Translation). Это программы или системы, которые не переводят, а помогают сделать этот процесс удобнее и быстрее. Например, если лингвист перевел сегмент, который повторяется далее по тексту, то снова перевод такого же сегмента ему вводить не надо. По сути, аналог Cursor/Copilot, только для переводчиков — то есть подсказывает, но думать все равно, к счастью или к сожалению, надо.
Далее — глоссарии и ТМ (Translation Memory). Это связано с вышеупомянутыми CAT, так как это одна из основных их функций. CAT-инструменты в каждом сегменте вам покажут, что вот тут, например, нужно использовать такой-то глоссарный термин. ТМ же — это Translation Memory или память переводов. То есть все ранее выполненные переводы по проекту сохраняются в отдельный файл, таким образом, если ранее такой же или похожий сегмент переводился, ТМ подскажет об этом и либо подставит его при стопроцентном совпадении, либо скажет, что вот, был похожий сегмент, он совпадает с текущим на 75%, нужны правки (но не перевод с нуля).
Ещё есть FQA-инструменты (Formal Quality Assurance). Неверная капитализация, пунктуация, неиспользование глоссарных терминов, отличие перевода между одинаковыми исходными сегментами и так далее — все эти моменты FQA помогают нам проверить, чтобы обеспечить максимально корректный перевод.

В общем, юзаем что-то типа линтера для переводов, который ругается на неправильно расставленные запятые, по итогу получаем переводы чистые, как слеза младенца.
Какие преимущества дают нам аутсорс и использование современных технологий в сфере локализации?
Скорость перевода. Мы можем масштабировать команду, если нужно выполнить большой объем перевода в сжатые сроки. Также у нас есть уже налаженные процессы, имеется нужный набор инструментов, таким образом временные затраты снижаются по максимуму.
Снижаем экономические затраты. Не держим лингвистов в штате, а оплачиваем непосредственно выполненную работу. Pay-per-use в массы!
Обеспечиваем единообразие перевода. Все термины по тексту переводятся без расхождений.
Максимально снижаем количество возможных ошибок. Проверки выполняются как на стороне подрядчиков, так и на нашей.
Ну и, наконец, мы имеем широкий пул доступных нам лингвистов, для любых языковых пар и тематик.
Так, про субтитрирование и локализацию мы поговорили, осталось чуть ли не самое важное — нейроозвучка! Но о ней — в следующей серии =)