본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 06. 20:07

어떤 YouTube 영상이든 힌디어 및 19개 언어로 실시간 더빙해 주는 도구를 만들었습니다

요약

YouTube 영상을 힌디어 포함 19개 언어로 실시간 더빙해 주는 'youtube-dubber' 도구를 소개합니다. Groq Whisper, LLaMA 3.1, edge-tts를 결합한 파이프라인을 통해 자연스러운 신경망 음성 더빙을 구현했습니다.

핵심 포인트

  • Groq Whisper STT와 LLaMA 3.1을 활용한 고속 번역 파이프라인
  • edge-tts를 사용한 자연스러운 대화체 신경망 음성 합성
  • 비디오 URL 모드와 Linux 전용 라이브 더빙 모드 지원
  • 오디오-비디오 동기화를 위한 mpv 및 JSON IPC 활용

자막이 이해와 같지는 않습니다.

YouTube에서 놀라운 기술 튜토리얼들을 계속 발견하곤 했지만, 제가 구사하지 못하는 언어로 되어 있었습니다. 자동 자막(Auto-subtitles)만으로는 충분하지 않았습니다. 그래서 저는 youtube-dubber를 만들었습니다.

YouTube URL을 붙여넣고 언어를 선택하면, 자연스러운 신경망 음성(neural voice)을 사용하여 실시간으로 영상을 더빙합니다. 로봇 같은 단조로운 목소리는 없습니다. 힌디어의 경우 Hinglish 코드 스위칭(code-switching)을 활용하고, 그 외의 언어는 대화체 톤을 사용하여 실제 사람이 개념을 설명해 주는 것처럼 들립니다.

작동 원리

