How to use AI to transcribe, translate, and add subtitles to your videos

अपने लिए खाना पकाने के साथ-साथ घर के चारों ओर लैप्स चलना, जापानी कार्टून (या “एनीमे” जैसा कि बच्चे इसे बुला रहे हैं) कुछ ऐसे हैं जो मैंने संगरोध के दौरान प्यार करना सीखा है।

हालांकि, एनीमे को देखने में समस्या यह है कि जापानी सीखने की कमी है, आप अपनी भाषा में सामग्री को पोर्ट करने के लिए मानव अनुवादकों और आवाज अभिनेताओं पर निर्भर हो जाते हैं। कभी-कभी आपको सबटाइटल (“सब”) मिलता है, लेकिन वॉयसिंग (“डब”) नहीं। अन्य समय में, शो के पूरे सीज़न का बिल्कुल भी अनुवाद नहीं किया जाता है, और आपको अपनी सीट के किनारे पर केवल विकिपीडिया सारांश और 90 के दशक के वेब मंचों के माध्यम से छोड़ दिया जाता है ताकि आप अंधेरे से गुजर सकें।

तो आप क्या करने वाले हैं? इसका उत्तर स्पष्ट रूप से एक कंप्यूटर को जापानी से अंग्रेजी में एक टीवी शो के अनुवाद, अनुवाद, और आवाज-अभिनय के पूरे एपिसोड के लिए पूछने के लिए नहीं है। अनुवाद एक सावधान कला है जिसे स्वचालित नहीं किया जा सकता है और इसे मानव हाथ के प्यार भरे स्पर्श की आवश्यकता होती है। इसके अलावा, भले ही आपने वीडियो का अनुवाद करने के लिए मशीन लर्निंग का उपयोग किया हो, आप कंप्यूटर को डब करने के लिए उपयोग नहीं कर सकते … मेरा मतलब है, जो पूरे सीजन के लिए मशीन की आवाज़ सुनना चाहेंगे? यह भयानक होगा। केवल एक असली बीमारी यही चाहती होगी।

तो इस पोस्ट में, मैं आपको दिखाता हूँ कि एक भाषा से दूसरी भाषा में ट्रांस-ट्रांसलेशन, ट्रांसलेशन, और वॉयस-एक्ट वीडियो का उपयोग कैसे करें, अर्थात “AI- पावर्ड वीडियो डब।” यह आपको नेटफ्लिक्स-गुणवत्ता वाले परिणाम नहीं मिल सकता है, लेकिन आप इसका उपयोग ऑनलाइन बातचीत और YouTube वीडियो को चुटकी में स्थानीय करने के लिए कर सकते हैं। हम Google क्लाउड के उपयोग से ऑडियो को टेक्स्ट में ट्रांसक्रिप्ट करके शुरू करेंगे भाषण से पाठ एपीआई। अगला, हम उस पाठ का अनुवाद करेंगे एपीआई का अनुवाद करें। अंत में, हम “वॉयस एक्ट” का उपयोग करके अनुवाद करेंगे पाठ से वाक् एपीआई, जो डॉक्स के अनुसार, “मानवीय रूप” के अनुसार आवाज़ें पैदा करता है।

(वैसे, इससे पहले कि आप मुझे टिप्पणियों में लौ दें, मुझे आपको बताना चाहिए कि YouTube करेगा स्वचालित रूप से और मुफ्त में आपके लिए अपने वीडियो का अनुवाद और अनुवाद करें। तो आप इस परियोजना को अपने नए शौक को खरोंच से खट्टा करने के शौक की तरह मान सकते हैं: 30 घंटे का वास्तव में अक्षम उपयोग।)

AI- डब किए गए वीडियो: क्या वे आमतौर पर अच्छे लगते हैं?

इस यात्रा को शुरू करने से पहले, आप शायद जानना चाहते हैं कि आपको आगे क्या देखना है। एमएल-वीडियो-डबिंग पाइपलाइन से हम वास्तविक रूप से किस गुणवत्ता की उम्मीद कर सकते हैं?

यहां एक उदाहरण अंग्रेजी से स्पेनिश में स्वचालित रूप से डब किया गया है (उपशीर्षक भी अंग्रेजी में स्वचालित रूप से उत्पन्न होता है)। मैंने इस पर कोई ट्यूनिंग या समायोजन नहीं किया है:

