كيفية استخدام الذكاء الاصطناعي في نسخ مقاطع الفيديو وترجمتها وإضافة ترجمات مصاحبة لها

18

إلى جانب الطهي لنفسي والسير في جولات في المنزل ، فإن الرسوم الكرتونية اليابانية (أو “الأنمي” كما يسميها الأطفال) هي شيء تعلمت أن أحبه أثناء الحجر الصحي.

ومع ذلك ، فإن مشكلة مشاهدة الرسوم المتحركة هي أنه بسبب نقص تعلم اللغة اليابانية ، فإنك تصبح معتمدًا على مترجمين بشريين وممثلين صوتيين لنقل المحتوى إلى لغتك. أحيانًا تحصل على الترجمة (“Subs”) ولكن لا تحصل على الأصوات (“dubs”). في أوقات أخرى ، لا تتم ترجمة مواسم كاملة من العروض على الإطلاق ، وتتركك على حافة مقعدك مع ملخصات Wikipedia ومنتديات الويب من التسعينيات فقط لتنقلك عبر الظلام.

إذن ماذا يفترض أن تفعل؟ من الواضح أن الإجابة هي عدم مطالبة الكمبيوتر بنسخ وترجمة حلقات كاملة من برنامج تلفزيوني من اليابانية إلى الإنجليزية. الترجمة فن دقيق لا يمكن أتمتة ويتطلب لمسة محبة من يد الإنسان. علاوة على ذلك ، حتى لو استخدمت التعلم الآلي لترجمة مقطع فيديو ، فلا يمكنك استخدام جهاز كمبيوتر للدبلجة … أعني ، من سيرغب في الاستماع إلى أصوات الآلة لموسم كامل؟ سيكون الأمر مروعًا. فقط مريض حقيقي يريد ذلك.

لذا في هذا المنشور ، سأوضح لك كيفية استخدام التعلم الآلي في نسخ مقاطع الفيديو وترجمتها والتفاعل الصوتي من لغة إلى أخرى ، مثل “مقاطع فيديو مدعومة بالذكاء الاصطناعي”. قد لا تحصل على نتائج بجودة Netflix ، ولكن يمكنك استخدامها لترجمة المحادثات عبر الإنترنت ومقاطع فيديو YouTube في لمح البصر. سنبدأ بتحويل الصوت إلى نص باستخدام Google Cloud تحويل الكلام إلى نص API. بعد ذلك ، سنقوم بترجمة هذا النص بامتداد ترجمة API. أخيرًا ، سنقوم “بصوت” الترجمات باستخدام تحويل النص إلى كلام API، والتي تنتج أصواتًا “شبيهة بالبشر” وفقًا للمستندات.

(بالمناسبة ، قبل أن تشعلني في التعليقات ، يجب أن أخبرك أن YouTube سيفعل ذلك تلقائيا ومجانا نسخ وترجم مقاطع الفيديو الخاصة بك. لذا يمكنك التعامل مع هذا المشروع على أنه هوايتك الجديدة لخبز العجين المخمر من الصفر: استخدام غير فعال حقًا لمدة 30 ساعة.)

مقاطع الفيديو المدبلجة بالذكاء الاصطناعي: هل تبدو جيدة عادةً؟

قبل الشروع في هذه الرحلة ، ربما تريد أن تعرف ما الذي يجب أن تتطلع إليه. ما هي الجودة التي يمكن أن نتوقع تحقيقها بشكل واقعي من خط أنابيب ML-video-dubbing؟

إليك مثال واحد مُدبلج تلقائيًا من الإنجليزية إلى الإسبانية (يتم أيضًا إنشاء الترجمات المصاحبة تلقائيًا باللغة الإنجليزية). لم أقم بأي ضبط أو تعديل عليه:

https://www.youtube.com/watch؟v=cURHKESgNaI

كما ترون ، فإن التدوينات الصوتية لائقة ولكنها ليست مثالية ، ونفس الشيء بالنسبة للترجمات. (تجاهل حقيقة أن المتحدث أحيانًا يتكلم بسرعة كبيرة – المزيد عن ذلك لاحقًا.) بشكل عام ، يمكنك بسهولة معرفة جوهر ما يحدث من هذا الفيديو المدبلج ، ولكنه ليس قريبًا تمامًا من الجودة البشرية.

ما يجعل هذا المشروع أكثر تعقيدًا (اقرأ: أكثر متعة) من معظمه هو أن هناك على الأقل ثلاث نقاط محتملة للفشل:

  1. يمكن نسخ الفيديو بشكل غير صحيح من صوت إلى نص بواسطة Speech-to-Text API
  2. يمكن ترجمة هذا النص بشكل غير صحيح أو محرج بواسطة واجهة برمجة تطبيقات الترجمة
  3. يمكن أن يتم نطق هذه الترجمات بشكل خاطئ بواسطة واجهة برمجة تطبيقات تحويل النص إلى كلام

من واقع خبرتي ، فإن أنجح مقاطع الفيديو المدبلجة كانت تلك التي تضم متحدثًا واحدًا عبر دفق صوتي واضح والتي تمت دبلجتها من الإنجليزية إلى لغة أخرى. ويرجع ذلك إلى حد كبير إلى أن جودة النسخ (تحويل الكلام إلى نص) كانت أعلى في اللغة الإنجليزية منها في لغات المصدر الأخرى.

أثبتت الدبلجة من اللغات غير الإنجليزية أنها أكثر صعوبة إلى حد كبير. إليكم إعلانًا متواضعًا بشكل خاص من اليابانية إلى الإنجليزية لأحد عروضي المفضلة ، Death Note:

https://www.youtube.com/watch؟v=gWNRfeEHmp4

إذا كنت تريد ترك الترجمة / الدبلجة للبشر ، حسنًا ، لا يمكنني إلقاء اللوم عليك. ولكن إذا لم يكن كذلك ، واصل القراءة!

بناء دوببر للذكاء الاصطناعي

كما هو الحال دائمًا ، يمكنك العثور على جميع الأكواد الخاصة بهذا المشروع في ملف صنع باستخدام التعلم الآلي Github repo. لتشغيل الكود بنفسك ، اتبع README لتكوين بيانات الاعتماد الخاصة بك وتمكين واجهات برمجة التطبيقات. هنا في هذا المنشور ، سأستعرض النتائج التي توصلت إليها على مستوى عالٍ.

أولاً ، إليك الخطوات التي سنتبعها:

  1. استخراج الصوت من ملفات الفيديو
  2. تحويل الصوت إلى نص باستخدام Speech-to-Text API
  3. قسّم النص المكتوب إلى جمل / مقاطع للترجمة
  4. ترجمة نص
  5. إنشاء نسخ صوتية منطوقة من النص المترجم
  6. قم بتسريع الصوت الذي تم إنشاؤه لمحاذاة السماعة الأصلية في الفيديو
  7. قم بتجميع الصوت الجديد أعلى الجزء المرئي من الصوت / الفيديو

أعترف أنه عندما شرعت في بناء هذا الجهاز لأول مرة ، كنت مليئًا بالغطرسة – كل ما كان علي فعله هو توصيل عدد قليل من واجهات برمجة التطبيقات معًا ، ما الذي يمكن أن يكون أسهل؟ لكن بصفتي مبرمجًا ، يجب معاقبة كل غطرسة ، وقد عوقبت يا فتى.

الأجزاء الصعبة هي تلك التي أعددتها بالخط العريض أعلاه ، والتي تأتي أساسًا من الاضطرار إلى محاذاة الترجمات مع الفيديو. ولكن أكثر على ذلك في شيء.

استخدام Google Cloud Speech-to-Text API

