Как собрать свой сервис для генерации субтитров за вечер
Знакомая боль: нужно закинуть короткое видео в соцсети, но без субтитров его никто не будет смотреть со звуком. Можно пойти в платные сервисы, где просят подписку ради десятиминутного ролика, или мучаться в видеоредакторе, выставляя каждый таймкод вручную. Я недавно наткнулся на репозиторий SubStudio, который решает эту задачу изящно и, что самое главное, дает полный контроль над процессом.
Проект Nutlope/ai-subtitles — это готовое open-source приложение на Next.js. Оно берет ваше видео, прогоняет аудиодорожку через нейросеть и выдает готовые титры, которые можно стилизовать прямо в браузере.
Что умеет SubStudio
Автор проекта не стал изобретать велосипед и собрал воедино проверенные технологии. Основная фишка здесь в связке Whisper Large v3 и удобного интерфейса для правки текста.
Вот что вы получаете из коробки:
- Транскрибация с точностью до слова. Система не просто выдает текст, а привязывает каждое слово к конкретному моменту времени.
- Интеллектуальное объединение. Короткие интервалы автоматически склеиваются в читаемые блоки, чтобы текст на экране не мельтешил.
- Живое редактирование. Если нейросеть ошиблась в фамилии или сложном термине, поправить это можно в пару кликов до экспорта.
- Стилизация под разные площадки. Внутри зашито 6 пресетов: от классических белых букв до «тиктоковского» стиля с крупным шрифтом и подложкой.
- Гибкий экспорт. Можно забрать файл
.srtили.vttдля YouTube, а можно сразу скачать.mp4с «вшитыми» (burned-in) субтитрами.
Техническая начинка
Под капотом у проекта достаточно современный стек. Если вы работаете с React, разобраться в коде получится за полчаса.
Интересно, как распределены задачи. За фронтенд отвечает Next.js (App Router) с анимациями на Framer Motion. Для работы с видео используется FFmpeg, а магию распознавания речи обеспечивает Together AI.
Почему Together AI? Это позволяет не нагружать ваш локальный компьютер или сервер вычислениями. Модель Whisper Large v3 достаточно тяжелая, и прогонять её через API — здравое решение для быстрого результата.
Как запустить проект у себя
Для старта вам понадобится ключ API от Together AI. На момент написания обзора у них есть пробный период или достаточно демократичные цены за объем обработанного контента.
Сначала клонируем репозиторий:
git clone https://github.com/Nutlope/ai-subtitles.git
cd ai-subtitles
Затем создаем файл .env в корне и прописываем ключ:
TOGETHER_API_KEY=ваш_ключ_здесь
Дальше всё стандартно: устанавливаем зависимости через npm install и запускаем npm run dev. Проект поднимется на 3000 порту. Если не хочется возиться с консолью, в репозитории есть кнопка для моментального деплоя на Vercel.
Кому это пригодится
Я вижу два основных сценария использования этого кода.
Первый — личные нужды. Если вы ведете блог или делаете контент для компании, иметь собственный инстанс такого сервиса банально дешевле и безопаснее, чем использовать сторонние SaaS-решения с непонятными условиями хранения ваших видео.
Второй — база для своего продукта. Код под лицензией MIT позволяет взять SubStudio за основу и докрутить специфические фичи. Например, добавить перевод на другие языки через GPT-4 или внедрить корпоративные шрифты и логотипы компании в пресеты стилей.
Небольшой нюанс
Стоит учитывать, что проект завязан на внешнее API. Если вам нужна полностью автономная работа без интернета (например, из-за требований безопасности), придется переписывать логику взаимодействия с Whisper на локальный запуск через whisper.cpp или аналогичные решения. Но для быстрого прототипа или личного пользования текущая реализация — золотая середина между сложностью и качеством.
В остальном, это отличный пример того, как современный ИИ можно упаковать в понятный и полезный инструмент без лишнего пафоса. Свою задачу — сделать субтитры «чистыми» и аккуратными — проект выполняет на отлично.
