ПО для автоматизированного создания субтитров
Федеральный телеканал, который владеет несколькими крупнейшими в России продюсерскими компаниями, обратился к нам с задачей: разработать систему с поддержкой греческого языка для субтитрования контента своего телеканала на Кипре. Как решали эту задачу и в чём состояли главные вызовы проекта, рассказываем в материале.
О специфике проекта
В развитых странах для создания комфортной социальной среды телеканалы обязаны большую часть телепередач снабжать субтитрами — подстрочным текстом для людей с ограничением по слуху.
Подготовка субтитров — в недавнем прошлом крайне трудоёмкий процесс: нужно не только практически дословно набрать текст всей передачи, но и правильно его отформатировать, соблюдая стандарты субтитрования.
Для новых материалов, как правило, процесс отлажен. Целые отделы субтитрования работают на телеканалах — они набирают текст, редактируют, проверяют редактирование.
Однако порой возникают задачи, которые обычным способом решить практически невозможно, как это и случилось при продаже Кипрскому телевидению прав на трансляцию огромного объёма развлекательных передач типа «Дома-2». Накопилось сотни часов материала на русском языке, который записывался годами. За несколько месяцев их нужно было отекстовать, перевести на греческий, синхронизировать с аудиодорожкой и сохранить в формате субтитров.
Клиент попросил нас решить эту задачу: на основе хорошо зарекомендовавшей себя в России технологии автоматического субтитрования, разработать систему с поддержкой греческого языка для субтитрования контента своего телеканала на Кипре.
О клиенте
Федеральный телеканал, который владеет несколькими крупнейшими в России продюсерскими компаниями. Его аудитория — 110 миллионов человек в России и ещё миллионы зрителей за рубежом — в том числе в Греции, где планировался запуск системы.
О задаче
Нас попросили разработать систему для перевода и создания субтитров на греческом.
Чтобы как можно быстрее создать первую рабочую версию, решили взять существующие речевые модели от наших партнёров* и медиа-компоненты в открытом доступе.
Нужно было объединить эти компоненты, чтобы можно было с высокой скоростью обрабатывать несколько медиапотоков — так система заработает на любой студии, даже если там стоят компьютеры 10-й летней давности. А ещё добавить новые функции и придумать удобный интерфейс, в котором легко настроить шрифты и расположение текста на экране.
Особое внимание требовалось уделить тестированию. Ведь ошибки в субтитрах могут исказить смысл сказанного. Система должна понимать любую речь — от четкой дикторской до репортажной, часто заглушаемой шумом с места события.
*Использованная в проекте технология субтитрования с возможностью автоматического распознавания речи была изначально разработана в 2014 году группой ЦРТ совместно с Кириллом Левиным, нашим генеральным директором и ex. R&D-инженером, а затем директором научно-исследовательского департамента ЦРТ. Решение применялось на Зимних Паралимпийских играх в Сочи в 2014 году и позволило людям с ограничениями слуха смотреть прямую трансляцию комфортным для себя образом.
В рамках проекта клиента мы в NLABTEAM эту технологию преобразовали и адаптировали под греческое телевидение.
Вызовы проекта
- Спроектировать высокопроизводительную систему: такую, с которой даже маломощный компьютер смог бы легко обработать несколько потоков.
- Сделать так, чтобы субтитры не задерживались и не опережали происходящее на экране.
- Создать универсальную систему, которая поддерживает все популярные кодеки и форматы вещания (RTMP, RTSP, HTTP Live Streaming).
- Протестировать в реальных условиях — проверить, что без ошибок распознаётся самая разная речь, от чётких фраз дикторов до эмоциональных выкриков спортивных комментаторов.
Наши решения
Разработали модульную архитектуру и добились максимальной производительности системы
Чтобы обеспечить высокую производительность, мы взяли модульную архитектуру, которая легко справляется с несколькими потоками даже на «слабых» компьютерах. Например, наша основная машина для тестирования включала всего 8 ГБ оперативной памяти.
В такой архитектуре каждый модуль отвечает за свою функцию: например, захват аудио, распознавание речи, генерацию субтитров, их наложение на видео.
Подход оправдался и продолжает приносить пользу даже сейчас. Многие телевизионные студии, особенно региональные, до сих пор используют старые ПК, но это не помеха для плавной работы системы.
Внедрили алгоритм синхронизации для точного совпадения субтитров с речью
Мы предусмотрели разные ситуации, которые случаются на телевидении. Когда репортер или актер говорит скороговоркой, то субтитров на экране становится слишком много одновременно. Тогда одна строчка накладываются поверх другой.
В других случаях сигнал задерживается и субтитры появляются с опозданием. Получается, что текст относится к кадру, который давно исчез с экрана.
Чтобы строки субтитров не наслаивались друг на друга, компонент рендеринга (часть кода, отвечающую за отрисовку) сокращает время показа субтитров до минимума, при котором их ещё можно прочитать. Если субтитры отстают от речи, мы увеличиваем задержку потока. А если субтитры опережают речь, наоборот, уменьшаем её.
Создали универсальный конвертер для поддержки различных форматов
Разные студии используют разные форматы медиа. Мы же хотели, чтобы наша система была универсальной и легко разворачивалась на любой студии. Значит, она должна быть «всеядной». Работать с форматами MOV, MP4, 3GPPб, FLV, RTMP, RTSP, HTTP, и HTTPS.
Для этого был создан конвертер, который сам определяет, что за формат пришел на вход, и преобразует его в единый стандарт. Система работает с популярными форматами субтитров: SubRip (SRT), SAMI и обеими версиями Substation Alpha.
- SubRip (SRT) это простой текстовый формат субтитров, легко читаемый большинством проигрывателей.
- SAMI — формат на основе языка разметки HTML, который поддерживает стили и позиционирование текста.
- Substation Alpha (SSA) поддерживает расширенное форматирование субтитров, включая шрифты и цвета.
- Advanced Substation Alpha (ASS) — улучшенная версия SSA в которой больше настроек и анимаций.
В основу решения легли пакеты LibVLC и FFmpeg. FFmpeg предоставил нам широкий набор инструментов для работы с медиа. Мы использовали его ключевые библиотеки:
- libavcodec для кодирования и декодирования данных;
- libavformat для работы с медиаконтейнерами;
- libavfilter для постобработки.
Также были задействованы специальные компоненты FFmpeg, библиотеки для обработки видео- и аудиофайлов, для ресамплинга (изменение качества или скорости звука) звука и для масштабирования изображений.
Провели масштабное тестирование в реальных условиях вещания
Мы тщательно проверили нашу систему на надёжность и точность — федеральные каналы смотрят миллионы человек и мы хотели исключить даже маленький шанс, что в субтитры закрадется ошибка. Для этого мы собрали обширную базу аудио- и видеоматериалов, охватывающую разные сценарии вещания: от студийных записей до репортажей с места событий.
- Особое внимание при тестировании уделили распознаванию сложной речи — искажения сказанного не должны появляться ни при каких условиях. Мы использовали записи с сильным фоновым шумом, акцентами и профессиональным жаргоном. Система справилась даже с самыми трудными случаями.
- Для проверки производительности провели нагрузочное тестирование. Для него использовали компьютер с процессором Intel Core i7-2600 и 8 Gb RAM. В 2011 году это был мощный, но любительский процессор. Результаты показали, что система эффективно работает с разными разрешениями видео. При обработке 480p она использует около 3% CPU, а при работе с 1080p — примерно 40% CPU.
- Провели тестирование в режиме реального времени на нескольких ТВ-каналах клиента. Это помогло нам выявить и устранить редкие ошибки, которые проявляются только при длительной работе.
Система успешно справилась с изначальной задачей — создала субтитры на греческом языке для сотни часов реалити-шоу.
Результаты
- Мы сделали универсальный продукт для автоматического создания субтитров. Система работает со всеми популярными форматами: SRT, SAMI, обеими версиями Substation Alpha. Она легко и быстро разворачивается в любой студии. Отлично работает даже на старых компьютерах.
- Субтитры точно соответствуют происходящему на экране, строки никогда не накладываются одна поверх другой. При этом зрителю даётся достаточно времени, чтобы комфортно прочитать текст.
- Система способна корректно функционировать даже в условиях шума.
- Требования греческого телевидения при разработке системы были соблюдены.