الخطوة الأولى في ترجمة مقطع فيديو هي تحويل الصوت إلى كلمات. للقيام بذلك ، استخدمت Google Cloud تحويل الكلام إلى نص API. يمكن لهذه الأداة التعرف على الصوت المنطوق بـ 125 لغة ، ولكن كما ذكرت أعلاه ، فإن الجودة هي الأعلى في اللغة الإنجليزية. بالنسبة لحالة الاستخدام الخاصة بنا ، سنرغب في تمكين ميزتين خاصتين ، مثل:

  • النماذج المحسنة. هذه هي نماذج تحويل الكلام إلى نص التي تم تدريبها على أنواع بيانات محددة (“الفيديو” ، “الهاتف_المكالمة”) وعادة ما تكون ذات جودة أعلى. سنستخدم نموذج “الفيديو” بالطبع.
  • مرشحات الألفاظ النابية. تمنع هذه العلامة API من إرجاع أي كلمات بذيئة.
  • كلمة إزاحة الوقت. تخبر هذه العلامة واجهة برمجة التطبيقات (API) أننا نريد إعادة الكلمات المكتوبة جنبًا إلى جنب مع الأوقات التي قالها المتحدث. سنستخدم هذه الطوابع الزمنية للمساعدة في مواءمة ترجماتنا ودبلجاتنا مع الفيديو المصدر.
  • تكييف الكلام. عادةً ما يكون تحويل الكلام إلى نص هو الأكثر صعوبة مع الكلمات أو العبارات غير الشائعة. إذا كنت تعرف أنه من المحتمل ظهور كلمات أو عبارات معينة في الفيديو الخاص بك (مثل “هبوط متدرج” ، “آلة متجه الدعم”) ، فيمكنك تمريرها إلى واجهة برمجة التطبيقات في مصفوفة تزيد من احتمالية نسخها:

تقوم واجهة برمجة التطبيقات بإرجاع النص المكتوب جنبًا إلى جنب مع الطوابع الزمنية على مستوى الكلمة بتنسيق JSON. على سبيل المثال ، قمت بنسخها هذا الفيديو. يمكنك رؤية JSON الذي تم إرجاعه بواسطة API بتنسيق هذا جوهر. يتيح لنا الإخراج أيضًا إجراء فحص سريع للجودة:

ما قلته بالفعل:

“مطوري البرامج. نحن لسنا معروفين بأسلوب موسيقى الروك الخاص بنا ، أليس كذلك؟ أو نكون نحن؟ اليوم ، سأوضح لك كيف استخدمت ML لأجعلني أكثر عصرية ، مستوحاة من المؤثرين “.

ما اعتقدت API قلته:

“مطوري البرامج. نحن لسنا معروفين بموسيقى الروك والأناقة. هل نحن ام نحن اليوم؟ سأوضح لك كيف أستخدم ml لأجعل مواكبة الموضة الجديدة مستوحاة من المؤثرين “.

من واقع خبرتي ، يتعلق الأمر بالجودة التي يمكن أن تتوقعها عند نسخ صوت إنجليزي عالي الجودة. لاحظ أن علامات الترقيم قليلة. إذا كنت راضيًا عن حصول المشاهدين على جوهر مقطع فيديو ، فمن المحتمل أن يكون هذا جيدًا بما يكفي ، على الرغم من أنه من السهل تصحيح النصوص يدويًا بنفسك إذا كنت تتحدث اللغة المصدر.

في هذه المرحلة ، يمكننا استخدام إخراج API لإنشاء ترجمات (غير مترجمة). في الواقع ، إذا قمت بتشغيل البرنامج النصي الخاص بي بعلامة “–srt” ، فسوف يفعل ذلك بالضبط من أجلك (srt هو نوع ملف للتعليقات التوضيحية المغلقة):

 

 

الترجمة الآلية

الآن بعد أن أصبح لدينا نصوص الفيديو ، يمكننا استخدام ترجمة API لترجمتها.