[

Pipeline
](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FAshut90%2Fyoutube-dubber%2Fraw%2Fmain%2Fassets%2Fpipeline.svg

이 애플리케이션은 두 가지 별도의 파이프라인(pipeline)을 사용하여 오디오 처리를 수행합니다:

1. 비디오 URL 모드

  • 추출 (Extraction): YouTube 영상에서 자막을 가져옵니다 (자막을 사용할 수 없는 경우 Groq Whisper STT로 대체됩니다).
  • 번역 (Translation): 초고속 처리를 위해 Groq에 호스팅된 LLaMA 3.1-8b로 텍스트를 전달합니다.
  • 합성 (Synthesis): edge-tts 신경망 음성을 사용하여 음성 텍스트 음성 변환(TTS)을 생성합니다.
  • 동기화 (Sync): JSON IPC 소켓을 통해 mpv를 사용하여 오디오와 재생을 조정합니다.
  • 최적화 (Optimization): 세그먼트 수준의 디스크 캐싱(disk caching)을 활용합니다. 첫 실행은 느리지만, 재실행할 때마다 즉각적으로 작동합니다.

2. 라이브 더빙 모드 (Linux 전용)

  • 캡처 (Capture): PulseAudio 가상 싱크(virtual sink)를 통해 라이브 시스템 오디오를 잡습니다.
  • 5-에이전트 파이프라인 (5-Agent Pipeline): 간소화된 순서: 캡처 → Groq Whisper STT → LLaMA 번역 → edge-tts → 스피커 출력.
  • 지연 시간 (Latency): 약 3~5초의 지연 시간 하한선을 유지합니다. 이는 소프트웨어 버그가 아니라 '듣고 나서 번역하는(listen-then-translate)' 아키텍처의 고유한 특성입니다.

앱의 모습

App UI

비디오는 별도의 네이티브 mpv 창 내에서 재생됩니다. Electron 창은 자막 추적, 볼륨 조절 및 진행 상황 관리를 위한 제어 패널 역할만 수행합니다. 두 구성 요소는 mpv의 IPC 소켓을 통해 완전히 동기화된 상태를 유지합니다.

차별점

힌글리시 (Hinglish) 코드 스위칭 (Code-Switching)

번역은 격식을 차린 사전처럼 읽혀서는 안 됩니다. 힌디어와 인도 언어들은 일상 대화에 영어 기술 용어를 자연스럽게 혼합하여 사용합니다. _"yeh function ek callback leta hai"_와 같은 문구는 자연스럽게 들리는 반면, 순수 힌디어로만 번역하면 부자연스럽고 혼란스럽게 느껴집니다.

LLaMA 모델은 이러한 하이브리드 스타일을 사용하도록 명시적으로 프롬프트(Prompt)가 작성되었습니다. 또한, 합성(Synthesis) 직전에 격식체에서 구어체로의 치환을 처리하기 위해 속어 교체 맵(Slang replacement map)이 출력물을 처리합니다.

아키텍처를 형성한 Linux 드라이버 버그

왜 표준 내장 HTML5 비디오 플레이어 대신 mpv를 사용하는 걸까요?

초기에 Electron의 <video> 요소는 Optimus (Intel + NVIDIA) 하이브리드 그래픽을 사용하는 Linux 머신에서 지속적인 SIGSEGV 충돌을 일으켰습니다. GPU 드라이버는 하드웨어 비디오 디코딩(Decoding)이나 AudioContext API에 접근하는 즉시 Chromium의 렌더러(Renderer)를 종료해 버립니다.

해결책: 모든 무거운 미디어 작업을 완전히 mpv로 넘기고, JSON IPC 소켓을 통해 이를 제어합니다. Electron 창은 비디오 GPU 레지스터에 절대 접근하지 않는 순수한 HTML/CSS UI 레이어로 남게 됩니다. 임시방편으로 시작된 이 방법이 앱의 핵심 아키텍처가 되었습니다.

네이티브 데스크톱 앱 + Python 라이브러리

로컬 앱으로서 완벽하게 작동할 뿐만 아니라, 백엔드 코드에 직접 통합하거나 CLI를 사용할 수도 있습니다.

pip install youtube-dubber
export GROQ_API_KEY=gsk_xxxx
from youtube_dubber import dub

manifest = dub(
...

또는 터미널에서 직접 실행할 수 있습니다:

youtube-dubber --url https://youtu.be/VIDEO_ID --lang hindi --gender female --out ./output_audio

지원 언어

이 시스템은 힌디어, 타밀어, 텔루구어, 벵골어, 마라티어, 구자라트어, 칸나다어, 말라얄람어, 펀자브어, 우르두어, 스페인어, 프랑스어, 독일어, 일본어, 중국어, 한국어, 아랍어, 포르투갈어, 러시아어, 이탈리아어 등 총 20개의 언어를 지원합니다.

참고: 인도 지역 언어는 기술 용어를 영어로 유지하기 위해 기본적으로 힌글리시 (Hinglish)/코드 스위칭 (code-switched) 스타일을 사용합니다. 다른 옵션들은 전체 번역을 수행합니다.

기술 스택 (The Tech Stack)

계층 (Layer)도구 (Tool)이 선택을 한 이유?
전사 (Transcription)Groq Whisper번개처럼 빠른 음성-텍스트 (voice-to-text) 응답 속도.
...

솔직한 한계점 (Honest Limitations)

  • 실시간 더빙 (Live Dub)은 Linux 전용: 현재로서는 PulseAudio 종속성에 엄격하게 제한됩니다.
  • 초기 패스는 속도 제한 (Throttle-Gated) 적용: 긴 영상을 처음 처리할 때 병렬 배치 (parallel batching) 과정에서 Groq 무료 티어의 속도 제한 (rate limits)에 걸릴 수 있습니다.
  • 언어별 편차: 힌디어는 집중적으로 미세 조정 (fine-tuned)되어 가장 자연스럽게 들리지만, 나머지 19개 언어의 품질은 다를 수 있습니다.
  • 연결성 의존: edge-tts는 오디오 합성을 위해 Microsoft 서버와의 실시간 연결에 의존합니다.
  • 지연 시간 하한선 (Lag Floor): 예측 AI 텍스트 모델링 (predictive AI text modeling)을 구현하지 않는 한, 실시간 더빙의 3~5초 지연은 우회할 수 없습니다.
  • 빠른 탐색 불가: 첫 번째 패스 중에는 앞으로 건너뛸 수 없습니다. 더빙 엔진은 0:00부터 순차적으로 청크 (chunks)를 생성합니다.

나를 놀라게 한 부분

3일 만에 193개의 GitHub 클론 (clones).

공개 게시물도 없었습니다. 마케팅도 없었습니다. 프로덕트 헌팅 (product hunting)도 없었습니다. 순수하게 PyPI에 올라온 패키지 덕분에 추진력을 얻었습니다. 문제는 실재하며, 개발자들은 적극적으로 해결책을 찾고 있습니다.

직접 시도해 보세요

pip install youtube-dubber

Star를 누르고, fork하고, 마음껏 테스트해 보세요. GPL-3.0.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0