Автоматический перевод субтитров к видео через ChatGPT API

Как настроить автоматический перевод субтитров к видео через ChatGPT API

Автоматический перевод субтитров через ChatGPT API реализуется путём связи видеопроцессора с API OpenAI для экстракции текста субтитров и их перевода через промпты. Это требует настройки скрипта на Python, конфигурации ключа API и обработки файлов видео или SRT-файлов.

Причины использования этого подхода

  • Массовый перевод субтитров без ручного редактирования
  • Экономия времени при работе с большими объёмами видеоконтента
  • Улучшенная точность перевода благодаря контексту ChatGPT
  • Возможность автоматизации для регулярных задач
  • Поддержка множественных языков в одном скрипте

Пошаговая инструкция настройки

  1. Получите API-ключ OpenAI на сайте platform.openai.com, перейдя в раздел API keys.
  2. Установите Python версии 3.8 или выше на ваш компьютер.
  3. Откройте командную строку и выполните команду pip install openai pysrt для установки необходимых библиотек.
  4. Создайте новый файл с расширением .py (например, subtitle_translator.py).
  5. Скопируйте следующий код в файл:
import openai
import pysrt
import os

# Настройка API-ключа
openai.api_key = "ВАШ_API_КЛЮЧ_ЗДЕСЬ"

def translate_subtitle(text, target_language="Russian"):
    """Переводит текст через ChatGPT API"""
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": f"You are a subtitle translator. Translate to {target_language}. Keep formatting."},
            {"role": "user", "content": text}
        ],
        temperature=0.3
    )
    return response['choices'][0]['message']['content']

def process_subtitles(input_file, output_file, language="Russian"):
    """Обрабатывает SRT-файл субтитров"""
    subs = pysrt.load(input_file)
    
    for sub in subs:
        print(f"Перевод: {sub.text[:50]}...")
        sub.text = translate_subtitle(sub.text, language)
    
    subs.save(output_file)
    print(f"Субтитры сохранены в {output_file}")

# Использование
if __name__ == "__main__":
    input_srt = "subtitles.srt"  # Исходный файл субтитров
    output_srt = "subtitles_translated.srt"  # Файл с переводом
    
    process_subtitles(input_srt, output_srt, "Russian")
  1. Замените строку "ВАШ_API_КЛЮЧ_ЗДЕСЬ" на реальный ключ API из OpenAI.
  2. Поместите SRT-файл вашего видео (файл субтитров) в ту же папку, что и скрипт.
  3. В командной строке перейдите в папку со скриптом командой cd путь/к/папке.
  4. Выполните команду python subtitle_translator.py.
  5. Дождитесь завершения обработки — программа выведет сообщение "Субтитры сохранены в subtitles_translated.srt".
  6. Откройте полученный файл subtitles_translated.srt в текстовом редакторе и проверьте качество перевода.
  7. Загрузите переведённые субтитры в видеоредактор (Adobe Premiere, DaVinci Resolve) или видеохостинг (YouTube, Vimeo).

Часто задаваемые вопросы

Как экстрагировать субтитры из видеофайла, если их там нет? Используйте специализированные инструменты типа FFmpeg (ffmpeg -i video.mp4 -map 0:s:0 subtitles.srt) или онлайн-сервисы распознавания речи (Whisper API, Google Speech-to-Text).

Какой модель ChatGPT выбрать для экономии на API-запросах? Используйте модель gpt-3.5-turbo — она дешевле gpt-4 в 10 раз и обеспечивает хорошее качество перевода субтитров.

Как избежать превышения лимита запросов к API? Добавьте задержку между запросами через import time; time.sleep(0.5) и используйте батч-обработку, группируя несколько строк субтитров в один запрос.

Похожие материалы

Нейросеть для генерации заголовков по методике 4U
ChatGPT выдает ошибку Network Error на длинных ответах
Промпт для ChatGPT чтобы получить качественный текст статьи