Skip to content

NullCoreDeveloper/NullOfflineVideoTranslator

Repository files navigation

🎬 NullOfflineVideoTranslator

Open In Colab visitors

Полностью автономный продакшен-пайплайн для перевода любых видеороликов на 17 языков мира (русский, английский, испанский, японский и др.). Программа сама скачивает видео, вырезает музыку, распознает текст, переводит его с учетом сленга (через ИИ) и озвучивает клонированным голосом оригинального диктора, автоматически подгоняя звук под видеоряд без искажения тембра.

✨ Ключевые фишки (Что внутри?)

  • ⬇️ Fail-Fast Download & Upload: Продвинутый Colab-интерфейс. Позволяет мгновенно загрузить свой .mp4 файл напрямую с ПК или скачать видео с YouTube через yt-dlp. Если YouTube заблокирует запрос, скрипт выдаст ошибку за 5 секунд, сэкономив вам 3 минуты времени на установку.
  • 🌍 Multi-Language Architecture: Автоматически определяет язык оригинала и переводит на любой из 17 поддерживаемых языков (целевой язык задается одной кнопкой в интерфейсе).
  • 🎵 Studio-Grade Separation (Demucs): Изоляция голоса. Нейросеть физически отделяет фоновую музыку, басы и эффекты от человеческой речи, чтобы транскрибация была идеальной.
  • 📝 Forced Alignment (WhisperX): Сверхбыстрое распознавание текста с автоматическим определением языка оригинала. Привязывает каждое слово к миллисекундам на таймлайне.
  • 🧠 Context-Aware Translation (Gemini Flash): LLM-перевод целыми батчами. Идеально переводит геймерский сленг, мемы и нецензурную лексику без потери контекста. Поддержка балансировки ключей!
  • 🗣️ Zero-Shot Voice Cloning (XTTSv2 ONNX INT8): Клонирование голоса оригинального диктора. Жёстко оптимизировано: модель занимает всего 360 МБ и не переполняет VRAM.
  • ⏱️ Smart Time-Stretching (Rubberband Phase Vocoder): Студийный алгоритм выравнивания времени. Если русский перевод оказался длиннее английского оригинала, алгоритм плавно "сжимает" аудиоволну без изменения высоты голоса (эффект "бурундуков" полностью исключен).
  • 🎚️ Dynamic Audio Leveling & Assembly: Умный микшер pydub. Приглушает музыку до -14 dBFS и выводит голос на -8 dBFS. В конце Colab выдает интерактивную HTML-кнопку для скачивания готового видео.

🚀 Как запустить (Google Colab - Рекомендуется!)

Если вы не хотите ждать часы на слабом процессоре, запустите скрипт на мощных бесплатных серверах Google:

  1. Откройте файл NullOfflineVideoTranslator.ipynb в Google Colab (нажав на бейдж выше).
  2. В верхнем меню выберите Среда выполнения -> Сменить среду выполнения -> T4 GPU.
  3. Заполните токены, выберите язык перевода (например, ru) и источник видео.
  4. Нажмите кнопку Play (▶️).
  5. Если выбрали локальный файл, появится кнопка для его загрузки.
  6. Заварите кофе ☕. Когда скрипт закончит, внизу появится огромная зеленая кнопка "СКАЧАТЬ ВИДЕО"!

В самом низу блокнота Colab есть подробная инструкция со ссылками о том, где бесплатно взять токены HuggingFace и Gemini.


💻 Как запустить локально (На своем ПК)

Шаг 1: Установка

Убедитесь, что у вас установлен Python (скрипт поддерживает современные версии), ffmpeg и rubberband-cli (для умного растяжения звука). Запустите скрипт установки, который сам создаст виртуальное окружение и пропатчит все конфликты библиотек:

python3 install.py

Warning

Дисклеймер по требованиям (Локальный запуск): Этот проект использует тяжелые нейросети. При первом запуске скрипт скачает веса моделей. Убедитесь, что у вас есть свободное место:

  • WhisperX (Транскрибация) — ~2 ГБ
  • XTTSv2 (Клонирование голоса) — ~3 ГБ
  • Demucs (Разделение вокала) — ~200 МБ
  • DeepFilterNet (Опционально, шумодав) — ~100 МБ (+ сама библиотека тянет PyTorch на ~3 ГБ)
  • Итого нужно места на диске: ~8-10 ГБ.
  • Итого нужно VRAM (Видеопамяти): ~4 ГБ (модели подгружаются и выгружаются из памяти по очереди, а не все разом).

Шаг 2: Настройка секретов

В корне проекта скопируйте .env.example в .env и впишите свои ключи:

HF_TOKEN=hf_ВАШ_ТОКЕН_ОТ_HUGGINGFACE
GEMINI_API_KEYS=AIzaSy_ВАШ_КЛЮЧ_1, AIzaSy_ВАШ_КЛЮЧ_2

Important

Разрешения HuggingFace: Для корректной работы разделения голосов (диаризации) с вашим HF_TOKEN, вам необходимо зайти на HuggingFace и принять лицензионные соглашения на страницах следующих моделей (нажать Agree / Accept):

Шаг 3: Погнали!

Просто скормите скрипту любую ссылку на YouTube и укажите язык (например, ru или ja):

./run.sh "https://www.youtube.com/watch?v=dQw4w9WgXcQ" "ru"

Скрипт умный: если он прервется, при следующем запуске он не будет переводить уже готовые куски, а продолжит с места остановки.

About

Video Dubbing and Translation Pipeline

Resources

License

Stars

Watchers

Forks

Contributors