Skip to content

chatman-media/Video-Translation-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 Video Translation API

Автоматический перевод видео и подкастов на несколько языков с озвучкой. Извлекает речь из медиафайлов, распознаёт текст, переводит на выбранные языки и создаёт озвучку.

🚀 Возможности

  • 🎯 Автоматическое распознавание речи из видео и аудиофайлов
  • 🌍 Перевод на несколько языков одновременно
  • 🎙️ Озвучка перевода с помощью нейросетевых голосов (Piper TTS)
  • ⏱️ Субтитры в формате SRT для всех языков
  • 📊 Пакетная обработка нескольких файлов
  • ⚙️ Гибкая настройка моделей и голосов
  • 🎧 Поддержка подкастов и мультиязычного контента

🛠️ Как это работает

  1. Извлечение аудиоffmpeg извлекает звук из видео/аудио
  2. Распознавание речиWhisper преобразует речь в текст и субтитры
  3. Перевод текстаGoogle Translate или translate-shell переводит на нужные языки
  4. Создание озвучкиPiper TTS генерирует речь из переведённого текста
  5. Сохранение результатов — все файлы сохраняются в структурированном виде

📦 Установка

1. Клонируйте репозиторий

git clone <repository-url>
cd translation-api

2. Установите Node.js зависимости

npm install
# или
bun install

3. Установите системные зависимости

macOS (через Homebrew):

brew install ffmpeg python3

Ubuntu/Debian:

sudo apt update
sudo apt install ffmpeg python3 python3-pip

4. Установите Python зависимости

# Создайте виртуальное окружение
python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# или: venv\Scripts\activate  # Windows

# Установите зависимости
pip install -r requirements.txt

# Установите translate-shell (для перевода)
brew install translate-shell  # macOS
# или: sudo apt install translate-shell  # Ubuntu/Debian

5. Настройте модели

Whisper (распознавание речи)

Используйте встроенный менеджер моделей:

# Показать доступные модели
python3 model_manager.py list

# Скачать и настроить модель medium  
python3 model_manager.py download medium

# Или полная настройка (скачать, организовать, протестировать)
python3 model_manager.py full medium

Piper TTS (озвучка)

Piper TTS устанавливается автоматически через pip:

pip install piper-tts

Для дополнительных голосов скачайте .onnx файлы с релизов Piper и поместите их в соответствующую языковую папку в voices/{язык}/

⚙️ Конфигурация

Основные настройки в config.json:

{
  "inputDir": "./videos",
  "outputDir": "./output",
  
  "whisper": {
    "model": "medium",
    "device": "cpu",
    "compute_type": "int8"
  },
  
  "translation": {
    "engine": "google",
    "langs": ["en", "de", "fr", "es", "zh", "ar"]
  },
  
  "tts": {
    "piperPath": "./venv/bin/piper",
    "voices": {
      "en": "./voices/en/en-us-danny-low.onnx",
      "es": "./voices/es/es-mls_10246-low.onnx", 
      "fr": "./voices/fr/fr-gilles-low.onnx",
      "de": "./voices/de/de_DE-thorsten-high.onnx",
      "ru": "./voices/ru/ru_RU-denis-medium.onnx",
      "zh": "./voices/zh/zh_CN-huayan-medium.onnx",
      "ar": "./voices/ar/ar_JO-kareem-medium.onnx"
    },
    "speed": 1.0,
    "volume": 1.0
  }
}

Параметры:

  • inputDir — папка с исходными видео
  • outputDir — папка для результатов
  • whisper.model — модель Whisper (tiny, base, small, medium, large-v2)
  • translation.engine — движок перевода (google, argos, trans)
  • translation.langs — языки для перевода (ISO 639-1 коды)
  • tts.piperPath — путь к Piper TTS (обычно ./venv/bin/piper)
  • tts.voices — пути к голосовым моделям Piper (организованы по языкам в voices/{язык}/)

🎯 Использование

Режимы работы

📹 Обработка видео

# Запустить обработку всех видео из папки videos/
npm start
# или
bun start

🎧 Обработка подкастов

