Кейс 04

Мультимодельний ШІ-пайплайн локалізації відео

Чотири ШІ-сервіси в одному зв'язному пайплайні. На вхід — вихідне відео, на вихід — локалізоване похідне відео, дешевше $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 навіть на преміум ШІ-стеку
  • Розробка кастомного рішення — побудували те, чого не було як продукту, під конкретну комерційну задачу

Схожа задача?

Розкажіть, що ви будуєте — будемо раді обговорити.

Обговорити