중국어 비디오를 영어 더빙으로 변환
중국어 립싱크 비디오를 영어 더빙 완성본으로 변환합니다: 원래 화자의 음색을 복제하고, 해외 구매자를 대상으로 대본을 재작성하며, 단일 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에 있습니다. 가장 쉽게 실수하고 비용이 많이 드는 몇 가지:
- 대상 전환이 필요, 단순 번역 아님 — 많은 원본 자료가 국내 수출업자를 대상으로 함("해외 무역하는 친구들"), 영어는 해외 구매자에게 직접 말해야 함. 규칙은
translate.py의SYSTEM_FILL에 있습니다. - 번역 단계에서 숫자를 영어 단어로 철자 —
20,000은 1단어로 계산되지만 2단어로 읽혀 길이 계산이 모두 어긋남; 아라비아 숫자를 그대로 두면 한 자리씩 읽힐 수 있음. - atempo 비활성화 — 공간을 채우기 위해 더 빠르게 말하지 말고, 대본을 짧게 줄여야 함.
- 문장 경계 연결 시 반드시 페이드 인/아웃 추가 — 절단점이 0이 아닌 파형에 있으면 딱딱거리는 소리가 발생함.
- 오디오 결함 검증 시 전체 파일 최대 변이만 보지 말 것 — 원본 파일의 더 큰 변이에 가려질 수 있으므로 변이 분포를 확인해야 함.
- 중단점 재개 시 산출물이 입력보다 최신인지 반드시 확인 — 그렇지 않으면 묵시적으로 오래된 대본 더빙이 전달됨.
자세한 메커니즘과 시행착오 과정은 docs/USAGE.md(원래 《사용 설명》)와 docs/REPORT.md(구현 보고서)를 참조하세요.
알려진 제한 사항
- 중국어 정보 밀도가 영어보다 높아, 일부 자료에서는 판매 포인트를 유지하면서 문장을 삭제해야 함 (도구가 자동으로 수행하며, 보고서에 기록됨).
- 채움률은 일반적으로 93–100%, 끝부분은 배경 음악으로 보완.
Eva외에 제대로 발음되지 않는 고유명사는synth_single.py의TTS_RESPELL사전에 추가 (TTS 입력에만 영향, 자막 변경 없음).
권장 워크플로우
새 자료는 먼저 전체 프로세스를 한 번 실행하여 클라이언트 확인(음색/속도/음악/일시 정지)을 받은 후, 확인 후 일괄 처리합니다. 일괄 처리 시 각 항목의 비용이 명시됩니다.