# Обработка подкастов из папки input/
node index.js podcast

Подкаст-режим специально оптимизирован для:

  • 🎙️ Мультиязычных подкастов
  • 🌍 Автоматического определения языка
  • 📖 Создания переводов и озвучки
  • 🎵 Сохранения исходного аудио и результатов

📊 Мониторинг прогресса

При обработке больших файлов система показывает:

  • Прогресс транскрибации (в процентах и секундах)
  • Оценку времени завершения
  • Текущий язык распознавания
  • Статус каждого этапа обработки

Пример вывода:

📜 Progress: 44.8% (802.1/1790.9s) [210s elapsed]
📢 ✅ Transcription completed: 1790.9 seconds
🌍 Starting translation to 7 languages...

Управление моделями

# Проверить статус моделей
python3 model_manager.py status

# Скачать модель
python3 model_manager.py download large-v2

# Протестировать модель
python3 model_manager.py test medium

# Показать текущую конфигурацию
python3 current_model.py

Проверка конфигурации

# Показать текущие настройки
python3 current_model.py

📂 Структура результатов

Для каждого видеофайла создаётся структура:

output/
└── video_name/
    ├── audio.wav              # Извлечённое аудио
    ├── original.srt           # Оригинальные субтитры  
    ├── original.txt           # Оригинальный текст
    ├── en.srt                 # Английские субтитры
    ├── en.wav                 # Английская озвучка
    ├── es.srt                 # Испанские субтитры
    ├── es.wav                 # Испанская озвучка
    └── ...                    # Другие языки

✅ Текущий статус

🟢 Работает

  • Whisper распознавание — полностью функционально с моделью medium
  • Перевод — Google Translate и translate-shell работают
  • Piper TTS — установлен через pip и функционирует
  • Обработка подкастов — активно обрабатывает мультиязычные файлы
  • Модельное управление — полная система загрузки и тестирования
  • Голосовые модели — организованы по языкам в voices/{язык}/ (7 языков, 13 голосов)

🟡 В процессе

  • Оптимизация скорости обработки больших файлов

🗣️ Поддерживаемые языки

Распознавание речи: Любой язык, поддерживаемый Whisper (автоопределение языка)

Перевод: 100+ языков через Google Translate и translate-shell

Озвучка: Зависит от доступных голосов Piper (организованы по языкам):

  • 🇺🇸 Английский (en) - голоса: danny, ryan, hfc_male
  • 🇪🇸 Испанский (es) - голоса: mls_10246, davefx
  • 🇫🇷 Французский (fr) - голоса: gilles, siwis, upmc
  • 🇩🇪 Немецкий (de) - голоса: mls, thorsten
  • 🇷🇺 Русский (ru) - голоса: denis, dmitri
  • 🇨🇳 Китайский (zh) - голос: huayan
  • 🇸🇦 Арабский (ar) - голос: kareem

🔧 Устранение неполадок

Whisper не загружается

# Проверить и скачать модель
python3 model_manager.py full medium

Ошибка перевода

  • Проверьте интернет-соединение (для Google Translate)
  • Убедитесь, что языки указаны правильно в config.json

Piper не создаёт озвучку

  • Проверьте путь к бинарному файлу в tts.piperPath (должен указывать на venv/bin/piper)
  • Убедитесь, что piper-tts установлен: pip install piper-tts
  • Убедитесь, что голосовые модели скачаны в соответствующие языковые папки voices/{язык}/
  • Проверьте, что в config.json указаны правильные пути к моделям (включая языковую директорию)

Недостаточно памяти

  • Используйте меньшую модель Whisper (base вместо medium)
  • Обрабатывайте видео по одному
  • Закройте другие приложения

📚 Дополнительно

🤝 Вклад в проект

Приветствуются pull request'ы и issue! Пожалуйста, следуйте кодстайлу и добавляйте тесты для новых функций.

📄 Лицензия

MIT License — см. файл LICENSE для подробностей.

About

Автоматический перевод видео на несколько языков с озвучкой. Извлекает речь из видео, распознаёт текст, переводит на выбранные языки и создаёт озвучку.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors