ไทย

วิดีโอและคำบรรยาย · ชุดเครื่องมือคำบรรยาย

'การทำความสะอาด' ไฟล์คำบรรยายหมายถึงอะไร: แท็ก รหัส และการจัดรูปแบบที่หลงทาง

· มันทำงานอย่างไร

คำบรรยาย การประมวลผลข้อความ ไฟล์รูปแบบ

บรรทัดคำบรรยายที่มีแท็กวงเล็บเหลี่ยมและโค้ดปีกกาที่อยู่เหนือบรรทัดเดียวกันจะลดทอนเป็นคำธรรมดา
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

ไฟล์คำบรรยายรวบรวมขยะ: แท็กที่เหมือน HTML, โค้ดสไตล์จากรูปแบบอื่น, BOM ที่หลงทาง และการลงท้ายบรรทัดแบบผสม โพสต์นี้อธิบายว่าความยุ่งเหยิงแต่ละประเภทคืออะไร มาจากไหน และขั้นตอนที่สะอาดจะขจัดมันออกไปโดยไม่ต้องสัมผัสคำพูดได้อย่างไร

คำบรรยายแสดง '{\an8}' และ '<i>' บนหน้าจอ — อาการที่มองเห็นได้ของไฟล์คำบรรยายที่ไม่สะอาด

เมื่อคำบรรยายแสดงอักขระของแท็กแทนที่จะปฏิบัติตาม แสดงว่าผู้เล่นไม่ได้ใช้มาร์กอัปนั้น SRT ไม่มีข้อกำหนดการจัดรูปแบบ ดังนั้นการสนับสนุนจึงเป็นเรื่องปกติ ผู้เล่นหลายคนจะใช้แท็กคล้าย HTML ชุดเล็กๆ และสิ่งใดก็ตามที่อยู่นอกชุดนั้นจะถูกวาดเป็นข้อความตามตัวอักษร ไฟล์ที่แสดงผลอย่างถูกต้องในเครื่องเล่นหนึ่งและแสดงวงเล็บปีกกาในเครื่องเล่นอื่นไม่มีการเปลี่ยนแปลง มีเพียงชุดแท็กที่ได้รับเกียรติเท่านั้น

นี่คือสาเหตุที่การทำความสะอาดเป็นการดำเนินการจริงมากกว่าการจัดระเบียบเครื่องสำอาง ความยุ่งเหยิงไม่ใช่การตกแต่งที่น่าเกลียด เป็นคำแนะนำที่เขียนขึ้นสำหรับรูปแบบหนึ่งที่ผู้เล่นคนอื่นอ่านเป็นบทสนทนา และการแก้ไขคือการลบคำแนะนำออกโดยยังคงรักษาทุกคำเอาไว้

ที่มาของความยุ่งเหยิง — ส่งออกจากรูปแบบที่มีสไตล์จัดหนัก เอาต์พุต OCR และโปรแกรมแก้ไขที่เพิ่มมาร์กอัปของตนเอง

ความยุ่งเหยิงส่วนใหญ่เกิดขึ้นจากการเปลี่ยนใจเลื่อมใส ไฟล์ที่เขียนในรูปแบบที่จัดรูปแบบหนัก เช่น ASS หรือ SSA มีคำสั่งการวางตำแหน่งและลักษณะที่ปรากฏแบบอินไลน์ และตัวแปลงที่แมปการกำหนดเวลาอย่างซื่อสัตย์มักจะส่งคำสั่งเหล่านั้นผ่านเป็นข้อความ ผู้แก้ไขคำบรรยายจะเพิ่มมาร์กอัปของตนเองเพื่อระบุตัวตนและการเน้นของผู้พูด และการรู้จำอักขระด้วยแสงของคำบรรยายที่ฝังไว้จะแนะนำเครื่องหมายวรรคตอนที่หลงทางและเว้นวรรคเป็นสองเท่าซึ่งไม่มีผู้เขียนพิมพ์

ไม่มีแหล่งที่มาเหล่านี้มีรูปแบบผิดปกติในโลกของตัวเอง บล็อกแทนที่ ASS มีความหมายใน ASS ปัญหาคือ SRT ไม่มีค่าที่เท่ากัน ดังนั้นการแปลงที่ดูไม่มีการสูญเสียจะสร้างไฟล์ที่คำสั่งยังคงอยู่เป็นอักขระแทนที่จะเป็นพฤติกรรม

การจัดรูปแบบแท็ก — แท็กตัวเอียง ตัวหนา และแบบอักษร ซึ่งผู้เล่นให้เกียรติและแสดงแท็กตามตัวอักษร

