Peterslab
Full-stack Dev Building http://twitterwebviewer.com & http://ai-manga-translator.com & https://ai-ad-generator.com & https://ai-video-translator.com
AI 자막 싱크, 혼자 만들면서 배운 5가지 AI 영상 번역기(https://ai-video-translator.com)를 혼자 만들고 있습니다. 영상을 번역해서 자막을 붙이고, 화자마다 본인 목소리로 더빙해 주는 서비스예요. 기능 목록만 보면 "음성 인식하고, 번역하고, 읽어주면 끝" 같은데, 실제로 제일 오래 붙잡고 있었던 건 의외로 자막 싱크였습니다. 0.5초만 어긋나도 사용자는 바로 "이거 별로네" 하고 느끼더라고요. 그동안 삽질하면서 배운 걸 정리해 봅니다. 1. 음성 인식 타임스탬프는 그대로 쓰면 안 된다 Whisper 같은 모델은 텍스트와 함께 타임스탬프를 주지만, 기본값은 구간 단위라 꽤 거칩니다. 한 구간이 5~10초씩 묶여 나오기도 해서 그대로 자막으로 쓰면 화면에 글자가 꽉 차요. 단어 단위로 다시 정렬하고, 자연스러운 지점에서 쪼개는 단계가 꼭 필요했습니다. 2. 무음과 배경음악이 싱크를 망친다 말하는 구간은 괜찮은데, 배경음악만 나오는 구간에서 없는 말을 만들어내거나 자막이 늘어지는 문제가 계속 나왔어요. 결국 목소리와 배경음을 먼저 분리하고, 실제로 말하는 구간만 따로 잡는 쪽으로 바꾸고 나서야 안정됐습니다. 덤으로 더빙할 때 원본 배경음악을 그대로 살릴 수 있게 됐고요. 3. 번역 자막은 "블록 단위"로 번역하면 망한다 한 문장이 자막 두세 개에 걸쳐 있는 경우가 많은데, 블록마다 따로 번역하면 어순이 꼬여서 이상한 문장이 됩니다. 문장 전체를 보고 번역한 다음, 원래 타이밍에 맞춰 다시 나눠 넣는 방식으로 바꿨어요. 4. 더빙은 자막보다 훨씬 빡빡하다 자막은 조금 길어도 어떻게든 읽히지만, 더빙은 실제로 말해야 하니까 원래 대사 시간 안에 들어가야 합니다. 3초짜리 대사가 번역하면 5초 분량이 되는 일이 흔해요. 말 속도를 올리는 건 금방 어색해져서 한계가 있고, 결국 번역문 자체를 짧게 다듬는 게 제일 자연스러웠습니다. 5. 완전 자동보다 "사람이 한 번 보는 구조"가 낫다 처음엔 전부 자동으로 처리하려고 했는데, 아무리 다듬어도 애매한 줄이 남더라고요. 그래서 더빙 전에 번역문을 한 줄씩 보고, 나누거나 합치거나 고칠 수 있게 바꿨습니다. 한 줄만 고치면 그 줄만 다시 녹음되도록 해서, 수정 부담도 줄였어요. 사용자 입장에선 이게 제일 반응이 좋았던 변화였습니다. 돌아보면 자막 싱크는 "AI 모델 하나 잘 고르기" 문제가 아니라, 여러 단계를 하나씩 덜 틀리게 만드는 문제였던 것 같아요. 비슷한 걸 만들고 계신 분이 있다면, 어떤 부분이 제일 힘드셨는지 궁금합니다. 자세한 기술 흐름은 블로그에도 정리해 뒀어요. https://peters-videotranslator.tistory.com/18
AI Video Translator
강력한 멀티모달 파이프라인으로 영상 스트림을 끊김 없이 정밀하게 다국어로 로컬라이징하는 AI 비디오 번역기