비디오 및 자막 · 자막 툴킷
자막 파일 '정리'의 의미: 태그, 코드 및 잘못된 형식
· 작동 방식
자막 텍스트 처리 중 파일 형식
자막 파일은 HTML과 유사한 태그, 다른 형식의 스타일 코드, 길 잃은 BOM 및 혼합된 줄 끝 등 정크를 수집합니다. 이 게시물에서는 각 종류의 어수선함이 무엇인지, 그것이 어디서 왔는지, 말을 건드리지 않고 깔끔한 단계를 통해 제거하는 방법에 대해 설명합니다.
캡션이 화면에 '{\an8}' 및 '<i>'를 표시합니다. 이는 깨끗하지 않은 자막 파일의 눈에 보이는 증상입니다.
캡션이 태그의 문자를 따르지 않고 표시하는 경우 플레이어는 해당 마크업을 구현하지 않는다는 의미입니다. SRT에는 형식 지정 사양이 없으므로 지원이 일반적입니다. 많은 플레이어가 HTML과 유사한 작은 태그 집합을 존중하며 해당 집합 외부의 모든 항목은 리터럴 텍스트로 그려집니다. 한 플레이어에서 올바르게 렌더링되고 다른 플레이어에서는 중괄호를 표시하는 파일은 변경되지 않았습니다. 존중되는 태그 세트만 있습니다.
청소는 미용적인 정리가 아닌 실제 작업인 이유입니다. 어수선함은 보기 흉하게 생긴 장식이 아닙니다. 다른 플레이어가 대화로 읽는 한 가지 형식으로 작성된 지침이며, 수정 사항은 모든 단어를 그대로 유지하면서 지침을 제거하는 것입니다.
혼란의 출처 — 스타일이 많은 형식, OCR 출력 및 자체 마크업을 추가하는 편집기에서 내보내기
대부분의 혼란스러운 요소는 변환을 통해 발생합니다. ASS 또는 SSA와 같이 스타일이 많은 형식으로 작성된 파일은 위치 지정 및 모양 지시문을 인라인으로 전달하며 타이밍을 충실하게 매핑하는 변환기는 이러한 지시문을 텍스트로 전달하는 경우가 많습니다. 캡션 편집자는 화자 식별 및 강조를 위해 자체 마크업을 추가하고, 내장된 자막의 광학 문자 인식을 통해 작성자가 입력하지 않은 잘못된 구두점과 이중 공백이 도입됩니다.
이러한 소스 중 어느 것도 자체 세계에서 잘못된 형식을 갖지 않습니다. ASS 재정의 블록은 ASS에서 의미가 있습니다. 문제는 SRT에 상응하는 항목이 없으므로 무손실로 보이는 변환을 통해 명령이 동작이 아닌 문자로 남아 있는 파일을 생성한다는 것입니다.
서식 지정 태그 — 플레이어가 이를 존중하고 문자 그대로 표시하는 기울임꼴, 굵은 글꼴 및 글꼴 태그
꺾쇠 괄호 태그는 보다 작은 것과 그 다음 큰 것 사이의 모든 것을 제거하는 정규식을 사용하여 먼저 처리됩니다. 여기에는 기울임꼴 및 굵은 태그, 큐 클래스 주석과 같은 WebVTT 클래스 태그, 화자의 이름을 지정하는 음성 태그가 포함됩니다. 중요한 속성은 이것이 HTML 파서가 아닌 텍스트 대체이며 여는 태그를 닫는 태그와 일치시키려고 시도하지 않는다는 것입니다.
그 단순함은 알만한 가치가 있습니다. 음성 불평등과 같이 실제로 보다 작음과 보다 큼을 포함하는 대화 줄에서는 괄호와 함께 그 사이의 텍스트가 제거됩니다. 이는 대화에서는 드물고 기술 캡션에서는 흔히 발생하므로 코드나 수학을 논의하는 자료에 대한 정리 패스의 출력을 살펴보는 것이 좋습니다.
위치 지정 및 스타일 코드 — ASS/SSA에서 {\an8}과 같은 코드의 의미와 SRT에서 노이즈인 이유
중괄호 코드는 여는 중괄호와 닫는 중괄호 사이의 모든 항목을 포함하는 두 번째 대체에 의해 제거됩니다. SubStation 형식에서 이는 재정의 블록이며, 가장 자주 볼 수 있는 것은 번인된 텍스트와 충돌하지 않도록 선을 프레임 상단으로 이동하는 블록입니다. 다른 사람들은 글꼴, 색상, 회전 또는 노래방 타이밍을 설정합니다.
SRT 파일에서는 아무 의미도 없으므로 번역되지 않고 제거됩니다. 위치 지시문에는 다음과 같이 번역할 수 있는 SRT이 없습니다. 형식은 단순히 배치를 전달하지 않습니다. 코드를 제거하면 해당 선이 프레임 상단에 위치해야 한다는 작성자의 의도가 사라지고 실제로 손실이 발생하지만 뷰어에게 코드를 인쇄하는 것이 더 좋습니다.
보이지 않는 혼란 — 바이트 순서 표시, 혼합 CRLF 및 LF 줄 끝 및 후행 공백
보이지 않는 클러터는 구문 분석 중에 더 일찍 처리되며 텍스트의 일부가 전혀 아니기 때문에 분리할 가치가 있습니다. 파일 시작 부분의 바이트 순서 표시는 다른 것보다 먼저 제거됩니다. 그렇지 않으면 첫 번째 인덱스 번호에 연결되고 첫 번째 큐가 필요하기 때문입니다. 캐리지 리턴은 Windows 쌍과 단일 캐리지 리턴 모두 정규화되므로 두 플랫폼에서 편집된 파일이 블록으로 올바르게 분할됩니다.
큐 내부의 공백은 태그로 처리됩니다. 두 개 이상의 공백 또는 탭이 단일 공백으로 축소되고, 모든 줄이 개별적으로 잘리고, 줄이 다시 결합된 후에 큐 전체가 잘립니다. 문자 엔터티는 의도적으로 혼자 남겨집니다. 앰퍼샌드 엔터티는 마크업이 아니라 뷰어가 봐야 하는 콘텐츠이며, 이를 디코딩하는 클리너는 명령을 제거하는 것이 아니라 대화를 편집합니다.
작업 예: 200-큐 내보내기 정리 — 변경 사항, 유지 사항 및 결과 확인 방법
대규모 내보내기를 정리하면 보이는 것보다 변경 사항이 적습니다. 변환기가 프레임 상단 코드 앞에 60개 큐를 추가하고 추가 40개 주위에 강조 태그를 래핑한 200개 큐 파일을 선택합니다. 두 개의 대체는 코드와 태그를 제거하고, 공백 패스는 제거로 인해 남겨진 이중 공간을 축소하며, 200개의 큐는 동일한 단어와 동일한 타이밍을 가진 200개의 큐가 됩니다.
두 가지 추가 단계가 중요합니다. 전체 콘텐츠가 길 잃은 코드였던 큐는 코드가 사라지면 비어 있게 되고, 빈 큐는 빈 블록으로 방출되기보다는 별도의 패스에서 제거됩니다. 왜냐하면 타임스탬프가 있고 텍스트가 없는 큐는 일부 플레이어가 플래시로 렌더링하는 간격이기 때문입니다. 파일을 다시 쓰면 하나의 큐에 번호를 다시 매기고 연속적으로 유지하므로 제거로 인해 시퀀스에 구멍이 생기지 않습니다. 큐 개수를 비교하고 원래 엔터티가 포함된 줄을 즉시 확인하여 결과를 확인하세요.
여기서 다루지 않는 내용 — 텍스트 자체, 철자 또는 번역을 다시 작성합니다. 그 말은 당신의 것입니다
정리하면 마크업이 제거되고 언어는 건드리지 않습니다. 철자를 수정하거나 약어를 확장하거나 표기 오류를 수정하거나 번역하지 않습니다. 캡션이 잘못된 단어를 말하면 나중에 잘못된 단어를 올바른 형식으로 말합니다. 그 경계는 의도적인 것입니다. 대화를 자동으로 다시 쓰는 도구는 이해하지 못하는 자료를 신뢰하는 것이 불가능합니다.
또한 구조를 수리하지 않습니다. 블록에 타임스탬프가 없는 파일에는 형식 문제가 아닌 구문 분석 문제가 있으며, 태그를 제거해도 신호가 생성되지 않습니다. 인코딩 오류도 마찬가지로 범위를 벗어납니다. 잘못된 문자 세트로 디코딩된 파일은 텍스트가 잘못된 완벽하게 잘 구성된 단서를 생성하며, 구조에 대해 손상된 부분이 없기 때문에 태그를 아무리 제거해도 이를 감지할 수 없습니다.
요점: 마크업을 제거하고 의미를 유지합니다. 자막 도구 키트의 정리 단계가 일반적인 어수선한 부분을 처리하고 남겨진 내용을 문서화하는 방법
규칙은 마크업을 제거하고 의미를 유지하는 것입니다. 꺾쇠 괄호 태그와 중괄호 코드는 플레이어가 무시하거나 인쇄하는 지침이기 때문에 사용됩니다. 이중 공백 및 줄당 패딩은 제거 또는 원래 내보내기의 인공물이기 때문에 사용됩니다. 엔터티, 구두점 및 모든 단어는 시청자가 읽어야 하는 것이기 때문에 그대로 유지됩니다.
자막 툴킷 변환기를 통해 태그가 많은 내보내기를 실행하고 출력을 한눈에 신뢰하기보다는 원본과 비교하십시오. 큐가 실제로 비어 있는 경우를 제외하고 큐 수가 변경되지 않았는지 확인하고, 엔터티를 포함하는 줄에 여전히 해당 항목이 포함되어 있는지 확인하고, 꺾쇠 괄호로 인해 손실된 텍스트에 대한 코드 또는 수학을 논의하는 줄을 스캔합니다.