แท็กวงเล็บเหลี่ยมจะได้รับการจัดการก่อน ด้วยนิพจน์ทั่วไปที่จะลบทุกอย่างระหว่างค่าน้อยกว่าและค่าถัดไปที่มากกว่า ซึ่งครอบคลุมแท็กตัวเอียงและตัวหนา แท็กคลาส WebVTT เช่น คำอธิบายประกอบคลาสคิว และแท็กเสียงที่ตั้งชื่อผู้พูด คุณสมบัติที่สำคัญคือนี่คือการแทนที่ข้อความ ไม่ใช่ตัวแยกวิเคราะห์ HTML และจะไม่พยายามจับคู่แท็กเปิดกับแท็กปิด

ความเรียบง่ายนั้นคุ้มค่าที่จะรู้ บทสนทนาที่มีค่าน้อยกว่าและมากกว่าอย่างแท้จริง เช่น ความไม่เท่าเทียมกันทางคำพูด จะถูกลบข้อความระหว่างสิ่งเหล่านั้นออกพร้อมกับวงเล็บ ไม่ค่อยพบในบทสนทนาและพบเห็นได้ทั่วไปในคำบรรยายทางเทคนิค ดังนั้นจึงคุ้มค่าที่จะสแกนผลลัพธ์ของบัตรผ่านการทำความสะอาดบนเนื้อหาที่กล่าวถึงโค้ดหรือคณิตศาสตร์

รหัสตำแหน่งและรูปแบบ — รหัสเช่น {\an8} หมายถึงอะไรใน ASS/SSA และเหตุใดจึงมีสัญญาณรบกวนใน SRT

รหัสปีกกาจะถูกลบออกโดยการแทนที่ครั้งที่สองซึ่งครอบคลุมทุกอย่างระหว่างเครื่องหมายปีกกาเปิดและปิด ในรูปแบบ SubStation บล็อกเหล่านี้จะแทนที่ และบล็อกที่เห็นบ่อยที่สุดคือบล็อกที่ย้ายบรรทัดไปที่ด้านบนของเฟรม เพื่อไม่ให้ชนกับข้อความที่เบิร์นอิน คนอื่นๆ ตั้งค่าแบบอักษร สี การหมุน หรือจังหวะคาราโอเกะ

ในไฟล์ SRT ไม่ได้มีความหมายอะไรเลย ซึ่งเป็นสาเหตุที่ทำให้ไฟล์เหล่านั้นถูกลบออกแทนที่จะแปล คำสั่งตำแหน่งไม่มี SRT เทียบเท่าในการแปล: รูปแบบไม่มีการวางตำแหน่ง การลบโค้ดออกทำให้ผู้เขียนเสียความตั้งใจว่าบรรทัดควรอยู่ที่ด้านบนของเฟรม และการสูญเสียนั้นเกิดขึ้นจริง แต่จะดีกว่าถ้าพิมพ์โค้ดให้ผู้ชมเห็น

ความยุ่งเหยิงที่มองไม่เห็น — เครื่องหมายลำดับไบต์, การลงท้ายบรรทัดแบบผสม CRLF และ LF และช่องว่างต่อท้าย

ความยุ่งเหยิงที่มองไม่เห็นได้รับการจัดการตั้งแต่เนิ่นๆ ระหว่างการแยกวิเคราะห์ และคุ้มค่าที่จะแยกออกเนื่องจากไม่ได้เป็นส่วนหนึ่งของข้อความเลย เครื่องหมายลำดับไบต์ที่จุดเริ่มต้นของไฟล์จะถูกถอดออกก่อนสิ่งอื่นใด เพราะไม่เช่นนั้นจะแนบกับหมายเลขดัชนีแรกและมีค่าใช้จ่ายในคิวแรก การคืนแคร่จะเป็นปกติ ทั้งคู่ Windows และการคืนแคร่เดียว ดังนั้นไฟล์ที่แก้ไขบนสองแพลตฟอร์มจะแยกออกเป็นบล็อกอย่างถูกต้อง

ช่องว่างภายในคิวถูกจัดการด้วยแท็ก การเว้นวรรคหรือแท็บตั้งแต่สองรายการขึ้นไปจะยุบลงเป็นพื้นที่เดียว ทุกบรรทัดจะถูกตัดแยกกัน และคิวโดยรวมจะถูกตัดออกหลังจากที่บรรทัดกลับมารวมกันอีกครั้ง เอนทิตีของตัวละครถูกปล่อยทิ้งไว้ตามลำพังโดยเจตนา: เอนทิตีเครื่องหมายและคือเนื้อหาที่ผู้ชมควรเห็น ไม่ใช่มาร์กอัป และตัวล้างที่ถอดรหัสจะเป็นการแก้ไขบทสนทนาแทนที่จะลบคำแนะนำออก

ตัวอย่างการทำงาน: การล้างการส่งออก 200-cue — อะไรเปลี่ยนแปลง อะไรยังคงอยู่ และวิธีการตรวจสอบผลลัพธ์

