Язык / Language: Русский · English
Video Translator Pro — Windows-приложение для автоматического распознавания речи, перевода и озвучивания видео. Проект объединяет OpenAI Whisper, машинный перевод, Edge TTS / gTTS и FFmpeg в один устойчивый медиаконвейер.
Главная особенность проекта — режим Pause Sync: если перевод получается длиннее исходной фразы, программа старается сохранить естественную речь вместо агрессивного ускорения или обрезки перевода.
- многоэтапный pipeline: audio extraction → speech recognition → translation → TTS → video assembly;
- Whisper, Edge TTS, gTTS, FFmpeg и FFprobe в одном desktop-приложении;
- checkpoints/recovery и повторное использование промежуточных результатов;
- ограниченные retry и защиту от каскада сетевых ошибок;
- проверку итогового артефакта, а не только return code;
- синхронизацию переведённой речи с видео через Pause Sync;
- модульную структуру
videotranslator/, regression tests и AI-friendlyAGENTS.md.
- распознавание речи через OpenAI Whisper;
- перевод через
deep-translator; - Edge TTS с gTTS fallback;
- Pause Sync и настраиваемый предел ускорения речи;
- FFmpeg / FFprobe media pipeline;
- подмешивание оригинальной дорожки;
- несколько языков;
- TTS-cache;
- checkpoint/recovery;
- финальная проверка MP4;
- структурированная диагностика.
- Установите Python 3.10–3.13 для Windows.
- Установите FFmpeg и FFprobe и добавьте их в
PATHлибо положите рядом сvideo_translator.py. - Скачайте проект:
git clone https://github.com/zeter1/Video-Translator-Pro.git
cd Video-Translator-Pro- Создайте окружение и установите зависимости:
py -m venv .venv
.\.venv\Scripts\Activate.ps1
py -m pip install --upgrade pip
py -m pip install -r requirements.txtПри первом использовании Whisper может загрузить выбранную модель.
py video_translator.pyТакже можно использовать Запустить.bat.
- Выберите видеофайл.
- Укажите язык исходной речи и язык перевода.
- Выберите Whisper и TTS-настройки.
- Настройте максимальное ускорение и подмешивание оригинального звука.
- Запустите перевод.
- Программа выполнит распознавание, перевод, TTS и сборку через FFmpeg.
- Итоговый MP4 проверяется перед успешным завершением.
Если задача прервалась, сохраните recovery/checkpoint и TTS-cache — уже выполненная работа может быть использована повторно.
- Используется естественная пауза после исходной реплики.
- При необходимости перевод умеренно ускоряется в пределах лимита.
- Если фраза всё ещё не помещается, видеоряд временно останавливается до завершения перевода.
video_translator.py # compatibility launcher
videotranslator/
├── pipeline/ # orchestration, translation, TTS, timeline
├── media/ # FFmpeg/FFprobe, audio/video operations
├── speech/ # Whisper loading
├── network/ # retries / network-storm protection
├── recovery/ # checkpoints and batch recovery
├── diagnostics/ # structured diagnostics
├── sync/ # Pause Sync
├── reports/
├── tts/
└── ui/
tests/ # regression tests
tools/ # project tooling
docs/ # documentation
legacy/ # historical implementation
- атомарные checkpoints;
- восстановление незавершённых задач;
- повторное использование TTS-фрагментов;
- ограниченные retry;
- network-storm protection;
- heartbeat длительных Whisper/FFmpeg этапов;
- проверка финального MP4;
- ограничение cache/diagnostics.
python -m compileall -q video_translator.py videotranslator tests tools
python -m unittest discover -s tests -vGitHub Actions выполняет compile и offline regression suite. Полный end-to-end перевод с реальными Whisper/TTS/FFmpeg сценариями требует Windows и соответствующего runtime-окружения.
- качество перевода зависит от распознавания исходной речи;
- сильно заглушённые слова могут быть пропущены Whisper;
- Edge TTS и перевод требуют сетевого доступа;
- полный медиапайплайн зависит от FFmpeg/FFprobe;
- CI не загружает реальные модели Whisper и не заменяет end-to-end runtime проверку.
- Поддержка и диагностика
- Security / privacy
docs/— архитектура и эксплуатационная документация;.github/ISSUE_TEMPLATE/bug_report.yml— структурированный bug report.
Проект опубликован для портфолио, изучения архитектуры и просмотра исходного кода. Отдельная open-source лицензия в настоящее время не предоставляется.