결론부터: AI 캐릭터 목소리의 일관성은 얼굴과 같은 방식으로 지킨다 - 매번 목소리를 다시 묘사하는 게 아니라 한 번 캐스팅하고 설정을 잠그는 것. 구체적으로: 캐릭터마다 TTS 프리셋(또는 클론 보이스) 하나 + 고정 시드 하나를 배정하고, 그 쌍을 캐스팅 테이블에 저장한 뒤, 그 캐릭터의 모든 대사를 같은 쌍에서 생성한다. 스타일과 감정은 라인별 지시문으로 넣고, 정체성은 잠긴 보이스+시드에 둔다. 매번 말로 묘사한 목소리는 매번 말로 묘사한 얼굴처럼 세션마다 흘러내린다.
보이스 캐스팅 워크플로우
- 캐스팅 전에 오디션. 같은 테스트 대사 두 줄(차분한 것 하나, 감정적인 것 하나)을 후보 프리셋 전부로 생성해 비교한다. 같은 씬을 공유하는 캐릭터끼리의 대비도 본다 - 비슷한 남성 보이스 둘이 대화하면 혼잣말로 들린다.
- 보이스+시드를 캐스팅 테이블에 잠근다. 우리 것은 말 그대로 JSON 맵이다: 캐릭터, 프리셋, 시드, 기본 연기 노트. 모든 더빙 런이 이걸 읽고, 정체성에 관한 결정은 생성 시점에 하나도 내리지 않는다.
- 새 목소리가 아니라 지시문으로 연출한다. 라인별 연기("숨죽여 속삭이듯", "차갑게 위협적으로")는 지시문 필드에 넣는다. 목소리는 그대로, 연기만 바뀐다. 이 분리가 10부작을 한 명의 캐스트처럼 들리게 만든다.
- 재개 가능한 매니페스트로 배치를 돈다. 시리즈 더빙은 수백 라인이고 엔진은 몇 개씩 실패한다. 완료 라인을 기록하는 매니페스트 기준으로 생성해 재시도가 재생성이 되지 않게 하고, 엔진 업데이트 후에는 재오디션한다 - 프리셋은 움직인다.
배치와 믹스
더빙 품질은 TTS보다 믹스에서 더 자주 죽는다:
- 대사를 컷 경계에 놓는다. 각 라인을 해당 컷 시작 + 소폭 오프셋에 맞추고, 겹치면 순차로 민다 - 컷을 걸친 대사는 어긋난 후시녹음처럼 들린다.
- 앰비언스를 사이드체인 덕킹한다. 대사를 키로 앰비언트/음악 베드를 누른다. 우리 작동값: 낮은 스레숄드, 비율 8:1 안팎 - 실측 효과는 발화 구간에서만 대사가 베드보다 7~23dB 위에 앉는 것.
- 자막은 번인이 아니라 오버레이로. 더빙과 자막은 독립 레이어여야 언어를 나중에 추가해도 영상을 다시 렌더하지 않는다.
우리가 밟은 함정들
- 어떤 엔진은 형식이 틀린 감정 파라미터를 소리 내어 읽는다 - 포맷 버그가 화면에서 "신나는 톤"이라고 말하는 캐릭터가 된다. 지시문 문자열을 검증하라.
- 아주 짧은 명령은 일부 엔진에서 단어를 지어낸다 - 짧은 라인은 문장부호로 패딩하거나 지시문을 늘려 재생성.
- 상업 더빙 라이선스를 시리즈를 태우기 전에 확인하라. 우리는 여러 엔진을 오디션했고 정확히 이 이유로 하나를 제작 중에 은퇴시켰다 - 시즌 중 보이스 교체는 주연 재캐스팅의 오디오 버전이다.
카탈로그의 40회차 이상 더빙 에피소드 전부가 이 체인으로 돌았고, 같은 캐스팅 테이블 사상이 캐릭터 이미지 일관성도 끌고 간다 - 독트린 하나, 매체 둘.
검증하지 못한 것
청취자 대상 보이스 정체성 인지 실험(시드 수준 드리프트를 얼굴 드리프트만큼 알아채는가)은 하지 않았다 - 우리 기준은 매일 편집하는 우리가 테이크를 구분 못 하게 됐다는 것이다. 정식 ABX 테스트는 할 일 목록에 있다.