Tiếng Việt

Video và phụ đề · Bộ công cụ phụ đề

'Dọn dẹp' tệp phụ đề nghĩa là gì: thẻ, mã và định dạng lạc lối

· Cách thức hoạt động

phụ đề text-processing file-formats

Dòng phụ đề mang thẻ dấu ngoặc nhọn và mã dấu ngoặc nhọn phía trên cùng một dòng được rút gọn thành các từ đơn giản
Hình minh họa vector ToolAcre gốc

Tệp phụ đề thu thập rác: thẻ giống HTML, mã tạo kiểu từ các định dạng khác, BOM lạc và kết thúc dòng hỗn hợp. Bài đăng này giải thích từng loại lộn xộn là gì, nó đến từ đâu và cách loại bỏ nó mà không cần chạm vào các từ.

Phụ đề hiển thị '{\an8}' và '<i>' trên màn hình — dấu hiệu rõ ràng của tệp phụ đề không sạch sẽ

Khi chú thích hiển thị các ký tự của thẻ thay vì tuân theo nó, trình phát sẽ cho bạn biết rằng chú thích đó không triển khai đánh dấu đó. SRT không có thông số định dạng nên việc hỗ trợ là thông thường: nhiều người chơi tôn trọng một tập hợp nhỏ các thẻ giống HTML và mọi thứ bên ngoài tập hợp đó sẽ được vẽ dưới dạng văn bản bằng chữ. Tệp hiển thị chính xác trong một trình phát và hiển thị dấu ngoặc nhọn trong một trình phát khác không thay đổi; chỉ có bộ thẻ được vinh danh mới có.

Đây là lý do tại sao dọn dẹp là một hoạt động thực sự chứ không phải là dọn dẹp chỉ để trang trí. Sự lộn xộn không phải là cách trang trí xấu xí. Đó là hướng dẫn được viết cho một định dạng mà người chơi khác đọc dưới dạng hội thoại và cách khắc phục là xóa hướng dẫn trong khi vẫn giữ nguyên mọi từ.

Sự lộn xộn xuất phát từ đâu — xuất từ ​​các định dạng nặng về kiểu dáng, đầu ra OCR và các trình chỉnh sửa thêm đánh dấu của riêng họ

Hầu hết sự lộn xộn đều đến từ việc chuyển đổi. Tệp được tạo ở định dạng nặng về kiểu dáng, chẳng hạn như ASS hoặc SSA mang các chỉ thị về vị trí và giao diện nội tuyến và một trình chuyển đổi ánh xạ thời gian một cách trung thực sẽ thường chuyển các chỉ thị đó dưới dạng văn bản. Những người chỉnh sửa phụ đề thêm phần đánh dấu của riêng họ để nhận dạng và nhấn mạnh người nói, đồng thời nhận dạng ký tự quang học của phụ đề cố định sẽ đưa ra dấu câu lạc lối và dấu cách nhân đôi mà không có tác giả nào gõ.

Không có nguồn nào trong số này bị sai định dạng trong thế giới riêng của chúng. Khối ghi đè ASS có ý nghĩa trong ASS. Vấn đề là SRT không có giá trị tương đương, do đó, một chuyển đổi trông không mất dữ liệu sẽ tạo ra một tệp trong đó lệnh tồn tại dưới dạng ký tự thay vì dưới dạng hành vi.

Thẻ định dạng - thẻ in nghiêng, in đậm và phông chữ, mà người chơi tôn vinh chúng và hiển thị chúng theo nghĩa đen

Thẻ khung góc được xử lý trước tiên, với biểu thức chính quy loại bỏ mọi thứ giữa giá trị nhỏ hơn và giá trị lớn hơn tiếp theo. Điều đó bao gồm các thẻ in nghiêng và in đậm, thẻ lớp WebVTT chẳng hạn như chú thích lớp gợi ý và thẻ thoại đặt tên cho người nói. Thuộc tính quan trọng là đây là một sự thay thế văn bản, không phải là trình phân tích cú pháp HTML và nó không cố gắng khớp các thẻ mở với các thẻ đóng.

Sự đơn giản đó có cái giá đáng để biết. Một dòng hội thoại thực sự chứa ít hơn và lớn hơn, chẳng hạn như bất đẳng thức trong lời nói, sẽ bị xóa văn bản giữa chúng cùng với dấu ngoặc. Nó hiếm khi xuất hiện trong hội thoại và phổ biến trong các chú thích kỹ thuật, vì vậy, rất đáng để quét đầu ra của tài liệu thảo luận về mã hoặc toán học.

Mã định vị và mã kiểu — các mã như {\an8} có ý nghĩa gì trong ASS/SSA và tại sao chúng gây nhiễu trong SRT

Mã dấu ngoặc nhọn được loại bỏ bằng sự thay thế thứ hai bao gồm mọi thứ giữa dấu ngoặc nhọn mở và đóng. Trong các định dạng SubStation, đây là các khối ghi đè và khối thường thấy nhất là khối di chuyển một dòng lên đầu khung để nó không va chạm với văn bản cố định. Những người khác đặt phông chữ, màu sắc, xoay hoặc thời gian hát karaoke.

Trong tệp SRT, không có từ nào trong số đó có ý nghĩa gì, đó là lý do tại sao chúng bị xóa thay vì được dịch. Chỉ thị vị trí không có SRT tương đương để dịch sang: định dạng đơn giản là không mang vị trí. Việc xóa mã sẽ làm mất đi ý định của tác giả rằng dòng này phải nằm ở đầu khung và sự mất mát đó là có thật, nhưng tốt hơn là in mã cho người xem.

