Кейс 06

Мультимодельный ИИ-пайплайн локализации видео

Четыре ИИ-сервиса в одном связном пайплайне. На вход — исходное видео, на выход — локализованное производное видео, дешевле $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 как слой рерайта, который улучшил и сохранение смысла, и естественность языка на целевом языке.

Результат

< $1
За 20-минутное видео
4+
ИИ-сервисов в оркестрации
~2/ч
Пропускная способность для 20-мин роликов
3 мес
Активная работа в продакшене

Сквозная автоматизация — клиент присылает URL в Telegram и получает готовое к публикации видео без промежуточных ручных шагов. Стоимость меньше $1 за 20-минутный ролик. Масштабируемая архитектура рассчитана на расширение на несколько GPU-инстансов и категорийных библиотек.

Технологический стек

ЯзыкPython
Обработка видеоFFmpeg (GPU-ускорение)
ЭмбедингиVertex AI
ТранскрибацияWhisper Large (self-hosted)
Рерайт на LLMGemini
Синтез речиМногоязычный TTS
Векторная БДQdrant (self-hosted)
ИнтерфейсTelegram Bot

Что это демонстрирует

  • Мультимодельная ИИ-оркестрация — свели 4+ ИИ-сервиса в один связный пайплайн
  • Семантическое понимание видеоконтента — подбор на эмбедингах для связности видео и аудио
  • Сквозная продуктовая инженерия — от сырого URL до готового результата, всё автоматизировано
  • Оптимизация затрат через архитектуру — стратегические решения, что держать на self-host, а что на API, удерживая стоимость видео ниже $1 даже на премиум ИИ-стеке
  • Разработка кастомного решения — построили то, чего не было как продукта, под конкретную коммерческую задачу

Похожая задача?

Расскажите, что вы строите — будем рады обсудить.

Обсудить