toolsmith

업로드 없음 · 전부 브라우저에서 처리

SRT와 VTT — 어느 자막 파일이 필요한가

둘을 텍스트 편집기로 열어 보면 구별하기 어렵습니다. 차이는 아주 작지만, 그중 하나가 웹페이지에서 자막이 아예 안 나오는지를 결정합니다.

수정

둘 다 시간이 적힌 평범한 텍스트입니다

SRT는 번호가 붙은 덩어리의 목록입니다. 각 덩어리에 번호, `00:00:01,000 --> 00:00:04,000` 같은 시작·끝 시각, 그리고 띄울 글줄이 들어갑니다. 형식은 그게 전부입니다. 단순해서 어디서나 통합니다 — 재생기, TV, 편집 프로그램, 영상 플랫폼.

VTT는 같은 발상을 웹용으로 다시 쓴 것입니다. 브라우저가 HTML 영상 요소에서 자막을 직접 그릴 수 있도록 표준이 되었고, SRT에는 자리가 없던 것들을 담을 공간이 생겼습니다.

차이의 전부

많지 않고, 전부 기계적인 것들입니다.

  • VTT 파일은 `WEBVTT` 라는 줄로 시작해야 합니다. 이 줄이 없으면 브라우저가 파일 전체를 거부합니다 — 자막이 아무 말 없이 안 나오는 가장 흔한 이유입니다.
  • 1초 미만을 가르는 기호가 SRT는 쉼표, VTT는 마침표입니다.
  • SRT는 덩어리 번호가 필수입니다. VTT는 있어도 되고 없어도 되는 이름표로 봅니다.
  • VTT는 위치·정렬·글자 모양·화자 표시를 담을 수 있습니다. SRT에는 그런 개념 자체가 없습니다.
  • HTML5 영상의 `<track>` 요소는 VTT만 받습니다. SRT는 불러오지 않습니다.

그래서 어느 쪽이 필요한가

내가 만드는 웹페이지에서 영상을 재생한다면 VTT입니다. 선택의 여지가 없습니다. 그 밖의 모든 곳에서는 SRT가 안전합니다 — 데스크톱 재생기, 휴대폰, TV, 편집 프로그램, 주요 영상 플랫폼이 전부 받고, 그중 몇몇은 VTT를 안 받습니다.

변환이 기계적인 일이라 고민할 값어치는 없습니다. 저희 자막 도구는 같은 인식 결과에서 두 파일을 함께 만들어 주니, 보낼 곳이 원하는 쪽을 가져가시면 됩니다.

자동 자막은 어떻게 만들어지고 어떻게 틀리나

자동 자막은 음성 인식 모델에서 나옵니다. 소리를 풀어 16kHz로 내린 뒤 모델에 넣으면, 글과 함께 각 구간이 언제 시작하고 끝났는지가 돌아옵니다. 여기서는 그 일이 브라우저 탭 안에서 일어나므로 모델을 먼저 받아야 합니다 — 고르는 것에 따라 151MB나 291MB라, 도구가 시작한 뒤가 아니라 누르기 전에 그 숫자를 말합니다.

알아 둘 실패 방식은, 소리가 나쁘면 글이 조금 나빠지는 것이 아니라 같은 말을 반복하며 무너진다는 것입니다. 1948년 연설 녹음을 넣었더니 같은 음절만 계속 뱉었습니다. 같은 언어의 깨끗한 현대 녹음은 마흔 단어 남짓에서 두 군데를 틀렸습니다. 언어가 어려워서가 아니라 녹음 품질 문제였습니다. 가장 자주 만날 실패라 FAQ가 아니라 화면에 상시 경고로 띄웠습니다.

그런데 대가가 가장 큰 실수는 언어 선택입니다. 인식 모델에 엉뚱한 언어를 지정하면 멈추지 않습니다. 유창하고 자신 있는 헛소리를 만들어 냅니다 — 영어 녹음이 한국어 120줄로 받아써진 것을 실제로 겪었습니다. 소리와 아무 상관 없는데 글은 그럴듯하다면 이것부터 확인하세요.

번역은 또 다른 일입니다

번역은 다시 다른 모델이 합니다. 4억 1800만 개 매개변수짜리 다국어 모델로, 100개 언어를 어느 방향으로든 옮깁니다. 탭 안에서 돌 만큼 작고, 그 크기가 품질을 정합니다.

정직하게 적으면 이렇습니다. 스무 줄 중 열다섯쯤은 잘 나오고 다섯은 어색하지만 뜻은 통합니다. 평범한 문장은 괜찮습니다. 미끄러지는 곳은 관용구입니다 — "let's wrap this up"(이제 마무리하자)이 스페인어와 독일어 양쪽에서 "이제 시작하자" 쪽으로 나왔습니다. 작은 오류가 아닙니다.

아주 짧은 감탄문은 미끄러지는 정도가 아니라 같은 말을 반복하며 무너집니다. 그것을 그대로 내보내는 대신 도구가 무너진 것을 알아보고 원문을 그대로 남깁니다. 사람 손이 필요한 줄이 어디인지 보이게 하기 위해서입니다.

업로드 없이 지금 해 보기

.srt 를 .vtt 로 이름만 바꾸면 되나요?

안 됩니다. `WEBVTT` 머리글 줄이 없고, 시간의 소수점 자리에 마침표 대신 쉼표가 들어 있습니다. 브라우저가 그 자리에서 거부합니다. 변환 자체는 간단하지만 이름 바꾸기는 아닙니다.

자막이 영상에 새겨지나요?

아닙니다. 자막 파일은 영상 옆에 따로 있고 재생기가 그것을 그립니다. 그편이 낫습니다 — 보는 사람이 끌 수 있고, 오타를 고치려고 영상을 다시 인코딩할 필요가 없으며, 같은 영상에 여러 언어를 붙일 수 있습니다.

글은 매끄러운데 소리와 전혀 상관없는 내용입니다.

언어 설정이 잘못됐습니다. 음성 모델은 엉뚱한 언어를 요구받아도 실패하지 않고, 그 언어로 말이 되는 글을 자신 있게 만들어 냅니다. 실제로 말하는 언어로 맞추고 다시 돌리세요.

읽어 둘 만한 글