Мультимодельный ИИ-пайплайн локализации видео
Четыре ИИ-сервиса в одном связном пайплайне. На вход — исходное видео, на выход — локализованное производное видео, дешевле $1.
Роль: RTP Agency·Сроки: 3 месяца в продакшене·Статус: Активное развёртывание
01ТранскрибацияWhisper Large (self-hosted)
02РерайтGemini — сохраняем смысл
03Озвучкамногоязычный TTS
04Подбор кадровVertex AI + Qdrant
05СборкаFFmpeg (GPU-ускорение)
Бизнес-задача
Агентство медиа-локализации хотело адаптировать исходные видео в новые вариации под конкретные рынки — разные языки, аудитории и ниши. Требование: создавать действительно производные видео (новый собранный видеоряд, переписанные сценарии, новая озвучка), а не переводы 1:1, чтобы каждый результат был отдельным активом под свой рынок.
Это был кастомный коммерческий запрос, а не готовый продукт — на рынке такого не было. Клиент хотел проверить гипотезу масштабирования контента: способен ли ИИ адаптировать исходный материал в новые вариации с достаточным качеством и объёмом, чтобы операция была экономически оправдана?
Что было сложным
Наивный подход — перевести, переозвучить и переопубликовать тот же видеоряд — не работает по двум причинам:
- Оригинальность — переиспользование исходного видеоряда и структуры даёт почти дубликат; результат должен быть действительно новым активом
- Различимость в масштабе — каждый результат должен визуально и структурно отличаться, а не копировать исходник
Система должна была выдавать видео с:
- Новым видеорядом (собранным из библиотеки, а не из исходника)
- Переписанными сценариями (смысл сохраняем, формулировки меняем)
- Новой озвучкой на целевом языке
- И при этом семантически связным — новый видеоряд должен реально соответствовать тому, что говорит новое аудио
Архитектура: двухэтапный пайплайн
Этап 1: наполнение библиотеки
Сначала система строит поисковую визуальную библиотеку:
- Пользователь массово отправляет URL видео через Telegram-бота (обработка через очередь)
- Видео скачиваются на сервере, затем сегментируются по детекции сцен (обнаружение склеек, а не фиксированные интервалы)
- Каждый сегмент получает семантический эмбеддинг через Vertex AI
- Эмбеддинги и сегменты хранятся локально в векторной БД Qdrant
- Каждый сегмент также получает JSON-описание содержимого (позже повышает точность подбора)
Архитектурное решение, которое стоит отметить: предыдущая реализация хранила эмбеддинги в Firebase, что было дорого и излишне. Мы перенесли всё на локальный инстанс Qdrant, полностью убрав регулярные расходы на БД. Теперь деньги стоит только создание эмбеддингов — хранение и выдача бесплатны.
Этап 2: генерация нового видео
Когда клиент хочет сделать новое видео:
- Отправляет ссылку на исходник + конфигурацию (язык, голос, музыка, эмодзи, субтитры — всё выбирается через бота)
- FFmpeg извлекает аудио из исходного видео
- Аудио транскрибируется через self-hosted Whisper Large (локально, чтобы избежать расходов на API в масштабе)
- Транскрипт переписывается Gemini — сохраняет смысл, меняя формулировки
- Переписанный сценарий переводится на целевой язык
- Многоязычный TTS генерирует озвучку в выбранном голосе/языке
- Vertex AI подбирает к новым аудио-сегментам кадры из библиотеки по близости эмбеддингов
- FFmpeg собирает финальное видео: подобранные кадры + новое аудио + выбранные улучшения (фоновая музыка, звуки, мемы, субтитры)
- Готовое видео отправляется клиенту в Telegram
Ключевые технические решения
Почему Vertex AI для эмбеддингов
OpenAI на тот момент не давал доступ по API к нужной модели видео-эмбеддингов. Локальные альтернативы были дорогими в эксплуатации. Vertex AI дал лучший баланс цена/качество для продакшена.
Почему self-hosted Whisper
В масштабе расходы на API для транскрибации становятся существенными. Self-hosting на локальном GPU полностью убрал регулярные расходы на транскрибацию.
Почему многоязычный TTS через реселлера
Вместо прямой подписки с жёсткими лимитами по тарифам мы использовали реселлера по модели pay-as-you-go. То же качество, без привязки к подписке, проще масштабировать расходы.
Почему Qdrant локально
Векторная БД на локальном сервере убрала регулярные расходы на облачную БД. Вся библиотека жила на одном домашнем сервере (i5 10-го поколения + GTX 1070).
Инженерия стоимости
Разбор стоимости одного видео для 20-минутного результата:
- Создание эмбеддингов (разово на исходное видео): пренебрежимо
- Транскрибация Whisper: бесплатно (self-hosted)
- Рерайт + перевод Gemini: ~центы
- Многоязычная озвучка (через реселлера): основная статья расходов
- Хранение: бесплатно (локально)
- Обработка: только электричество
Итого за видео: меньше $1, даже для длинного 20-минутного контента.
Именно такая структура расходов делает локализацию в масштабе экономически оправданной — ручная локализация 20-минутного видео заняла бы у дизайнера/монтажёра 8–15 часов работы.
Production-окружение
- Развёрнуто на домашнем сервере (i5-10K + GTX 1070, 16 ГБ ОЗУ)
- Единый интерфейс Telegram-бота — клиент отправляет URL, получает готовые видео
- FFmpeg с GPU-ускорением для сборки видео
- Пропускная способность: ~2 видео в час для 20-минутных роликов (узкое место — сборка)
- Масштабируемый дизайн: архитектура поддерживает параллельное развёртывание на нескольких GPU-нодах (топовые карты не нужны — 2060/3060 достаточно для этой нагрузки)
- Неймспейсы эмбеддингов по категориям (например, отдельные библиотеки для кулинарного и игрового контента) — держит семантический подбор релевантным внутри доменов
Решённые сложности
1. Качество эмбеддингов для визуального подбора
Первая реализация давала плохие семантические совпадения — к новому аудио про тему X подбирался не связанный визуально видеоряд. Решение: дополнили эмбеддинг каждого сегмента JSON-описанием содержимого, резко повысив релевантность подбора.
2. Темп и ритм в собранных видео
Автособранные видео сначала выглядели неестественно — сегменты слишком короткие (меньше 1.5с) или длинные (больше 15с), склейки в неудачные моменты. Заложили ограничения в логику сборки: минимальная/максимальная длительность сегмента, избегание повторов сегментов рядом, нормализация уровня звука.
3. Миграция с Firebase на локальный Qdrant
Унаследованная архитектура хранила эмбеддинги в Firebase с регулярными расходами. Перенесли весь пайплайн на локальный Qdrant, полностью убрав текущие расходы на БД.
4. Качество перевода Whisper
Стандартные переводы Whisper иногда выдавали корявый результат. Добавили Gemini как слой рерайта, который улучшил и сохранение смысла, и естественность языка на целевом языке.
Результат
4+
ИИ-сервисов в оркестрации
~2/час
Пропускная способность для 20-мин роликов
3 мес
Активная работа в продакшене
Сквозная автоматизация — клиент отправляет URL в Telegram и получает готовое к публикации видео без промежуточных ручных шагов. Стоимость меньше $1 за 20-минутный ролик. Масштабируемая архитектура рассчитана на расширение по нескольким GPU-инстансам и категорийным библиотекам.
Технологический стек
| Язык | Python |
| Обработка видео | FFmpeg (GPU-ускорение) |
| Эмбеддинги | Vertex AI |
| Транскрибация | Whisper Large (self-hosted) |
| Рерайт на LLM | Gemini |
| Синтез речи | Многоязычный TTS |
| Векторная БД | Qdrant (self-hosted) |
| Интерфейс | Telegram Bot |
Что это показывает
- Мультимодельная ИИ-оркестрация — свели 4+ ИИ-сервиса в один связный пайплайн
- Семантическое понимание видеоконтента — подбор на эмбеддингах для связности видео и аудио
- Сквозная продуктовая инженерия — от сырого URL до готового результата, всё автоматизировано
- Оптимизация расходов через архитектуру — стратегические решения, что держать на self-host, а что на API, удерживая стоимость видео ниже $1 даже на премиум ИИ-стеке
- Разработка кастомного решения — построили то, чего не было как продукта, под конкретную коммерческую задачу