การล้างข้อมูลการส่งออกขนาดใหญ่จะเปลี่ยนแปลงน้อยกว่าที่ปรากฏ ใช้ไฟล์คิวสองร้อยไฟล์โดยที่ตัวแปลงนำหน้าโค้ดด้านบนของเฟรมเป็นหกสิบคิวและพันแท็กเน้นข้อความอีกสี่สิบ การแทนที่สองครั้งจะลบโค้ดและแท็ก ช่องว่างที่ผ่านจะยุบช่องว่างสองเท่าที่การลบทิ้งไว้ และตัวชี้นำสองร้อยตัวจะกลายเป็นสองร้อยตัวชี้นำด้วยคำเดียวกันและจังหวะเวลาเดียวกัน

อีกสองขั้นตอนสำคัญ คิวที่มีเนื้อหาทั้งหมดเป็นโค้ดจรจัดจะว่างเปล่าเมื่อโค้ดหายไป และคิวว่างจะถูกลบออกในพาสที่แยกจากกันแทนที่จะปล่อยเป็นบล็อกว่าง เนื่องจากคิวที่มีการประทับเวลาและไม่มีข้อความเป็นช่องว่างที่ผู้เล่นบางคนแสดงผลเป็นแฟลช การเขียนไฟล์กลับจะกำหนดหมายเลขคิวจากไฟล์หนึ่งและทำให้มันต่อเนื่องกัน ดังนั้นการลบออกจะไม่ทำให้เกิดช่องโหว่ในลำดับ ตรวจสอบผลลัพธ์โดยการเปรียบเทียบจำนวนคิวและการตรวจสอบเฉพาะบรรทัดใดๆ ที่แต่เดิมมีเอนทิตี

สิ่งนี้ไม่ครอบคลุมถึง — การเขียนข้อความใหม่ การสะกดคำ หรือการแปล; คำพูดนั้นเป็นของคุณ

การทำความสะอาดจะลบมาร์กอัปและไม่สัมผัสภาษา ไม่ได้แก้ไขการสะกด ขยายคำย่อ แก้ไขข้อผิดพลาดในการถอดเสียง หรือแปล ถ้าคำบรรยายพูดคำผิด มันก็จะพูดคำผิดในภายหลัง มีรูปแบบที่ถูกต้อง ขอบเขตนั้นเป็นการกระทำโดยเจตนา: เครื่องมือที่เขียนบทสนทนาขึ้นมาใหม่อย่างเงียบๆ ย่อมเป็นไปไม่ได้ที่จะเชื่อถือเนื้อหาที่ตนไม่เข้าใจ

อีกทั้งยังไม่ซ่อมแซมโครงสร้างอีกด้วย ไฟล์ที่บล็อกไม่มีการประทับเวลามีปัญหาในการแยกวิเคราะห์ ไม่ใช่การจัดรูปแบบ และการลบแท็กออกจากไฟล์จะไม่สร้างสัญญาณ ข้อผิดพลาดในการเข้ารหัสก็อยู่นอกขอบเขตเช่นเดียวกัน ไฟล์ที่ถอดรหัสด้วยชุดอักขระที่ไม่ถูกต้องจะทำให้ได้ตัวชี้นำที่มีรูปแบบสมบูรณ์แบบซึ่งมีข้อความผิด และไม่มีการลบแท็กจำนวนเท่าใดที่ตรวจพบ เนื่องจากไม่มีสิ่งใดเกี่ยวกับโครงสร้างที่เสียหาย

ประเด็นสำคัญ: ลบมาร์กอัป เก็บความหมาย — ขั้นตอนที่สะอาดของ Subtitle Toolkit จัดการกับความยุ่งเหยิงทั่วไปและบันทึกสิ่งที่เหลือไว้เพียงลำพังได้อย่างไร

กฎคือการลบมาร์กอัป ให้คงความหมายไว้ แท็กวงเล็บมุมและรหัสวงเล็บปีกกาใช้เนื่องจากเป็นคำสั่งที่ผู้เล่นจะเพิกเฉยหรือพิมพ์ออกมา ช่องว่างสองเท่าและช่องว่างภายในต่อบรรทัดเกิดขึ้นเนื่องจากเป็นสิ่งประดิษฐ์ของการลบออกหรือการส่งออกดั้งเดิม เอนทิตี เครื่องหมายวรรคตอน และทุกคำยังคงอยู่ เพราะนั่นคือสิ่งที่ผู้ชมตั้งใจจะอ่าน

เรียกใช้การส่งออกที่มีแท็กจำนวนมากผ่านตัวแปลง Subtitle Toolkit และเปรียบเทียบกับต้นฉบับแทนที่จะเชื่อถือเอาต์พุตในทันที ยืนยันว่าจำนวนคิวไม่เปลี่ยนแปลง ยกเว้นในกรณีที่คิวว่างเปล่าจริงๆ ตรวจสอบว่าบรรทัดใดๆ ที่มีเอนทิตียังคงมีอยู่ และสแกนบรรทัดที่กล่าวถึงโค้ดหรือคณิตศาสตร์เพื่อหาข้อความที่หายไปในวงเล็บมุมที่หลงทาง