जैसा कि आप देख सकते हैं, ट्रांस्क्रिप्शन सभ्य हैं लेकिन सही नहीं हैं, और अनुवादों के लिए भी यही है। (इस तथ्य को अनदेखा करें कि स्पीकर कभी-कभी बहुत तेज बोलता है – उस पर बाद में और अधिक।) कुल मिलाकर, आप आसानी से इस डब किए गए वीडियो से क्या हो रहा है इसका सार प्राप्त कर सकते हैं, लेकिन यह मानव-गुणवत्ता के बिल्कुल पास नहीं है।

क्या इस परियोजना को मुश्किल बनाता है (पढ़ें: अधिक मज़ेदार) यह है कि विफलता के कम से कम तीन संभावित बिंदु हैं:

  1. भाषण-से-पाठ एपीआई द्वारा वीडियो को ऑडियो से पाठ में गलत तरीके से प्रसारित किया जा सकता है
  2. अनुवाद एपीआई द्वारा उस पाठ को गलत या अजीब तरीके से अनुवादित किया जा सकता है
  3. उन अनुवादों को टेक्स्ट-टू-स्पीच एपीआई द्वारा गलत किया जा सकता है

मेरे अनुभव में, सबसे सफल डब किए गए वीडियो वे थे, जिनमें एक स्पष्ट ऑडियो स्ट्रीम पर एक स्पीकर दिखाया गया था और जिसे अंग्रेजी से दूसरी भाषा में डब किया गया था। यह बड़े पैमाने पर है क्योंकि प्रतिलेखन की गुणवत्ता (भाषण-से-पाठ) अन्य स्रोत भाषाओं की तुलना में अंग्रेजी में बहुत अधिक थी।

गैर-अंग्रेजी भाषाओं से डबिंग काफी चुनौतीपूर्ण साबित हुई। यहाँ मेरे पसंदीदा शो में से एक जापानी से अंग्रेजी में एक विशेष रूप से अप्रभावी डब है, डेथ नोट:

यदि आप मनुष्यों के लिए अनुवाद / डबिंग छोड़ना चाहते हैं, तो मैं आपको दोष नहीं दे सकता। लेकिन अगर नहीं, तो पढ़ें!

बिल्डिंग एअर इंडिया ट्रांसलेटिंग डबर

हमेशा की तरह, आप इस परियोजना के लिए सभी कोड पा सकते हैं मशीन लर्निंग गितुब रेपो के साथ बनाना। कोड को स्वयं चलाने के लिए, अपने क्रेडेंशियल्स को कॉन्फ़िगर करने और API को सक्षम करने के लिए README का पालन करें। यहाँ इस पोस्ट में, मैं अपने निष्कर्षों के माध्यम से उच्च स्तर पर चलूँगा।

सबसे पहले, यहां वे चरण हैं जिनका हम अनुसरण करेंगे:

  1. वीडियो फ़ाइलों से ऑडियो निकालें
  2. भाषण-से-पाठ एपीआई का उपयोग करके ऑडियो को पाठ में बदलें
  3. अनुवाद के लिए वाक्यों / खंडों में विभाजित पाठ को विभाजित करें
  4. पाठ का अनुवाद करें
  5. अनुवादित पाठ के बोले गए ऑडियो संस्करण उत्पन्न करें
  6. वीडियो में मूल स्पीकर के साथ संरेखित करने के लिए उत्पन्न ऑडियो को गति दें
  7. तह ऑडियो / वीडियो के शीर्ष पर नए ऑडियो सिलाई

मैं स्वीकार करता हूं कि जब मैंने पहली बार इस डबर को बनाने के लिए सेट किया था, तो मैं हबीस से भरा हुआ था – मुझे बस इतना करना था कि कुछ एपीआई एक साथ प्लग करें, क्या आसान हो सकता है? लेकिन एक प्रोग्रामर के रूप में, सभी हब्रिस को दंडित किया जाना चाहिए, और लड़का, क्या मुझे दंडित किया गया था।

चुनौतीपूर्ण बिट्स मैं ऊपर बोल्ड कर रहे हैं, जो मुख्य रूप से वीडियो के साथ अनुवाद संरेखित करने से आते हैं। लेकिन उस पर थोड़ा और अधिक।

Google क्लाउड स्पीच-टू-टेक्स्ट एपीआई का उपयोग करना

