ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AI 더빙 내 목소리로 8분 뽑으면서 날린 21초
    외주개발 2026. 10. 27. 08:53
    반응형

    AI 더빙으로 내 목소리를 복제해서 8분 40초짜리 내레이션을 만들었다. 줄로는 86줄, 음성 길이 합계는 6.8분이다.

    처음엔 매 줄 앞에 안 시킨 말이 붙어서 나왔다. 그것만 21초였다. 참조 음성을 잘못 잘라서였고, 자르는 자리만 바꾸니 사라졌다.

    참조는 6.8초짜리 하나면 된다. 그 6.8초를 어디서 자르느냐가 전부다.

    참조 음성은 문장 경계에서 자르면 안 된다

    처음에 이렇게 잘랐다. 녹음에서 문장 하나가 깔끔하게 끝나는 지점까지.

    그랬더니 생성할 때마다 앞머리에 "…거래한 날부터 전부 모아봤습니다" 가 붙었다. 대본에 없는 문장이다.

    처음 참조와 고친 참조의 파형 비교. 위쪽은 앞이 비어 있고 아래쪽은 소리가 꽉 차 있다

    파형을 보니 답이 있었다. 앞 4초가 통째로 무음이었고, 둘째 문장이 0.34초만 걸쳐 있었다. 모델은 그 잘린 문장을 완성하려고 했던 거다.

    그래서 무음 경계에서 다시 잘랐다. 소리가 비는 자리에서 시작해서 소리가 비는 자리에서 끝낸다.

    ffmpeg -ss 9.05 -t 6.80 -i ref_full.wav ref_clean.wav

    참조 음성 길이와 설정값을 확인한 터미널 화면

    6.8초. 이것만 바꾸고 다시 돌리니 앞머리가 안 붙었다.

    아래에 이런 걸 적었다

    · 참조 길이는 몇 초가 적당한가

    · 86줄 만드는 데 걸린 시간

    · 잘 나왔는지 귀로 확인하지 않는 법

    · 분당 몇 음절인지 재는 이유

    필요한 데로 내려가면 됨

    참조는 3초에서 10초 사이

    길면 좋을 줄 알고 30초짜리도 넣어봤다. 더 낫지 않았다.

    짧으면 특징을 못 잡고, 길면 그 안의 억양 변화까지 따라 한다. 한 가지 톤으로 쭉 말한 구간 6~8초가 제일 안정적이었다.

    조건은 세 가지였다.

    조건 왜
    앞뒤가 무음에서 시작하고 끝난다 잘린 문장을 완성하려 든다
    중간에 숨소리나 끊김이 없다 그 끊김을 버릇으로 배운다
    한 가지 톤으로 말한 구간 억양이 왔다갔다하면 결과도 흔들린다

    86줄 만드는 데 78분

    한 줄씩 따로 만든다. 한 줄에 35초에서 80초쯤 걸린다.

    대본의 한 줄을 음성으로 생성하고 길이를 찍어주는 터미널 화면

    86줄이면 78분이다. 그동안은 다른 일을 하면 된다.

    줄 번호대로 저장된 음성 파일 목록

    줄마다 파일로 떨어지는 게 중요하다. 통으로 한 번에 만들면 한 문장만 고쳐도 전부 다시 만들어야 한다. 나는 중간에 일곱 줄을 다시 녹음했는데, 따로 나뉘어 있어서 그 일곱 개만 다시 돌렸다.

    귀로 확인하지 않는다

    8분짜리를 처음부터 끝까지 듣는 건 못 할 일이다. 들어도 "좀 이상한데" 까지만 알지 어디가 틀렸는지는 모른다.

    그래서 거꾸로 했다. 만든 음성을 다시 글자로 바꿔서 원래 대본이랑 맞춰봤다.

    생성된 음성을 다시 글자로 바꾼 결과와 원래 대본 문장을 나란히 띄운 화면

    앞머리가 붙었을 때 이걸 돌렸으면 바로 보였을 거다. 원래 문장에 없는 말이 앞에 찍히니까.

    영상으로 합친 다음에도 한 번 더 한다. 91.8초 지점을 잘라내서 글자로 바꾸고, 그 시각에 떠 있어야 할 자막이랑 같은지 본다. 같으면 소리랑 화면이 맞은 거다.

    분당 음절을 재둔다

    이게 생각보다 많이 쓰인다.

    음성 길이 합계와 한글 음절 수로 분당 음절을 계산한 화면

    이번 대본은 한글 2,501음절이 6.8분이었다. 분당 368음절이다.

    알아두면 대본 단계에서 길이를 맞출 수 있다. 10분짜리를 만들고 싶으면 한글 3,700자쯤 쓰면 된다는 뜻이다. 다 만들어놓고 길이가 안 맞아서 통째로 줄이는 일이 없어진다.

    목소리마다 다르고 속도 설정마다 다르니 자기 걸로 한 번 재두는 게 낫다.

    합칠 때는 샘플 단위로

    줄마다 파일이 따로 있으니 합쳐야 한다. 여기서 반올림이 쌓이면 뒤로 갈수록 자막이 밀린다.

    빈 소리 배열에 줄마다 계산된 위치로 음성을 써 넣는 코드

    빈 소리 배열을 하나 만들어놓고 계산된 위치에 직접 써 넣었다. 24,000분의 1초 단위라 어긋날 수가 없다. 86줄을 지연시켜 섞는 방법보다 빠르기도 하다.

    짚어둘 것

    목소리 복제는 본인 목소리로만 한다. 남의 목소리를 복제해서 쓰는 건 다른 문제가 된다.

    더빙이 자연스럽다고 영상이 좋아지지는 않는다. 내 경우엔 목소리를 고치고 나서도 조회수는 안 움직였다. 소리는 바닥이지 천장이 아니다.

    영상을 어떻게 만들었는지는 이 글에 적었고, 대본을 뽑은 과정은 여기에 있다.

    6.8초를 어디서 자르냐가 8분을 정했다.

    반응형
소개 · 연락처 · 개인정보처리방침
운영 프리시 · 상호 앤디 · 대표 손영은 · 사업자등록번호 708-38-01407
경기도 안산시 상록구 해안로 705, 3동 1층 107호 · admin@freesi.net
Designed by Tistory.