Communitygithub.com

laoqinmml/video-dubbing

중국어 토킹헤드 숏 비디오를 원래 화자의 클론 보이스로 영어 더빙된 완성 MP4로 일괄 변환합니다: Volcengine 단어 수준 ASR 타임라인, 해외 구매자 대상 DeepSeek 재작성, MiniMax 음성 복제, 문장 경계 페이드, 자연스러운 속도와 BGM 음량 정규화 믹싱.

video-dubbing란 무엇인가요?

이 스킬은 중국어 립싱크(토킹헤드) 숏 비디오를 해외 시장을 겨냥한 영어 더빙 완성본으로 자동 변환해주는 AI 에이전트 도구입니다. 원래 화자의 음색을 MiniMax API로 복제하고, DeepSeek를 이용해 해외 구매자에게 적합한 영어 대본으로 재작성한 후, Volcengine의 단어 수준 ASR 타임라인에 맞춰 자연스러운 문장 경계 페이드와 배경 음악 음량 정규화를 적용하여 단일 MP4 파일로 출력합니다. Claude Code, Cursor, Codex 등의 터미널 기반 에이전트에서 실행 가능하며, 6단계 파이프라인(음성 추출, ASR, 번역, 피팅, 배치, 믹싱)으로 구성되어 실패 시 중단된 단계부터 재개할 수 있습니다. 데모 및 기술 문서가 포함된 GitHub 저장소를 기반으로 하며, 모든 중국어 음성 콘텐츠를 전문적인 영어 더빙 영상으로 전환해야 하는 콘텐츠 제작자나 마케터에게 특히 유용합니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add laoqinmml/video-dubbing

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

중국어 비디오를 영어 더빙으로 변환

중국어 립싱크 비디오를 영어 더빙 완성본으로 변환합니다: 원래 화자의 음색을 복제하고, 해외 구매자를 대상으로 대본을 재작성하며, 단일 MP4를 출력합니다.

한 줄 명령

cd "<프로젝트 루트>"
$env:MINIMAX_API_KEY = "<MiniMax 중국 사이트 Key>"
$env:VOLC_API_KEY    = "<Volcano API Key>"
.venv\Scripts\python.exe scripts\dub.py --src "<비디오 경로>" --slug "<짧은 이름>"

산출물:

위치내용
out/<짧은 이름>_EN_dubbed.mp4완성본 (유일한 전달물)
out/<짧은 이름>_EN.srt / _ZH.srt중영 자막
work/batch/<짧은 이름>/REPORT.md소요 시간, 합성 라운드, 비용

자주 사용하는 파라미터: --until translate (대본만 출력, 합성 안 함), --from fit (특정 단계부터 시작), --force (저장된 상태 무시).

여섯 단계

1 prep       오디오 추출 + demucs 보컬 분리 + 비디오 길이 기록
2 asr        Volcabulary 단어 수준 인식 → 중국어 문장 타임라인
3 translate  DeepSeek → 영어 대본 (대상 전환 + 단어 예산 + 숫자 철자)
4 fit        N회 합성 실행 → 각각 실제 측정 → "최대 채울 수 있는 비율" 점수로 최적 선택
5 place      타임라인에 배치 + 문장 경계에 일시 정지 삽입 + 자막 작성 (실제 단어 수준 타임스탬프)
6 mux        배경 음악 추가 + 음량 정규화 → MP4

실패 후 같은 명령을 다시 실행하면 됩니다. 완료된 단계는 자동으로 건너뜁니다("산출물이 입력보다 최신이어야 함" 검증 포함).

사전 조건

항목설명
음색work/voice.json, clone_voice.py 한 번 실행으로 생성, 모든 비디오 공유, 재복제 불필요
Volcano Key녹음 파일 인식 (volc.seedasr.auc)
MiniMax Key중국 사이트 api.minimaxi.com, 실명 인증 + 잔액 필요 (없으면 2038 / 1008 오류)
DeepSeek Key공식 api.deepseek.com
의존성demucs torch numpy requests openai soundfile
음악.wav 파일이 있는 디렉터리, config.py의 BGM_DIR 참조

모든 서비스는 직접 연결, dub.py는 프록시 변수를 강제로 제거합니다.

필독: 18가지 실전 경험

전체 목록은 docs/LESSONS.md에 있습니다. 가장 쉽게 실수하고 비용이 많이 드는 몇 가지:

  1. 대상 전환이 필요, 단순 번역 아님 — 많은 원본 자료가 국내 수출업자를 대상으로 함("해외 무역하는 친구들"), 영어는 해외 구매자에게 직접 말해야 함. 규칙은 translate.py의 SYSTEM_FILL에 있습니다.
  2. 번역 단계에서 숫자를 영어 단어로 철자 — 20,000은 1단어로 계산되지만 2단어로 읽혀 길이 계산이 모두 어긋남; 아라비아 숫자를 그대로 두면 한 자리씩 읽힐 수 있음.
  3. atempo 비활성화 — 공간을 채우기 위해 더 빠르게 말하지 말고, 대본을 짧게 줄여야 함.
  4. 문장 경계 연결 시 반드시 페이드 인/아웃 추가 — 절단점이 0이 아닌 파형에 있으면 딱딱거리는 소리가 발생함.
  5. 오디오 결함 검증 시 전체 파일 최대 변이만 보지 말 것 — 원본 파일의 더 큰 변이에 가려질 수 있으므로 변이 분포를 확인해야 함.
  6. 중단점 재개 시 산출물이 입력보다 최신인지 반드시 확인 — 그렇지 않으면 묵시적으로 오래된 대본 더빙이 전달됨.

자세한 메커니즘과 시행착오 과정은 docs/USAGE.md(원래 《사용 설명》)와 docs/REPORT.md(구현 보고서)를 참조하세요.

알려진 제한 사항

  • 중국어 정보 밀도가 영어보다 높아, 일부 자료에서는 판매 포인트를 유지하면서 문장을 삭제해야 함 (도구가 자동으로 수행하며, 보고서에 기록됨).
  • 채움률은 일반적으로 93–100%, 끝부분은 배경 음악으로 보완.
  • Eva 외에 제대로 발음되지 않는 고유명사는 synth_single.py의 TTS_RESPELL 사전에 추가 (TTS 입력에만 영향, 자막 변경 없음).

권장 워크플로우

새 자료는 먼저 전체 프로세스를 한 번 실행하여 클라이언트 확인(음색/속도/음악/일시 정지)을 받은 후, 확인 후 일괄 처리합니다. 일괄 처리 시 각 항목의 비용이 명시됩니다.

관련 스킬