كيفية استخراج نص نظيف من ملفات ترجمة SRT أو VTT
استخراج الحوار المجرد من ملف ترجمة يبدو أمرًا بسيطًا إلى أن تواجه أرقام الـ cues، التوقيتات الزمنية، والجمل المقسومة في منتصفها. هذه هي الطريقة الصحيحة لفعل ذلك.
تُخزّن ملفات الترجمة ثلاثة عناصر متشابكة معًا: رقم فهرسي، ونطاق توقيت زمني، والنص الفعلي. إذا كان كل ما تريده هو النص (لاقتباس في مقال، أو مقالة، أو فهرس بحث، أو تمريره لأداة أخرى)، فإن التوقيت والترقيم مجرد تشويش عليك إزالته.
الطريقة اليدوية، وأين تفشل
عملية بحث واستبدال سريعة باستخدام تعبير نمطي (regex) لسطور التوقيت الزمني (\d{2}:\d{2}:\d{2}[,.]\d{3}\s*-->\s*...) تتعامل مع الحالة الواضحة. أما حيث تنهار هذه الطريقة:
- أرقام cues تبدو كنص. سطر يحتوي فقط على
42قد يكون فهرس cue، أو، في حالات نادرة، جزءًا من الحوار الفعلي (شخصية تقرأ رقمًا بصوت عالٍ). لا يمكن للإزالة الساذجة التمييز بين الحالتين بشكل موثوق على نطاق واسع دائمًا. - جمل مقسومة بين عدة cues. تُقسّم الترجمة لتناسب القراءة على الشاشة (سطر واحد تقريبًا لكل عدة ثوانٍ)، لا لقواعد النحو. تمتد الجملة الواحدة بشكل روتيني على مقطعين أو ثلاثة متتالية. إزالة سطور التوقيت دون إعادة دمج الأجزاء يترك لك قطعًا متقطعة ومنفصلة من الجملة بدلًا من نص متدفق.
- علامات تنسيق مضمّنة.
<i>و<b>، وعلامات الصوت/اللون في VTT (<v Speaker>،<c.colorname>) يجب إزالتها أيضًا، وإلا ستظهر كنص حرفي بين أقواس زاوية في المخرجات. - نهايات سطور مختلطة. الملفات المُصدّرة من أدوات أو أنظمة تشغيل مختلفة تخلط أحيانًا بين
\r\nو\n، وهذا قد يُعطّل أنماط regex التي تفترض نوعًا واحدًا فقط.
كيف تبدو المخرجات الجيدة
النص المُستخرج بشكل صحيح يُقرأ كنص نثري عادي: جمل كاملة، وفواصل فقرات في مواضع التوقف الطبيعية، بلا أرقام شاردة أو أجزاء توقيت متبقية، بلا علامات تنسيق متبقية. الهدف هو وثيقة تُقرأ كما لو أن شخصًا قام بتفريغ الحوار مباشرة من البداية، دون أي أثر لصيغة الترجمة التي جاءت منها.
القيام بذلك دون التنظيف اليدوي
تتعامل أداتنا لتحويل SRT إلى TXT (وأداة تحويل VTT إلى TXT المماثلة) مع كل هذا تلقائيًا: إزالة أرقام cues والتوقيتات الزمنية، إزالة العلامات، وإعادة دمج الجمل المقسومة بين عدة cues في فقرات متماسكة. تعمل بالكامل داخل متصفحك، لذا لا يُرسل أي شيء من الملف إلى أي مكان.