एक वीडियो का अनुवाद करने में पहला कदम अपने ऑडियो को शब्दों में बदलना है। ऐसा करने के लिए, मैंने Google क्लाउड का उपयोग किया भाषण से पाठ एपीआई। यह उपकरण 125 भाषाओं में बोले गए ऑडियो को पहचान सकता है, लेकिन जैसा कि मैंने ऊपर बताया है कि गुणवत्ता अंग्रेजी में सबसे अधिक है। हमारे उपयोग के मामले में, हम कुछ विशेष सुविधाओं को सक्षम करना चाहते हैं, जैसे:

  • उन्नत मॉडल। ये स्पीच-टू-टेक्स्ट मॉडल हैं, जिन्हें विशिष्ट डेटा प्रकारों (“वीडियो,” “phone_call”) पर प्रशिक्षित किया गया है और आमतौर पर उच्च-गुणवत्ता वाले होते हैं। हम निश्चित रूप से “वीडियो” मॉडल का उपयोग करेंगे।
  • निपुणता फ़िल्टर। यह ध्वज एपीआई को किसी भी शरारती शब्द को वापस करने से रोकता है।
  • शब्द समय ऑफसेट। यह ध्वज एपीआई को बताता है कि हम चाहते हैं कि प्रेषित शब्द उस समय के साथ लौटे, जो वक्ता ने उन्हें कहा था। हम स्रोत वीडियो के साथ हमारे उपशीर्षक और डब को संरेखित करने में मदद करने के लिए इन टाइमस्टैम्प का उपयोग करेंगे।
  • भाषण अनुकूलन। आमतौर पर, भाषण-से-पाठ असामान्य शब्दों या वाक्यांशों के साथ सबसे अधिक संघर्ष करता है। यदि आप जानते हैं कि कुछ शब्द या वाक्यांश आपके वीडियो में प्रदर्शित होने की संभावना है (यानी “ढाल वंश,” “वेक्टर मशीन का समर्थन करें)), तो आप उन्हें एक सरणी में एपीआई में पास कर सकते हैं जिससे आपके पास स्थानांतरित होने की अधिक संभावना होगी:

एपीआई शब्द-स्तर के टाइमस्टैम्प के साथ-साथ JSON के रूप में ट्रांसकोड पाठ लौटाता है। एक उदाहरण के रूप में, मैंने उत्कीर्ण किया यह विडियो। आप देख सकते हैं JSON एपीआई द्वारा लौटाया गया है यह जिस्ट। आउटपुट हमें त्वरित गुणवत्ता जांच करने की सुविधा देता है:

मैंने वास्तव में क्या कहा:

“सॉफ्टवेयर डेवलपर्स। हम अपनी रॉकिन शैली के लिए नहीं जाने जाते हैं, क्या हम हैं? या कर रहे हैं हम? आज, मैं आपको दिखाऊंगा कि कैसे मैंने प्रभावितों से प्रेरणा लेते हुए मुझे विधायक बनाने के लिए एमएल का इस्तेमाल किया। ”

एपीआई ने मुझे क्या कहा:

“सॉफ्टवेयर डेवलपर्स। हम अपनी रॉक और शैली के लिए नहीं जाने जाते हैं। क्या हम या हम आज हैं? मैं आपको दिखाऊंगा कि कैसे मैं नए ट्रेंडियर को प्रभावित करने वालों से प्रेरणा लेने के लिए एमएल का उपयोग करता हूं। ”

मेरे अनुभव में, यह उस गुणवत्ता के बारे में है जिसे आप उच्च-गुणवत्ता वाले अंग्रेजी ऑडियो को ट्रांसक्रिप्ट करते समय उम्मीद कर सकते हैं। ध्यान दें कि विराम चिह्न थोड़ा बंद है। यदि आप किसी वीडियो के दर्शकों को देखकर खुश हैं, तो यह संभवतः काफी अच्छा है, हालांकि यदि आप स्रोत भाषा बोलते हैं, तो अपने आप ही टेप को मैन्युअल रूप से सही करना आसान है।

इस बिंदु पर, हम उपशीर्षक (गैर-अनुवादित) उपशीर्षक उत्पन्न करने के लिए एपीआई आउटपुट का उपयोग कर सकते हैं। वास्तव में, यदि आप मेरी स्क्रिप्ट को `srt` ध्वज के साथ चलाते हैं, तो यह आपके लिए ठीक वही करेगा (srt बंद कैप्शन के लिए एक फ़ाइल प्रकार है):

मशीन अनुवाद

अब हमारे पास वीडियो टेप हैं, हम इसका उपयोग कर सकते हैं एपीआई का अनुवाद करें … उह … उनका अनुवाद करें।

