동영상 자막을 자동으로 만드는 방법
- 동영상을 고르세요. 이 페이지에서 바로 재생되고, 어디에도 올라가지 않아요.
- 모델과 영상 언어를 고르세요. 한국어는 Base 이상이 좋고, Small이 더 정확해요.
- 자막 만들기를 누르세요. 처음에는 모델을 받고, 그다음부터 자막이 부분부분 만들어져 영상 위에 바로 보여요.
- 자막 스타일과 위치, 크기를 고르세요. 세로 영상은 말하는 단어가 강조되는 큰 쇼츠 팝 스타일로 시작해요.
- 영상을 틀어 놓고 틀린 곳을 고치세요. 글자와 시간을 고치고, 줄을 나누거나 합치거나 지울 수 있어요. 잘못 들린 이름은 찾아 바꾸기로 한 번에 고쳐요.
- 자막 입힌 영상 받기를 누르면 자막이 입혀진 MP4가 저장돼요. SRT나 VTT 파일로 받을 수도 있어요.
어떻게 돌아가고, 무엇이 밖으로 나가나요
자막은 OpenAI가 2022년에 오픈 소스로 공개한 음성 인식 모델 Whisper가 만들어요. Transformers.js와 ONNX Runtime Web으로 브라우저 탭 안에서 돌아가요. 영상에서 소리만 꺼내 낱말마다 시간을 붙여 받아쓰고, 그 낱말을 설정한 길이에 맞춰 자막으로 묶어요. 영상은 내 컴퓨터에 있는 파일 그대로 재생되고, 어디로도 보내지 않아요.
처음 쓸 때만 이것들을 받아요.
- 모델 파일은 Hugging Face(huggingface.co)에서 받아요. 브라우저가 보관해 두니, 저장 공간을 지우지 않는 한 다음부터는 다시 받지 않아요.
- ONNX 런타임은 jsDelivr(cdn.jsdelivr.net)에서 받아요. 모델을 돌리는 약 21MB짜리 WebAssembly 엔진이에요.
- 고치던 자막과 MP4도 이 기기에만 있어요. 새로고침해도 고친 내용이 사라지지 않도록 이 브라우저 저장 공간에 보관하고, 자막 입힌 영상도 이 기기에서 만들어요.
- 내 데이터는 나가지 않아요. 영상, 소리, 자막은 Hugging Face에도, jsDelivr에도, EasyTest에도 보내지 않아요. Google 애널리틱스는 방문 수와 자막 만들기·내려받기를 했다는 사실(모델 이름만, 글 내용은 빼고)을 세고, 도구 바깥에는 Google 애드센스 광고가 나와요.
WebGPU를 지원하는 브라우저에서는 Whisper가 그래픽 칩에서 돌아 보통 훨씬 빨라요. 아니면 어느 브라우저에서나 되는 WebAssembly(WASM)로 프로세서에서 도는데 훨씬 느려요. 어느 쪽인지는 도구에 표시돼요.
모델 고르기
| 모델 | 받는 용량(WASM) | 받는 용량(WebGPU) | 이럴 때 |
|---|---|---|---|
| Tiny | 45MB | 124MB | 빠른 초안용. 한국어 자막에는 권하지 않아요 |
| Base | 81MB | 211MB | 또렷한 목소리의 짧은 영상 |
| Small | 253MB | 591MB | 한국어 영상, 배경음악이 깔린 영상 |
| Large v3 Turbo | 1.1GB | 2.9GB | 가장 정확하게. 메모리가 넉넉한 컴퓨터에서 |
모델이 클수록 덜 틀리지만 받는 용량과 메모리가 커지고 느려져요. 속도는 무엇보다 기기에 따라 달라서, 다 만들고 나면 내 기기에서 실제로 걸린 시간을 알려 드려요.
자막 길이와 시간 맞추기
자막은 짧을수록 읽기 편해요. 넷플릭스 한국어 자막 가이드는 한 줄 16자, 최대 두 줄로 정하고, 영문자·띄어쓰기·문장부호는 반 글자로 세요. 이 도구는 모든 글자를 한 글자로 세서 기본값을 20자로 잡았어요. 넷플릭스 공통 지침은 자막 하나를 최대 7초로 두고 있어서 기본 최대 길이도 7초예요. 세로 영상은 한 줄 10자로 시작하고, 언제든 바꿀 수 있어요.
자막은 Whisper가 낱말마다 붙인 시간으로 잘라요. 첫 낱말이 시작될 때 나타나고 마지막 낱말이 끝날 때 사라져요. 문장이 끝나거나, 0.8초 넘게 말이 끊기거나, 다음 낱말을 붙이면 설정한 길이를 넘을 때 다음 자막으로 넘어가요. 낱말 시간이 조금 어긋날 수 있으니, 말이 빠르게 오가는 부분은 시작 시간을 확인하고 직접 고쳐 주세요.
자동 자막은 얼마나 정확한가요
Whisper는 웹에서 모은 68만 시간 분량의 음성으로 학습했어요. 그래도 언어마다 정확도 차이가 크고, Whisper 논문을 보면 학습 데이터가 많은 언어일수록 결과가 좋아요. 정확도를 몇 퍼센트라고 적지 않는 건 모델보다 녹음 상태가 더 크게 좌우하기 때문이에요. 이런 부분은 고칠 각오를 하세요.
- 이름과 전문 용어: 발음이 비슷한 흔한 낱말로 바뀌기 쉬워요.
- 겹쳐 말하기: 여러 사람이 동시에 말하면 대개 한 목소리만 자막이 돼요.
- 화자 구분 없음: 누가 말하는지는 적어 주지 않아요. 필요하면 이름이나 줄표를 직접 넣으세요.
- 음악과 무음: 같은 말을 되풀이하거나, 드물게 하지 않은 말을 자막으로 만들기도 해요. 그런 줄은 지우세요.
자막을 더 잘 만드는 요령
- 영상 언어를 알면 자동 감지 대신 직접 고르세요. 음악으로 시작하는 영상이라면 특히 그래요.
- 배경음악이 큰 영상은 Small이 Tiny나 Base보다 확실히 잘 받아써요.
- 영상을 틀어 놓고 고치세요. 지금 나오는 자막이 목록에 표시되고, 아무 자막이나 누르면 그 위치로 이동해요.
- 세로 영상은 쇼츠 팝이나 단어 강조에 한 줄 자막이 휴대폰에서 가장 잘 읽혀요. 앱 버튼에 가리지 않도록 가운데에 두세요.
- 자막 모양 설정을 바꾸면 다시 받아쓰지 않고 모양만 바꿔 볼 수 있어요. 이미 자막을 고쳤다면 이 설정으로 다시 나누기를 눌러 적용하세요.
자주 묻는 질문
- 영상이 서버로 올라가나요?
- 아니요. 영상에서 소리를 꺼내 받아쓰는 일도, 자막 입힌 MP4를 만드는 일도 모두 이 브라우저 탭 안에서 일어나요. 처음 쓸 때 브라우저가 Hugging Face(huggingface.co)에서 Whisper 모델을, jsDelivr(cdn.jsdelivr.net)에서 ONNX 런타임을 받을 뿐이고, 영상 내용은 이 둘에게도, 저희에게도 보내지 않아요.
- 워터마크가 붙나요?
- 아니요. MP4는 내 영상과 화면에 보이는 자막만으로 만들어지고, 워터마크나 로고, 끝 화면을 덧붙이지 않아요. 무료이고 가입도 필요 없어요.
- 자막을 영상에 입히려면 어떻게 하나요?
- 자막 입힌 영상 받기(MP4)를 누르세요. 고른 스타일대로 모든 화면에 자막을 그려 넣고 원래 소리와 함께 MP4로 저장해서, 쇼츠·릴스·틱톡·X에 바로 올릴 수 있어요. MP4를 만들지 못하는 브라우저에서는 실시간으로 WebM을 녹화해요. 자르기나 음악이 필요하면 SRT를 무료 동영상 편집기로 가져가세요.
- SRT와 VTT 중 무엇을 받아야 하나요?
- 유튜브를 비롯해 대부분의 동영상 사이트와 편집 프로그램은 SRT를 받아요. VTT는 웹 동영상 플레이어가 HTML track 요소로 쓰는 형식이에요. 담긴 자막은 같고, 머리글과 밀리초 앞 구분 기호만 달라요.
- 한 줄 글자 수는 몇 자가 좋아요?
- 넷플릭스 한국어 자막 가이드는 한 줄 16자, 최대 두 줄로 정해 두었어요. 다만 그 기준은 영문자·띄어쓰기·문장부호를 반 글자로 세요. 이 도구는 띄어쓰기까지 모두 한 글자로 세서, 기본값 20자가 대략 같은 길이예요. 세로 영상은 한 줄 10자로 시작해요.
- 만든 뒤에 줄 길이를 바꿀 수 있나요?
- 네. 한 줄 글자 수, 자막당 줄 수, 자막 최대 길이를 바꾸면 손대지 않은 자막은 바로 새로 나눠요. 모델을 다시 돌리지 않고 낱말 시간 정보만 써요. 이미 고친 자막이 있으면 '이 설정으로 다시 나누기'를 눌러야 바뀌고, 고친 내용은 되돌리기로 살릴 수 있어요.
출처
- Radford 외(2022), Robust Speech Recognition via Large-Scale Weak Supervision, arXiv:2212.04356 (Whisper 논문)
- OpenAI Whisper 저장소
- 넷플릭스 한국어 자막 스타일 가이드 (한 줄 16자, 최대 두 줄)
- 넷플릭스 자막 스타일 가이드 공통 지침 (자막당 최대 7초)
- MDN: Web Video Text Tracks(WebVTT)
영상은 이 기기 밖으로 나가지 않아요. 모델은 이 브라우저 탭에서 돌고, 처음 쓸 때 Hugging Face에서 모델 파일을, jsDelivr에서 런타임을 받는 것 말고는 영상도 자막도 어디로도 보내지 않아요.