machinewrapped/llm-subtrans

Open Source project using LLMs to transcribe and translate subtitles (SRT, SSA/ASS, VTT)

TL;DR

LLM‑Subtrans는 선호하는 대규모 언어 모델 API(OpenRouter, OpenAI, Gemini, Claude, Mistral, Bedrock 또는 자체 호스팅 OpenAI 호환 서버)를 사용하여 자막 파일(SRT, ASS/SSA, VTT)을 번역할 수 있는 데스크톱 스타일 앱입니다. 또한 오디오/비디오를 전사(선택적 화자 분리 포함)한 다음 결과 자막을 번역할 수 있습니다. 사전 빌드된 Windows/Mac 패키지 또는 소스에서 설치하고, API 키를 구성한 후 GUI(gui-subtrans) 또는 명령줄 도구(llm-subtrans)를 실행하세요.


기능

  • 자막 파일 일괄 번역 – 파일을 청크로 분할하고, 각 청크를 선택한 LLM에 보내고, 대상 언어로 새 자막 파일을 작성합니다.
  • 플러그인 시스템을 통한 여러 자막 형식 지원(.srt, .ass/.ssa, .vtt).
  • 선택적 전사 – 비디오/오디오에서 음성을 추출하고, 선택적으로 화자 레이블을 추가한 다음, 전사본을 번역 파이프라인에 전달합니다.
  • 다중 제공자 – OpenRouter, Requesty, Opper, Google Gemini, OpenAI(Azure 포함), DeepSeek, Anthropic, Mistral, 사용자 지정 OpenAI 호환 서버 및 Amazon Bedrock. 로컬 전사는 Qwen‑3‑ASR을 통해 제공됩니다.
  • GUI 및 CLI – 대부분의 사용자를 위한 클릭 인터페이스, 스크립팅 및 배치 작업을 위한 완전한 기능의 명령줄.
  • 프로젝트 파일(.subtrans) – 진행 상황과 설정을 저장하고 중단된 번역을 재개할 수 있습니다.

대상 사용자

  • 영화/TV 팬, 번역가 또는 콘텐츠 제작자 – 다른 언어로 자막을 빠르게 생성해야 하는 경우.
  • 개발자 또는 고급 사용자 – 대량 자막 변환을 스크립팅하거나 LLM 번역을 파이프라인에 통합하려는 경우.
  • 클라우드 LLM 서비스에 API 키를 제공할 수 있는 사용자(이 도구는 선택적 Qwen ASR 전사를 제외하고 모델을 로컬에서 실행하지 않음).

작동 방식(개요)

  1. 자막 파일 로드(또는 미디어 파일을 드래그하여 전사 트리거).
  2. 제공자 선택 및 해당 API 키 제공(.env 파일 또는 GUI 설정에 저장).
  3. 앱은 자막을 배치로 분할하고 제공자의 채팅/완료 엔드포인트를 통해 각 배치를 LLM에 보냅니다. 프롬프트 템플릿은 자막 텍스트({prompt})와 모든 화자 레이블을 삽입합니다.
  4. LLM은 번역된 줄을 반환하고, 앱은 이를 새 자막 파일(동일 형식 또는 다른 형식으로 변환)에 기록합니다.
  5. 전사의 경우 앱은 음성‑텍스트 모델(클라우드 또는 Qwen‑Local)을 호출하고, 선택적으로 화자 분리를 추가한 다음 결과를 2단계로 전달합니다.

시작하기

빠른 설치(Windows/Mac)

  1. Releases 페이지에서 적절한 zip을 다운로드합니다.
  2. 압축을 풀고 gui-subtrans를 실행합니다.
  3. 첫 실행 시 사용할 제공자의 API 키를 입력합니다.
  4. 자막 파일을 열고 대상 언어를 선택한 후 번역을 클릭합니다.

소스에서(Linux 또는 사용자 지정 설정)

git clone https://github.com/machinewrapped/llm-subtrans.git
cd llm-subtrans
# 설치 프로그램 실행(venv 및 선택적 GUI 생성)
./install.sh   # 또는 Windows의 경우 install.bat

.env 파일에 키를 추가합니다(예: OPENAI_API_KEY=…). 로컬 전사를 원하면 qwen-asr과 같은 선택적 추가 기능을 설치하세요.


주요 기술 세부 사항(README에서)

  • Python ≥3.10; 선택적 부분은 Python 3.12(Qwen ASR) 필요.
  • 가상 환경 기반 설치; pip install -e .는 편집 가능한 개발 설치용.
  • 제공자별 참고 사항 – 예: Gemini는 특정 콘텐츠를 차단할 수 있고, Claude는 비싸며, Bedrock은 복잡한 AWS IAM 설정 필요.
  • 전사 종속성 – ffmpeg/ffprobe가 PATH에 있어야 합니다.
  • 속도 제한 처리 – 분당 API 호출을 제한하는 --ratelimit 인수.
  • 사용자 지정 프롬프트 – 특수 형식이 필요한 서버의 경우 템플릿을 편집할 수 있지만 {prompt} 자리 표시자는 유지해야 합니다.

장단점(요약)

장점 단점
OpenAI 호환 API가 있는 모든 LLM과 작동하여 가장 저렴하거나 가장 빠른 모델을 유연하게 선택할 수 있습니다. 외부 API에 의존 – 토큰당 비용을 지불하고 자막/오디오가 타사 서버로 전송됩니다.
GUI는 비기술 사용자도 접근 가능; CLI는 자동화를 지원합니다. 번역을 위한 로컬 모델 추론은 지원되지 않습니다(선택적 로컬 ASR만).
여러 자막 형식을 지원하며 형식 간 변환도 가능합니다. 일부 제공자(예: Gemini, Bedrock)는 콘텐츠 또는 속도 제한이 있어 배치 작업을 중단할 수 있습니다.
프로젝트 파일로 번역을 재개할 수 있습니다. Linux/macOS에서 설정하려면 소스에서 빌드하고 Python/ffmpeg 종속성을 설치해야 합니다.

결론

LLM‑Subtrans는 자막 파일과 현대 LLM 번역 서비스를 연결하는 진정한 기능 도구입니다. 자체 API 호출 스크립트를 작성하지 않고도 다국어 자막을 생성해야 하는 모든 사람에게 유용하며, 고급 사용자에게 충분한 구성 가능성을 제공합니다.


빠른 참조 치트 시트

기능 사용 방법
파일 번역(CLI) llm-subtrans --auto -l es movie.srt
특정 모델 선택 llm-subtrans --model gemini-2.5-flash -l fr subtitles.ass
번역 중 형식 변환 -o out.srt는 출력 확장자를 변경합니다
비디오 전사 python scripts/transcribe.py film.mkv --language ja
GUI 실행 gui-subtrans(또는 패키지된 exe 더블 클릭)
중단된 작업 재개 llm-subtrans --project --auto -l de movie.subtrans
설정 로컬 저장 설치 스크립트 또는 시작 명령에 --portable 추가

위의 모든 정보는 저장소의 README에서 직접 가져왔습니다. 외부 가정은 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트