Sự lộn xộn vô hình - dấu thứ tự byte, kết thúc dòng CRLF và LF hỗn hợp và dấu cách

Sự lộn xộn vô hình được xử lý trước đó, trong quá trình phân tích cú pháp và nó đáng được tách ra vì nó hoàn toàn không phải là một phần của văn bản. Dấu thứ tự byte ở đầu tệp sẽ bị loại bỏ trước bất kỳ thứ gì khác, vì nếu không, nó sẽ gắn vào số chỉ mục đầu tiên và tính theo tín hiệu đầu tiên. Trả về đầu dòng được chuẩn hóa, cả cặp Windows và trả về đầu dòng đơn độc, do đó, tệp được chỉnh sửa trên hai nền tảng sẽ chia thành các khối một cách chính xác.

Khoảng trắng bên trong tín hiệu được xử lý bằng thẻ. Các chuỗi gồm hai khoảng trắng hoặc tab trở lên sẽ thu gọn thành một khoảng trắng, mỗi dòng được cắt riêng lẻ và toàn bộ tín hiệu sẽ được cắt bớt sau khi các dòng được nối lại. Các thực thể ký tự được cố tình để yên: thực thể dấu và là nội dung mà người xem sẽ thấy chứ không phải đánh dấu và trình dọn dẹp đã giải mã nó sẽ chỉnh sửa đoạn hội thoại thay vì xóa hướng dẫn.

Ví dụ đã thực hiện: làm sạch bản xuất tín hiệu 200 — nội dung nào thay đổi, nội dung nào vẫn giữ nguyên và cách kiểm tra kết quả

Làm sạch một bản xuất lớn thay đổi ít hơn so với vẻ ngoài của nó. Lấy một tệp tín hiệu gồm hai trăm tín hiệu trong đó trình chuyển đổi đã đặt tiền tố mã đầu khung thành sáu mươi tín hiệu và bao bọc các thẻ nhấn mạnh xung quanh bốn mươi tín hiệu nữa. Hai sự thay thế sẽ loại bỏ mã và các thẻ, khoảng trắng sẽ thu gọn khoảng trắng nhân đôi mà việc loại bỏ để lại và hai trăm tín hiệu trở thành hai trăm tín hiệu có cùng từ và cùng thời gian.

Hai bước nữa là quan trọng. Một tín hiệu có toàn bộ nội dung là mã lạc sẽ trở nên trống sau khi hết mã và các tín hiệu trống sẽ bị xóa trong một lượt riêng thay vì được phát ra dưới dạng khối trống, bởi vì tín hiệu có dấu thời gian và không có văn bản là khoảng trống mà một số người chơi hiển thị dưới dạng đèn flash. Việc ghi lại tệp sẽ đánh số lại các tín hiệu từ một và giữ chúng liền kề nhau, do đó việc loại bỏ không để lại lỗ hổng trong trình tự. Kiểm tra kết quả bằng cách so sánh số lượng tín hiệu và kiểm tra tại chỗ bất kỳ dòng nào ban đầu chứa thực thể.

Điều này không bao gồm - viết lại văn bản, đánh vần hoặc dịch thuật; lời nói là của bạn

Việc dọn dẹp sẽ loại bỏ đánh dấu và không chạm vào ngôn ngữ. Nó không sửa lỗi chính tả, mở rộng chữ viết tắt, sửa lỗi phiên âm hoặc dịch. Nếu chú thích viết sai từ thì sau đó nó sẽ viết sai từ đó, được định dạng đúng. Ranh giới đó là có chủ ý: một công cụ viết lại đoạn hội thoại một cách âm thầm sẽ không thể tin tưởng được vào những tài liệu mà nó không hiểu.

Nó cũng không sửa chữa cấu trúc. Một tệp có khối thiếu dấu thời gian có vấn đề về phân tích cú pháp chứ không phải vấn đề định dạng và việc xóa thẻ khỏi tệp sẽ không tạo ra tín hiệu. Lỗi mã hóa cũng nằm ngoài phạm vi tương tự. Một tệp được giải mã bằng bộ ký tự sai sẽ tạo ra các tín hiệu được định dạng hoàn hảo có văn bản sai và không có thao tác xóa thẻ nào phát hiện được điều đó, bởi vì không có cấu trúc nào bị hỏng.

Bài học rút ra: xóa đánh dấu, giữ nguyên ý nghĩa — cách bước rõ ràng của Bộ công cụ phụ đề xử lý tình trạng lộn xộn thông thường và ghi lại những gì nó để lại

Quy tắc là loại bỏ đánh dấu, giữ nguyên ý nghĩa. Thẻ dấu ngoặc nhọn và mã dấu ngoặc nhọn được sử dụng vì chúng là hướng dẫn mà người chơi bỏ qua hoặc in ra. Khoảng trắng được nhân đôi và phần đệm trên mỗi dòng được sử dụng vì chúng là sản phẩm của việc loại bỏ hoặc xuất ban đầu. Các thực thể, dấu câu và từng từ đều ở lại vì đó là những gì người xem muốn đọc.

Chạy một bản xuất có nhiều thẻ thông qua trình chuyển đổi Bộ công cụ phụ đề và so sánh nó với bản gốc thay vì tin tưởng ngay vào kết quả đầu ra. Xác nhận số lượng tín hiệu không thay đổi ngoại trừ khi các tín hiệu thực sự trống, kiểm tra xem bất kỳ dòng nào chứa thực thể vẫn chứa nó và quét các dòng thảo luận về mã hoặc toán học để tìm văn bản bị mất trong dấu ngoặc nhọn.