यह वह जगह है जहां चीजें थोड़ी to होनी शुरू होती हैं।

हमारा उद्देश्य यह है: हम मूल वीडियो में शब्दों का अनुवाद करने में सक्षम होना चाहते हैं और फिर उन्हें लगभग उसी समय में वापस खेलना चाहते हैं, ताकि मेरी “डब” आवाज मेरी वास्तविक आवाज के साथ संरेखण में बोल रही हो।

हालाँकि, समस्या यह है कि अनुवाद शब्द-दर-शब्द नहीं हैं। अंग्रेजी से जापानी में अनुवादित एक वाक्य में एक शब्द आदेश उछल सकता है। इसमें कम शब्द, अधिक शब्द, विभिन्न शब्द, या (मुहावरों के मामले में) पूरी तरह से अलग शब्द हो सकते हैं।

इसका एक तरीका है कि हम इसे पूरा कर सकें वाक्य और फिर उन वाक्यों की समय सीमाओं को संरेखित करने की कोशिश कर रहा है। लेकिन यह भी जटिल हो जाता है, क्योंकि आप एक वाक्य को कैसे निरूपित करते हैं? अंग्रेजी में, हम शब्दों को विराम चिह्न से विभाजित कर सकते हैं, अर्थात:

लेकिन विराम चिह्न भाषा से भिन्न होता है (अंग्रेजी में कोई English नहीं है), और कुछ भाषाएं विराम चिह्नों द्वारा अलग-अलग वाक्य नहीं बनाती हैं।

साथ ही, में असली जीवन भाषण, हम अक्सर पूर्ण वाक्यों में बात नहीं करते हैं। Y’know?

एक और शिकन जो अनुवाद के लिप्यंतरण को कठिन बनाती है, वह है, सामान्य तौर पर अधिक संदर्भ आप एक अनुवाद मॉडल में फ़ीड करते हैं, उच्च गुणवत्ता वाला अनुवाद जिसकी आप अपेक्षा कर सकते हैं। उदाहरण के लिए, यदि मैं निम्नलिखित वाक्य का फ्रेंच में अनुवाद करता हूं:

“मुझे नीला लग रहा है, लेकिन मुझे गुलाबी भी पसंद है।”

मुझे अनुवाद मिलेगा:

“जी मुझे होश उड़ा दो, माई जे’आईम औसी ले गुलाब।”

यह सही है। लेकिन अगर मैं उस वाक्य को दो में विभाजित करता हूं (“मैं नीला महसूस कर रहा हूं” और “लेकिन मुझे गुलाबी भी पसंद है”) और प्रत्येक भाग का अलग-अलग अनुवाद करें, तो मुझे पता है:

“जे मुझे सनसनी ट्रिस्ट, माई जे’आईमे औसी ले गुलाब”, “मैं दुखी महसूस कर रहा हूं, लेकिन मुझे भी गुलाबी पसंद है।”

यह सब कहना है कि जितना अधिक हम अनुवाद एपीआई में भेजने से पहले पाठ को काटते हैं, अनुवाद उतना ही खराब होगा (हालांकि वीडियो के साथ अस्थायी रूप से उन्हें संरेखित करना आसान होगा)।

अंततः, मैंने जो रणनीति चुनी, उसे हर बार बोलने वाले शब्दों को विभाजित करना था, जबकि बोलने वाले ने बोलने में एक-से-एक से अधिक बार विराम लिया। यहाँ एक उदाहरण दिया गया है जो ऐसा दिखता था:

यह स्वाभाविक रूप से कुछ अजीब अनुवाद (यानी “हम हैं” का अनुवाद करने के लिए एक अजीब टुकड़ा है), लेकिन मैंने पाया कि यह काफी अच्छी तरह से काम किया। यहाँ है जहां कोड में वह तर्क दिखता है।

साइड बार: मैंने यह भी देखा कि स्पीच-टू-टेक्स्ट एपीआई द्वारा लौटे टाइमस्टैम्प की सटीकता गैर-अंग्रेजी भाषाओं के लिए काफी कम थी, जिसने गैर-अंग्रेजी-से-अंग्रेजी डबिंग की गुणवत्ता को और कम कर दिया।

