VideoLingo
요약
VideoLingo는 Netflix 수준의 고품질 자막 생성과 더빙을 지원하는 올인원 비디오 현지화 도구입니다. WhisperX를 통한 정밀한 자막 인식과 AI 기반의 3단계 번역 프로세스를 통해 자연스러운 단일 행 자막과 더빙을 제공합니다.
핵심 포인트
- WhisperX를 활용한 단어 단위의 저환각 자막 인식
- Translate-Reflect-Adaptation 기반의 고품질 번역 프로세스
- GPT-SoVITS, Azure, OpenAI 등을 활용한 다국어 더빙 지원
- Streamlit 기반의 UI와 uv를 이용한 간편한 환경 설정
VideoLingo는 Netflix 수준의 자막 생성을 목표로 하는 올인원(all-in-one) 비디오 번역, 현지화(localization) 및 더빙(dubbing) 도구입니다. 이 도구는 딱딱한 기계 번역과 다중 행 자막을 제거하고 고품질 더빙을 추가하여, 언어 장벽을 넘어 글로벌 지식 공유를 가능하게 합니다.
주요 기능:
🎥 yt-dlp를 통한 YouTube 비디오 다운로드
🎙️ WhisperX를 이용한 단어 단위(Word-level) 및 저환각(Low-illusion) 자막 인식 -
📝 NLP 및 AI 기반 자막 분할(segmentation) -
📚 일관된 번역을 위한 사용자 정의(Custom) + AI 생성 용어집 -
🔄 영화 같은 품질을 위한 3단계 Translate-Reflect-Adaptation 과정 -
✅ Netflix 표준의 단일 행(Single-line) 자막만 제공 -
🗣️ GPT-SoVITS, Azure, OpenAI 등을 이용한 더빙 -
🚀 Streamlit을 통한 원클릭 실행 및 처리
🌍 Streamlit UI에서의 다국어 지원
📝 진행 상황 재개를 지원하는 상세 로깅(logging)
🔍 API 자동 가져오기가 포함된 모델 검색창 — 제공업체의 전체 모델 목록에서 검색 및 필터링 가능
⏯️ 작업 제어 — 모든 단계에서 처리 일시 중지, 재개 또는 중지
유사한 프로젝트와의 차이점: 단일 행 자막만 제공, 우수한 번역 품질, 원활한 더빙 경험
trans.mp4 |
dubbing.mp4 |
sovits.mp4 |
입력 언어 지원(추가 예정):
🇺🇸 영어 🤩 | 🇷🇺 러시아어 😊 | 🇫🇷 프랑스어 🤩 | 🇩🇪 독일어 🤩 | 🇮🇹 이탈리아어 🤩 | 🇪🇸 스페인어 🤩 | 🇯🇵 일본어 😐 | 🇨🇳 중국어* 😊
*중국어는 현재 별도의 문장 부호가 강화된 Whisper 모델을 사용합니다...
번역은 모든 언어를 지원하지만, 더빙 언어는 선택한 TTS 방식에 따라 달라집니다.
문제가 발생했나요? 도움을 받으려면 여기에서 저희의 무료 온라인 AI 에이전트와 대화하세요.
참고: NVIDIA GPU를 사용하는 Windows 사용자는 설치 전에 다음 단계를 따르세요:
-
CUDA Toolkit 12.6 설치
-
CUDNN 9.3.0 설치
-
다음 경로를 시스템 PATH에 추가:
C:\Program Files\NVIDIA\CUDNN\v9.3\bin\12.6 -
컴퓨터 재부팅
참고: FFmpeg가 필요합니다. 패키지 관리자를 통해 설치해 주세요:
- Windows:
choco install ffmpeg(Chocolatey를 통해) - macOS:
brew install ffmpeg
(via Homebrew)
- Linux:
sudo apt install ffmpeg
(Debian/Ubuntu)
uv가 Python 3.10을 자동으로 다운로드하고 격리된 환경 (isolated environment)을 생성합니다 — Python이나 Anaconda를 직접 설치할 필요가 없습니다.
- 저장소 (repository) 클론
git clone https://github.com/Huanshere/VideoLingo.git
cd VideoLingo
- 원클릭 설정 (uv + Python 3.10 + 모든 의존성 설치)
python setup_env.py
- 애플리케이션 실행
.venv\Scripts\streamlit run st.py # Windows
.venv/bin/streamlit run st.py # macOS / Linux
또는 Windows에서 OneKeyStart.bat를 더블 클릭하세요.
⚠️ 권장하지 않음. 이 방법은 향후 유지보수되지 않습니다. 위에서 설명한 uv (옵션 A)를 사용해 주세요.
Conda 설치 단계 펼치기
- 저장소 (repository) 클론
git clone https://github.com/Huanshere/VideoLingo.git
cd VideoLingo
- 의존성 설치 (
python=3.10필요)
conda create -n videolingo python=3.10.0 -y
conda activate videolingo
python install.py
- 애플리케이션 실행
streamlit run st.py
또는 Docker를 사용할 수 있습니다 (CUDA 12.4 및 NVIDIA Driver 버전 >550 필요), Docker 문서를 참조하세요:
docker build -t videolingo .
docker run -d -p 8501:8501 --gpus all videolingo
VideoLingo는 OpenAI-Like API 형식을 지원하며 다양한 TTS 인터페이스를 지원합니다:
- LLM:
claude-sonnet-4.6,gpt-5.4,gemini-3.1-pro,deepseek-v3,grok-4.1, ... (품질순 정렬; 저비용 옵션으로는gemini-3-flash또는gpt-5.4-mini를 시도해 보세요) - WhisperX: whisperX (large-v3)를 로컬에서 실행하거나 302.ai API를 사용하세요
- TTS:
azure-tts,openai-tts,siliconflow-fishtts,fish-tts,GPT-SoVITS,edge-tts,*custom-tts(custom_tts.py에서 자신만의 TTS를 수정할 수 있습니다!)
참고: VideoLingo는 302.ai와 연동됩니다 — 하나의 API 키로 모든 서비스(LLM, WhisperX, TTS)를 이용할 수 있습니다. 또는 Ollama와 Edge-TTS를 사용하여 API 없이 무료로 로컬에서 실행하세요!
상세한 설치, API 설정 및 배치 모드(batch mode) 안내는 문서를 참조해 주세요: English | 中文
-
WhisperX의 전사(transcription) 성능은 정렬(alignment)을 위해 wav2vec 모델을 사용하기 때문에 비디오의 배경 소음에 영향을 받을 수 있습니다. 배경 음악이 큰 비디오의 경우, Voice Separation Enhancement(음성 분리 강화)를 활성화해 주세요. 또한, wav2vec이 숫자 문자(예: "1")를 발음 형태("one")로 매핑하지 못하기 때문에, 숫자나 특수 문자로 끝나는 자막은 조기에 잘릴 수 있습니다.
응답에 대한 엄격한 JSON 형식 요구 사항 때문에, 성능이 낮은 모델을 사용하면 프로세스 도중 오류가 발생할 수 있습니다 (LLM에게 프롬프트를 잘 전달하려고 최선을 다했습니다 😊). 만약 이 오류가 발생하면, output 폴더를 삭제하고 다른 LLM으로 다시 시도해 주세요. 그렇지 않으면 반복 실행 시 이전의 잘못된 응답을 다시 읽어 동일한 오류가 발생하게 됩니다.
더빙 기능은 언어 간의 말하기 속도 및 억양 차이와 번역 단계의 영향으로 인해 100% 완벽하지 않을 수 있습니다. 하지만 이 프로젝트는 가능한 최상의 더빙 결과를 보장하기 위해 말하기 속도(speech rates)에 대한 광범위한 엔지니어링 처리를 구현했습니다.
다국어 비디오 전사 인식은 주 언어만 유지됩니다. 이는 WhisperX가 단어 수준의 자막을 강제로 정렬할 때 단일 언어를 위한 특화된 모델을 사용하며, 인식되지 않는 언어는 삭제하기 때문입니다.
현재로서는 여러 캐릭터를 개별적으로 더빙할 수 없습니다. WhisperX의 화자 구분(speaker distinction) 능력이 충분히 신뢰할 수 있는 수준이 아니기 때문입니다.
이 프로젝트는 Apache 2.0 라이선스 하에 라이선스가 부여됩니다. 기여해 주신 다음 오픈 소스 프로젝트들에 특별히 감사드립니다:
whisperX, yt-dlp, json_repair, BELLE
- GitHub에서 Issue 또는 Pull Request를 제출해 주세요
- Twitter DM: @Huanshere
- 이메일: team@videolingo.io
VideoLingo가 도움이 되었다면, ⭐️를 눌러주세요!
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기