본문 바로가기

EP 빌드로그

EP.27 S5 립싱크 실수: 클론 음성 단순 remux의 함정

들어가며 · 왜 입모양이 어긋났나

AI 영상 파이프라인에서 음성 교체는 흔한 작업이다. 그런데 이번에는 단순한 판단 실수 하나로 결과물을 통째로 폐기해야 했다. S5로 만든 네이티브 오디오 영상에 클론 음성만 remux(오디오 트랙 갈아끼우기)로 붙였더니, 영상 속 인물의 입모양과 소리가 어긋난 것이다.

이 글은 그 실수를 그대로 기록하고, 왜 단순 remux가 립싱크를 깨뜨리는지, 그리고 앞으로 어떻게 크레딧을 지키며 같은 실수를 피할지를 정리한 짧은 빌드로그다.


무엇을 확인했나 · 어긋난 입모양

작업 흐름은 이랬다. 이미 네이티브 오디오가 들어간 영상이 있었고, 여기에 별도로 생성한 클론 음성 파일만 얹어 오디오 트랙을 교체(remux)했다. 재생해보니 소리는 나오는데 영상 속 입 움직임과 음성 타이밍이 맞지 않았다.
단순 remux는 영상의 프레임은 건드리지 않고 오디오 트랙만 바꾼다. 즉 원본 영상의 입모양은 네이티브 음성에 맞춰 이미 고정되어 있는데, 그 위에 타이밍이 다른 클론 음성을 얹었으니 어긋날 수밖에 없었다.


원인 · 타이밍 불일치와 보이스 ID 혼동

원인은 두 가지가 겹쳤다.

  • 타이밍 불일치: 네이티브 음성과 별도로 생성한 클론 음성은 타이밍이 달랐다. 두 음성의 타이밍이 어긋난 채로 트랙을 교체했으니 립싱크가 맞지 않았다.
  • 보이스 ID 혼동: 구 보이스 ID(EklzN8aMtIBUPcmGzzXO)와 최신 확정 보이스(r8W6CoYFf32ueaaK1VEv)를 헷갈렸다. 확정된 목소리가 아닌 이전 것으로 작업이 진행됐다.

핵심은 영상은 이미 특정 음성에 맞춰 렌더링됐다는 점이다. 입모양을 유지한 채 목소리만 바꾸려면 프레임과 정합되는 방식으로 음성을 준비해야 한다. 타이밍이 다른 별도 음성을 단순 트랙 교체로 얹어서는 안 됐다.


어떻게 고쳤나 · 표준 공정 정리

잘못 만든 단순 교체본은 미련 없이 폐기했다. 그리고 이후로는 아래 순서를 표준 공정으로 고정했다.

  1. Seedance 영상 생성 — 영상을 먼저 만든다.
  2. 네이티브 오디오 추출 — 그 영상에 실린 원본 음성을 뽑아낸다. 이 음성이 입모양의 기준이 된다.
  3. 현재 확정 보이스로 ElevenLabs STS — 추출한 네이티브 음성을 입력으로, 확정 보이스(r8W6CoYFf32ueaaK1VEv)를 사용해 STS(Speech-to-Speech)로 변환한다.
  4. 타이밍 검수 후 remux — 변환된 음성을 영상에 얹기 전에 타이밍을 눈으로 확인하고, 문제없을 때만 remux한다.

이 순서의 요점은, remux는 맨 마지막에, 타이밍 검수를 거친 뒤에만 한다는 것이다. 그리고 별도 클론 음성을 새로 생성해 얹는 게 아니라, 영상에서 뽑은 네이티브 음성을 STS 입력으로 삼아 변환한 뒤, 정합 여부를 검수 단계에서 확인하는 흐름으로 정했다.


전후 비교 · 단순 remux vs STS 공정

음성 소스별도로 생성한 클론 음성네이티브 음성을 STS로 변환
타이밍영상과 불일치변환 후 검수로 확인
보이스구 ID 혼동 우려확정 보이스로 고정
remux 시점단순 교체본으로 바로 생성타이밍 검수 후에만
결과입모양 어긋남검수 후 remux를 원칙으로 함

이 표는 결과를 비교한 게 아니라, 재발을 막기 위해 공정을 어떻게 바꿔 고정했는지를 정리한 것이다. 같은 remux라도 앞 단계 준비 방식이 다르기 때문에 순서와 검수 조건을 규칙으로 못 박았다.


남은 과제 · 크레딧을 먼저 지킨다

이번 실수에서 가장 크게 배운 건 비용 감각이다. 1,000cr로 2편을 만들 계획이었는데, 유료 영상을 재생성해야 하는 상황까지 갔다면 한 번의 잘못된 재생성이 한 편의 제작비를 잠식할 수 있었다.
그래서 규칙을 하나 세웠다. 유료 영상 재생성 전에 음성·립싱크 경로를 먼저 검증한다. 비용이 큰 재생성을 돌리기 전에 파이프라인이 맞는지부터 확인하는 것이다.

반응형