هذا هو المكان الذي تبدأ فيه الأشياء في الحصول على القليل 🤪.

هدفنا هو هذا: نريد أن نكون قادرين على ترجمة الكلمات في الفيديو الأصلي ثم إعادة تشغيلها في نفس الوقت تقريبًا ، بحيث يتحدث صوتي “المدبلج” بما يتماشى مع صوتي الفعلي.

لكن المشكلة تكمن في أن الترجمات ليست كلمة بكلمة. قد تحتوي الجملة المترجمة من الإنجليزية إلى اليابانية على ترتيب كلمات مختلط. قد يحتوي على عدد أقل من الكلمات ، أو كلمات أكثر ، أو كلمات مختلفة ، أو (كما هو الحال مع المصطلحات) صياغة مختلفة تمامًا.

إحدى الطرق التي يمكننا من خلالها التغلب على ذلك هي ترجمة الكل جمل ثم محاولة محاذاة الحدود الزمنية لتلك الجمل. لكن حتى هذا يصبح معقدًا ، لأنه كيف تدل على جملة واحدة؟ في اللغة الإنجليزية ، يمكننا تقسيم الكلمات بعلامات الترقيم ، أي:

لكن تختلف علامات الترقيم باختلاف اللغة (لا توجد علامة في اللغة الإنجليزية) ، وبعض اللغات لا تفصل الجمل بعلامات الترقيم على الإطلاق.

بالإضافة إلى ذلك ، في الحياه الحقيقيه الكلام ، غالبًا لا نتحدث بجمل كاملة. هل تعلم؟

التجاعيد الأخرى التي تجعل ترجمة النصوص صعبة هي أنه بشكل عام ، ملف أكثر السياق الذي تغذيه في نموذج الترجمة ، كلما كانت الترجمة عالية الجودة التي يمكنك توقعها. على سبيل المثال ، إذا قمت بترجمة الجملة التالية إلى الفرنسية:

“أشعر باللون الأزرق ، لكني أحب اللون الوردي أيضًا.”

سأحصل على الترجمة:

“أشعر باللون الأزرق ، لكني أحب اللون الوردي أيضًا.”

هذا دقيق. ولكن إذا قسمت هذه الجملة إلى جزأين (“أشعر باللون الأزرق” و “لكني أحب اللون الوردي أيضًا”) وترجمت كل جزء على حدة ، فسأحصل على:

“أشعر بالحزن ، لكنني أيضًا أحب اللون الوردي” ، أي “أشعر بالحزن ، لكني أحب اللون الوردي أيضًا.”

هذا كله يعني أنه كلما قمنا بتقطيع النص قبل إرساله إلى Translate API ، كانت جودة الترجمة أسوأ (على الرغم من أنه سيكون من الأسهل مواءمتها مؤقتًا مع الفيديو).

في النهاية ، كانت الإستراتيجية التي اخترتها هي تقسيم الكلمات المنطوقة في كل مرة يتوقف فيها المتحدث أكثر من ثانية واحدة في التحدث. فيما يلي مثال لما بدا عليه ذلك:


أدى هذا بطبيعة الحال إلى بعض الترجمات المحرجة (على سبيل المثال ، “أو نحن” هي جزء غريب للترجمة) ، لكنني وجدت أنها تعمل بشكل جيد بما فيه الكفاية. هنا حيث يبدو هذا المنطق في الكود.

الشريط الجانبي: لقد لاحظت أيضًا أن دقة الطوابع الزمنية التي تم إرجاعها بواسطة Speech-to-Text API كانت أقل بشكل ملحوظ بالنسبة للغات غير الإنجليزية ، مما قلل من جودة الدبلجة غير الإنجليزية إلى الإنجليزية.

وشيء أخير. إذا كنت تعرف بالفعل كيف تريد ترجمة كلمات معينة (على سبيل المثال ، يجب دائمًا ترجمة اسمي “ديل” ببساطة إلى “ديل”) ، يمكنك تحسين جودة الترجمة من خلال الاستفادة من ميزة “المسرد” في واجهة برمجة تطبيقات الترجمة متقدم. لقد كتبت مدونة عن ذلك هنا.

واجهة برمجة تطبيقات ترجمة الوسائط

كما يحدث ، تعمل Google Cloud على واجهة برمجة تطبيقات جديدة للتعامل تمامًا مع مشكلة ترجمة الكلمات المنطوقة. يطلق عليه واجهة برمجة تطبيقات ترجمة الوسائط، ويقوم بتشغيل الترجمة على الصوت مباشرة (أي لا يوجد وسيط نص مكتوب). لم أتمكن من استخدام واجهة برمجة التطبيقات هذه في هذا المشروع لأنها لا تُرجع الطوابع الزمنية (الأداة حاليًا في مرحلة تجريبية) ، لكنني أعتقد أنه سيكون من الرائع استخدامها في التكرارات المستقبلية!

النص إلى الكلام

الآن من أجل المتعة – انتقاء أصوات الكمبيوتر! إذا قرأت عن بلدي محول PDF إلى كتاب مسموع، أنت تعلم أنني أحب صوت الكمبيوتر المضحك. لإنشاء صوت للدبلجة ، استخدمت Google Cloud تحويل النص إلى كلام API. يمكن لواجهة برمجة تطبيقات TTS إنشاء الكثير من الأصوات المختلفة بلغات مختلفة بلهجات مختلفة ، والتي يمكنك العثور عليها واللعب بها هنا. قد تبدو الأصوات “القياسية” قليلاً ، إيه ، صفيحي، إذا كنت تعرف ما أعنيه ، ولكن ويف نت أصوات، والتي يتم إنشاؤها بواسطة شبكات عصبية عالية الجودة ، تبدو إنسانية كريمة.

واجهت هنا مشكلة أخرى لم أتوقعها: ماذا لو كان صوت الكمبيوتر يتكلم أبطأ بكثير من مكبر الصوت الأصلي للفيديو ، بحيث يكون ملف الصوت الذي تم إنشاؤه طويلًا جدًا؟ ثم سيكون من المستحيل أن تتماشى الدبلات مع الفيديو المصدر. أو ماذا لو كانت الترجمة مطولة أكثر من الصياغة الأصلية ، مما أدى إلى نفس المشكلة؟

للتعامل مع هذه المشكلة ، لعبت مع speakingRate المعلمة المتاحة في واجهة برمجة تطبيقات تحويل النص إلى كلام. يتيح لك ذلك تسريع صوت الكمبيوتر أو إبطائه:

 

 

لذا ، إذا استغرق الأمر جهاز الكمبيوتر طويل للتحدث بجملة أكثر من المتحدث الأصلي للفيديو ، قمت بزيادة معدل التحدث حتى يستغرق الكمبيوتر والإنسان نفس الوقت تقريبًا.

يبدو معقدًا بعض الشيء؟ هذا ما يبدو عليه الرمز:

 

 

أدى هذا إلى حل مشكلة محاذاة الصوت مع الفيديو ، لكنه كان يعني في بعض الأحيان أن مكبرات صوت الكمبيوتر في الدبلومات الخاصة بي كانت سريعة بشكل محرج. ولكن هذا مشكلة ل V2.

هل كان يستحق؟

أنت تعرف التعبير ، “العب ألعابًا غبية ، اربح جوائز غبية؟” يبدو أن كل مشروع ML أقوم ببنائه هنا هو شيء من عمل الحب ، لكن هذه المرة ، أحب جائزتي الغبية: القدرة على إنشاء عدد غير محدود من أنواع الأنيمي الغريبة والروبوتية والمربكة ، والتي تكون أحيانًا مناسبة نوعًا ما.

تحقق من نتائجي هنا:

https://www.youtube.com/watch؟v=T2TAAHmNBnE