और एक आखिरी बात। यदि आप पहले से ही जानते हैं कि आप कुछ शब्दों का अनुवाद कैसे करना चाहते हैं (यानी मेरा नाम, “डेल,” हमेशा बस “डेल” में अनुवादित होना चाहिए), तो आप अनुवाद एपीआई की “शब्दावली” सुविधा का लाभ उठाकर अनुवाद की गुणवत्ता में सुधार कर सकते हैं। उन्नत किया हुआ। मैंने उस बारे में एक ब्लॉग पोस्ट लिखा था यहां

द मीडिया ट्रांसलेशन एपीआई

जैसा कि होता है, Google क्लाउड एक नए एपीआई पर काम कर रहा है जो बोले गए शब्दों के अनुवाद की समस्या से निपटने के लिए है। इसे कहा जाता है मीडिया ट्रांसलेशन एपीआई, और यह सीधे ऑडियो पर अनुवाद चलाता है (अर्थात कोई लिखित पाठ मध्यस्थ नहीं)। मैं इस प्रोजेक्ट में उस एपीआई का उपयोग नहीं कर पाया क्योंकि यह अभी तक टाइमस्टैम्प (टूल वर्तमान में बीटा में नहीं है), लेकिन मुझे लगता है कि भविष्य के पुनरावृत्तियों में इसका उपयोग करना बहुत अच्छा होगा!

भाषण के पाठ

अब मज़ेदार बिट के लिए-कंप्यूटर की आवाज़ें निकाल रहे हैं! अगर आप मेरे बारे में पढ़ते हैं PDF-to-Audiobook कनवर्टर, आप जानते हैं कि मुझे एक अजीब-सी कंप्यूटर आवाज सुनाई देती है। डबिंग के लिए ऑडियो जेनरेट करने के लिए, मैंने Google क्लाउड का उपयोग किया पाठ से वाक् एपीआई। टीटीएस एपीआई विभिन्न लहजे के साथ विभिन्न भाषाओं में बहुत सी अलग-अलग आवाज़ें पैदा कर सकता है, जिन्हें आप ढूंढ सकते हैं और खेल सकते हैं यहां। “स्टैण्डर्ड” आवाजें थोड़ी बहुत लग सकती हैं, एर, टिन्नी, अगर आप जानते हैं कि मेरा क्या मतलब है, लेकिन वेवनेट आवाज, जो उच्च गुणवत्ता वाले तंत्रिका नेटवर्क द्वारा उत्पन्न होते हैं, ध्वनि शालीनता से मानव।

यहाँ मैं एक और समस्या में भाग गया जिसे मैंने कभी नहीं देखा: क्या होगा अगर एक कंप्यूटर की आवाज़ एक वीडियो के मूल स्पीकर की तुलना में बहुत धीमी गति से बोलती है, ताकि उत्पन्न ऑडियो फ़ाइल बहुत लंबी हो? तब डब्स को स्रोत वीडियो में संरेखित करना असंभव होगा। या, क्या होगा अगर एक अनुवाद मूल शब्द की तुलना में अधिक क्रिया है, जिससे एक ही समस्या हो सकती है?

इस मुद्दे से निपटने के लिए, मैं के साथ खेला speakingRate पाठ से वाक् एपीआई में उपलब्ध पैरामीटर। इससे आप कंप्यूटर की आवाज को तेज या धीमा कर सकते हैं:

तो, अगर यह कंप्यूटर ले लिया लंबे समय तक वीडियो के मूल स्पीकर की तुलना में एक वाक्य बोलने के लिए, मैंने कंप्यूटर और मानव द्वारा समान समय के बारे में उठाए जाने तक SpeakRate को बढ़ा दिया।

थोड़ा जटिल लगता है? यहाँ कोड कैसा दिखता है:

इसने ऑडियो को वीडियो में संरेखित करने की समस्या को हल कर दिया, लेकिन कभी-कभी इसका मतलब यह था कि मेरे डब में कंप्यूटर स्पीकर थोड़ा अजीब थे। परंतु वह है V2 के लिए एक समस्या।

क्या यह लायक था?

आप अभिव्यक्ति जानते हैं, “बेवकूफ खेल खेलते हैं, बेवकूफ पुरस्कार जीतते हैं?” ऐसा लगता है कि मेरे द्वारा बनाए गए प्रत्येक एमएल प्रोजेक्ट में प्यार का कुछ अंश है, लेकिन इस बार, मैं अपने बेवकूफ पुरस्कार से प्यार करता हूं: असीमित संख्या में अजीब, रोबोट, अजीब एनीमे डब उत्पन्न करने की क्षमता, जो कभी-कभी थोड़े सभ्य होते हैं।

मेरे परिणाम यहां देखें: