कल्पना कीजिए कि एक सर्जन मानव अनुवादक की आवश्यकता के बिना दुनिया भर के रोगियों के साथ वीडियो कॉल कर रहा है। क्या होगा यदि एक नवोदित स्टार्टअप एक लाइव मानव अनुवादक की आवश्यकता के बिना, तरल, सटीक, बहुभाषी ग्राहक सहायता और बिक्री की पेशकश करके अपने उत्पाद को सीमाओं के पार और नए भौगोलिक बाजारों में आसानी से विस्तारित कर सकता है? जब आप भाषा से बंधे नहीं रहेंगे तो आपके व्यवसाय का क्या होगा?
आज अंतरराष्ट्रीय टीमों और कई अलग-अलग भाषाएं बोलने वाले ग्राहकों के साथ वर्चुअल मीटिंग करना आम बात है। चाहे वे आंतरिक या बाहरी बैठकें हों, अर्थ अक्सर जटिल चर्चाओं में खो जाता है और आपको भाषा की बाधाओं का सामना करना पड़ सकता है जो आपको उतने प्रभावी होने से रोकते हैं जितना आप हो सकते हैं।
इस पोस्ट में, आप सीखेंगे कि तीन पूरी तरह से प्रबंधित AWS सेवाओं का उपयोग कैसे करें (Amazon Transcribe, अमेज़न अनुवाद, तथा अमेज़ॅन पोली) एक निकट-वास्तविक समय के वाक्-से-वाक् अनुवादक समाधान का निर्माण करने के लिए जो किसी स्रोत स्पीकर के लाइव वॉयस इनपुट को बोली जाने वाली, सटीक, अनुवादित लक्ष्य भाषा में अनुवाद कर सकता है, सभी शून्य मशीन लर्निंग (एमएल) अनुभव के साथ।
समाधान का अवलोकन
हमारे अनुवादक में तीन पूरी तरह से प्रबंधित एडब्ल्यूएस एमएल सेवाएं शामिल हैं जो एक ही पायथन लिपि में एक साथ काम कर रही हैं अजगर के लिए AWS SDK (Boto3) हमारे टेक्स्ट अनुवाद और टेक्स्ट-टू-स्पीच भागों के लिए, और ऑडियो इनपुट ट्रांसक्रिप्शन के लिए एक एसिंक्रोनस स्ट्रीमिंग एसडीके।
अमेज़ॅन ट्रांसक्राइब: स्ट्रीमिंग स्पीच टू टेक्स्ट
हमारे स्टैक में आपके द्वारा उपयोग की जाने वाली पहली सेवा अमेज़ॅन ट्रांसक्राइब है, जो पूरी तरह से प्रबंधित भाषण-से-पाठ सेवा है जो इनपुट भाषण लेती है और इसे पाठ में स्थानांतरित करती है। अमेज़ॅन ट्रांसक्राइब में लचीली अंतर्ग्रहण विधियाँ, बैच या स्ट्रीमिंग हैं, क्योंकि यह संग्रहीत ऑडियो फ़ाइलों या स्ट्रीमिंग ऑडियो डेटा को स्वीकार करता है। इस पोस्ट में, आप का उपयोग करते हैं अतुल्यकालिक अमेज़ॅन पायथन के लिए स्ट्रीमिंग एसडीके ट्रांसक्राइब करें, जो लाइव ऑडियो स्ट्रीम करने और लाइव ट्रांसक्रिप्शन प्राप्त करने के लिए HTTP / 2 स्ट्रीमिंग प्रोटोकॉल का उपयोग करता है।
जब हमने पहली बार इस प्रोटोटाइप का निर्माण किया था, तब Amazon Transcribe स्ट्रीमिंग अंतर्ग्रहण ने स्वचालित भाषा पहचान का समर्थन नहीं किया था, लेकिन अब नवंबर 2021 तक ऐसा नहीं है। बैच और स्ट्रीमिंग अंतर्ग्रहण दोनों अब सभी के लिए स्वचालित भाषा पहचान का समर्थन करते हैं। समर्थित भाषाएँ. इस पोस्ट में, हम दिखाते हैं कि कैसे एक पैरामीटर-आधारित समाधान, हालांकि एक सहज बहु-भाषा पैरामीटर रहित डिज़ाइन स्ट्रीमिंग स्वचालित भाषा पहचान के उपयोग के माध्यम से संभव है। हमारे लिखित भाषण खंड को पाठ के रूप में वापस करने के बाद, आप हमारे अमेज़ॅन ट्रांस्क्राइब में परिणाम का अनुवाद करने और परिणाम वापस करने के लिए अमेज़ॅन अनुवाद को एक अनुरोध भेजते हैं। EventHandler
विधि.
अमेज़ॅन अनुवाद: अत्याधुनिक, पूरी तरह से प्रबंधित अनुवाद API
हमारे स्टैक में अगला अमेज़ॅन ट्रांसलेट है, जो एक तंत्रिका मशीन अनुवाद सेवा है जो तेज़, उच्च-गुणवत्ता, सस्ती और अनुकूलन योग्य भाषा अनुवाद प्रदान करती है। जून 2022 तक, अमेज़ॅन ट्रांसलेट 75 भाषाओं में अनुवाद का समर्थन करता है, नए भाषा जोड़े और लगातार सुधार किए जा रहे हैं। अमेज़ॅन ट्रांसलेट आपके उपयोग के मामले के आधार पर वास्तविक समय या बैच में सटीक अनुवादों को त्वरित रूप से वितरित करने के लिए अत्यधिक स्केलेबल और लचीला एडब्ल्यूएस क्लाउड आर्किटेक्चर पर होस्ट किए गए गहन शिक्षण मॉडल का उपयोग करता है। अमेज़ॅन ट्रांसलेट का उपयोग करना सीधा है और इसके लिए अंतर्निहित आर्किटेक्चर या एमएल कौशल के प्रबंधन की आवश्यकता नहीं है। Amazon अनुवाद में कई विशेषताएं हैं, जैसे a . बनाना और उसका उपयोग करना कस्टम शब्दावली उद्योग-विशिष्ट शर्तों के बीच मानचित्रण को संभालने के लिए। Amazon अनुवाद सेवा सीमाओं के बारे में अधिक जानकारी के लिए, देखें दिशानिर्देश और सीमाएं. एप्लिकेशन को हमारी लक्षित भाषा में अनुवादित पाठ प्राप्त होने के बाद, यह अनुवादित पाठ को तत्काल अनुवादित ऑडियो प्लेबैक के लिए अमेज़ॅन पोली को भेजता है।
अमेज़ॅन पोली: पूरी तरह से प्रबंधित टेक्स्ट-टू-स्पीच API
अंत में, आप अनूदित पाठ को अमेज़ॅन पोली को भेजते हैं, जो पूरी तरह से प्रबंधित टेक्स्ट-टू-स्पीच सेवा है जो या तो तत्काल स्ट्रीमिंग प्लेबैक के लिए आजीवन ऑडियो क्लिप प्रतिक्रिया भेज सकती है या बैच और सहेजी जा सकती है अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) बाद में उपयोग के लिए। आप मानकीकृत . का उपयोग करके भाषण के विभिन्न पहलुओं जैसे उच्चारण, मात्रा, पिच, भाषण दर, और अधिक को नियंत्रित कर सकते हैं वाक् संश्लेषण मार्कअप भाषा (एसएसएमएल)।
आप कुछ अमेज़ॅन पोली के लिए भाषण को संश्लेषित कर सकते हैं तंत्रिका आवाज न्यूज़कास्टर शैली का उपयोग करके उन्हें टीवी या रेडियो न्यूज़कास्टर की तरह ध्वनि देने के लिए। ऑडियो स्ट्रीम में शामिल मेटाडेटा के आधार पर आप यह भी पता लगा सकते हैं कि टेक्स्ट में विशिष्ट शब्द या वाक्य कब बोले जा रहे हैं। यह डेवलपर को ग्राफिकल हाइलाइटिंग और एनिमेशन को सिंक्रोनाइज़ करने की अनुमति देता है, जैसे कि अवतार के होंठों की गति, संश्लेषित भाषण के साथ।
आप विशेष शब्दों के उच्चारण को संशोधित कर सकते हैं, जैसे कि कंपनी के नाम, परिवर्णी शब्द, विदेशी शब्द, या नवशास्त्र, उदाहरण के लिए "P!nk," "ROTFL," या "C'est la vie" (जब गैर-फ़्रेंच भाषा में बोला जाता है) आवाज), कस्टम लेक्सिकॉन का उपयोग करते हुए।
वास्तुकला अवलोकन
निम्नलिखित चित्र हमारे समाधान वास्तुकला को दर्शाता है।
कार्यप्रवाह इस प्रकार है:
- ऑडियो को Python SDK द्वारा अंतर्ग्रहीत किया जाता है।
- अमेज़ॅन पोली भाषण को 39 संभावित भाषाओं में पाठ में परिवर्तित करता है।
- अमेज़ॅन अनुवाद भाषाओं को परिवर्तित करता है।
- अमेज़ॅन लाइव ट्रांसक्राइब टेक्स्ट को स्पीच में परिवर्तित करता है।
- स्पीकर को ऑडियो आउटपुट किया जाता है।
.. पूर्वापेक्षाएँ
आपको एक माइक्रोफ़ोन, स्पीकर और विश्वसनीय इंटरनेट कनेक्शन के साथ एक होस्ट मशीन सेट अप की आवश्यकता है। एक आधुनिक लैपटॉप को इसके लिए ठीक काम करना चाहिए क्योंकि किसी अतिरिक्त हार्डवेयर की आवश्यकता नहीं है। इसके बाद, आपको मशीन को कुछ सॉफ़्टवेयर टूल के साथ सेट अप करने की आवश्यकता है।
एसिंक्रोनस अमेज़ॅन ट्रांसक्राइब स्ट्रीमिंग एसडीके का उपयोग करने के लिए आपके पास पायथन 3.7+ स्थापित होना चाहिए और एक पायथन मॉड्यूल के लिए जिसे कहा जाता है pyaudio
, जिसका उपयोग आप मशीन के माइक्रोफ़ोन और स्पीकर को नियंत्रित करने के लिए करते हैं। यह मॉड्यूल एक सी लाइब्रेरी पर निर्भर करता है जिसे कहा जाता है portaudio.h
. यदि आप के साथ मुद्दों का सामना करते हैं pyaudio
त्रुटियां, हम यह देखने के लिए अपने ओएस की जांच करने का सुझाव देते हैं कि क्या आपके पास है portaudio.h
पुस्तकालय स्थापित।
सेवा कॉल के प्राधिकरण और प्रमाणीकरण के लिए, आप एक बनाते हैं AWS पहचान और अभिगम प्रबंधन (IAM) आवश्यक AWS सेवाओं को कॉल करने की अनुमति के साथ सेवा भूमिका। को कॉन्फ़िगर करके AWS कमांड लाइन इंटरफ़ेस (एडब्ल्यूएस सीएलआई) इस आईएएम सेवा भूमिका के साथ, आप कुंजी या पासवर्ड में पास किए बिना हमारी स्क्रिप्ट को अपनी मशीन पर चला सकते हैं, क्योंकि एडब्ल्यूएस पुस्तकालय कॉन्फ़िगर किए गए एडब्ल्यूएस सीएलआई उपयोगकर्ता के क्रेडेंशियल्स का उपयोग करने के लिए लिखे गए हैं। यह रैपिड प्रोटोटाइप के लिए एक सुविधाजनक तरीका है और यह सुनिश्चित करता है कि हमारी सेवाओं को अधिकृत पहचान द्वारा बुलाया जा रहा है। हमेशा की तरह, IAM उपयोगकर्ता या भूमिका बनाते समय IAM नीतियां निर्दिष्ट करते समय कम से कम विशेषाधिकार के सिद्धांत का पालन करें।
संक्षेप में, आपको निम्नलिखित पूर्वापेक्षाएँ चाहिए:
- माइक्रोफ़ोन, स्पीकर और इंटरनेट कनेक्शन के साथ एक पीसी, मैक या लिनक्स मशीन
- RSI
portaudio.h
आपके ओएस के लिए सी लाइब्रेरी (काढ़ा, उपयुक्त मिलता है, wget), जो काम करने के लिए pyaudio के लिए आवश्यक है - एडब्ल्यूएस सीएलआई 2.0 उचित रूप से अधिकृत आईएएम उपयोगकर्ता के साथ एडब्ल्यूएस सीएलआई में एडब्ल्यूएस कॉन्फ़िगर चलाकर कॉन्फ़िगर किया गया है
- अजगर 3.7+
- एसिंक्रोनस अमेज़ॅन ने पायथन एसडीके को ट्रांसक्रिप्ट किया
- निम्नलिखित पायथन पुस्तकालय:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
समाधान लागू करें
आप शुरुआती बिंदु के रूप में पायथन के लिए एसिंक्रोनस अमेज़ॅन ट्रांस्क्राइब स्ट्रीमिंग एसडीके पर बहुत अधिक भरोसा करेंगे, और उस विशिष्ट एसडीके के शीर्ष पर निर्माण करने जा रहे हैं। पायथन के लिए स्ट्रीमिंग एसडीके के साथ प्रयोग करने के बाद, आप जोड़ते हैं स्ट्रीमिंग माइक्रोफोन इनपुट का उपयोग कर pyaudio
, आमतौर पर इस्तेमाल किया जाने वाला पायथन ओपन-सोर्स लाइब्रेरी है जिसका उपयोग ऑडियो डेटा में हेरफेर करने के लिए किया जाता है। फिर आप हमारे अनुवाद और टेक्स्ट-टू-स्पीच कार्यक्षमता के लिए अमेज़ॅन ट्रांसलेट और अमेज़ॅन पोली में Boto3 कॉल जोड़ते हैं। अंत में, आप अनुवादित भाषण को कंप्यूटर के स्पीकर के माध्यम से फिर से स्ट्रीम करते हैं pyaudio
. पायथन मॉड्यूल concurrent
आपको अपने लौटाए गए अमेज़ॅन पोली भाषण को एक सहज, गैर-अवरुद्ध तरीके से वापस चलाने के लिए अपने स्वयं के एसिंक्रोनस थ्रेड में ब्लॉकिंग कोड चलाने की क्षमता देता है।
आइए अपने सभी आवश्यक मॉड्यूल आयात करें, स्ट्रीमिंग क्लासेस ट्रांसक्राइब करें, और कुछ ग्लोबल्स को इंस्टेंट करें:
सबसे पहले, आप उपयोग करें pyaudio
इनपुट डिवाइस की सैंपलिंग दर, डिवाइस इंडेक्स और चैनल काउंट प्राप्त करने के लिए:
यदि यह काम नहीं कर रहा है, तो आप निम्न कोड में दिखाए गए अनुसार अपने डिवाइस को लूप और प्रिंट भी कर सकते हैं, और फिर डिवाइस इंडेक्स का उपयोग करके डिवाइस की जानकारी प्राप्त कर सकते हैं pyaudio
:
तुम इस्तेमाल channel_count
, sample_rate
, तथा dev_index
एक माइक स्ट्रीम में पैरामीटर के रूप में। उस स्ट्रीम के कॉलबैक फ़ंक्शन में, आप an . का उपयोग करते हैं asyncio
गैर-अवरुद्ध थ्रेड-सुरक्षित कॉलबैक माइक स्ट्रीम के इनपुट बाइट्स को एक में डालने के लिए asyncio
इनपुट कतार। के साथ बनाए गए लूप और input_queue ऑब्जेक्ट्स पर ध्यान दें asyncio
और निम्नलिखित कोड में उनका उपयोग कैसे किया जाता है:
अब जब जनरेटर कार्य करता है mic_stream()
कहा जाता है, जब तक इनपुट कतार में माइक्रोफ़ोन इनपुट डेटा है, तब तक यह लगातार इनपुट बाइट्स देता है।
अब जब आप जानते हैं कि माइक्रोफ़ोन से इनपुट बाइट्स कैसे प्राप्त करें, तो आइए देखें कि स्पीकर आउटपुट स्ट्रीम में अमेज़ॅन पोली आउटपुट ऑडियो बाइट्स कैसे लिखें:
अब इस बात का विस्तार करते हैं कि आपने पोस्ट में क्या बनाया है एसिंक्रोनस अमेज़ॅन पायथन के लिए स्ट्रीमिंग एसडीके का अनुवाद करता है. निम्नलिखित कोड में, आप का उपयोग कर एक निष्पादक वस्तु बनाते हैं ThreadPoolExecutor
समवर्ती के साथ तीन श्रमिकों के साथ उपवर्ग। फिर आप EventHandler में अंतिम रूप से लौटाए गए प्रतिलेख पर एक अमेज़ॅन अनुवाद कॉल जोड़ते हैं और उस अनुवादित पाठ, निष्पादक ऑब्जेक्ट और हमारे पास करते हैं aws_polly_tts()
एक में कार्य करें asyncio
के साथ पाश loop.run_in_executor()
, जो हमारे अमेज़ॅन पोली फ़ंक्शन (अनुवादित इनपुट टेक्स्ट के साथ) को अगले पुनरावृत्ति की शुरुआत में अतुल्यकालिक रूप से चलाता है asyncio
पाश।
अंत में, हमारे पास है loop_me()
समारोह। इसमें, आप परिभाषित करते हैं write_chunks()
, जो एक अमेज़ॅन ट्रांसक्राइब स्ट्रीम को एक तर्क के रूप में लेता है और एसिंक्रोनस रूप से इसमें स्ट्रीमिंग माइक इनपुट का हिस्सा लिखता है। आप तब उपयोग करें MyEventHandler()
आउटपुट ट्रांसक्रिप्शन स्ट्रीम के साथ इसके तर्क के रूप में और एक हैंडलर ऑब्जेक्ट बनाएं। फिर आप प्रतीक्षा करें का उपयोग करें asyncio.gather()
और इन कोरआउट्स के अंतिम वायदा को संभालने के लिए write_chunks () और हैंडलर को हैंडल_इवेंट्स () विधि के साथ पास करें। अंत में, आप सभी ईवेंट लूप इकट्ठा करते हैं और लूप करते हैं loop_me()
के साथ कार्य करें run_until_complete()
। निम्नलिखित कोड देखें:
जब पिछले कोड को बिना किसी त्रुटि के एक साथ चलाया जाता है, तो आप माइक्रोफ़ोन में बोल सकते हैं और अपनी आवाज़ को मंदारिन चीनी में अनुवादित सुन सकते हैं। अमेज़ॅन ट्रांसक्राइब और अमेज़ॅन ट्रांसलेट के लिए स्वचालित भाषा पहचान सुविधा किसी भी समर्थित इनपुट भाषा को लक्षित भाषा में अनुवादित करती है। आप काफी समय तक बोल सकते हैं और फ़ंक्शन कॉल की गैर-अवरुद्ध प्रकृति के कारण, आपके सभी भाषण इनपुट का अनुवाद और बोली जाती है, जिससे यह लाइव भाषणों का अनुवाद करने के लिए एक उत्कृष्ट उपकरण बन जाता है।
निष्कर्ष
हालांकि इस पोस्ट ने प्रदर्शित किया कि कैसे ये तीन पूरी तरह से प्रबंधित एडब्ल्यूएस एपीआई एक साथ निर्बाध रूप से कार्य कर सकते हैं, हम आपको इस बारे में सोचने के लिए प्रोत्साहित करते हैं कि आप सेवाओं या मीडिया के लिए बहुभाषी समर्थन देने के लिए अन्य तरीकों से इन सेवाओं का उपयोग कैसे कर सकते हैं जैसे कि वर्तमान लागत के एक अंश के लिए बहुभाषी क्लोज्ड कैप्शनिंग। . चिकित्सा, व्यापार, और यहां तक कि राजनयिक संबंध सभी को हमेशा बेहतर, कम लागत वाली, कम रखरखाव वाली अनुवाद सेवा से लाभ हो सकता है।
इस उपयोग के मामले के लिए अवधारणा कोड आधार के प्रमाण के बारे में अधिक जानकारी के लिए हमारे देखें Github.
लेखक के बारे में
माइकल ट्रैनो Amazon Web Services में Envision Engineering टीम के साथ एक सॉल्यूशंस आर्किटेक्ट है। वह तकनीकी मार्गदर्शन प्रदान करता है और ग्राहकों को एडब्ल्यूएस पर संभव की कला दिखाने के माध्यम से नवाचार करने की उनकी क्षमता में तेजी लाने में मदद करता है। उन्होंने हमारे ग्राहकों के लिए AI/ML और IoT के आसपास कई प्रोटोटाइप बनाए हैं। आप ट्विटर पर @Mike_Trann मुझसे संपर्क कर सकते हैं।
कैमरून विल्केस एडब्ल्यूएस उद्योग त्वरक टीम पर एक प्रोटोटाइप आर्किटेक्ट है। टीम में रहते हुए उन्होंने एडब्ल्यूएस पर एमएल के "आर्ट ऑफ द पॉसिबल" को प्रदर्शित करने के लिए ग्राहकों को कई एमएल आधारित प्रोटोटाइप दिए। उन्हें म्यूजिक प्रोडक्शन, ऑफ-रोडिंग और डिजाइन का शौक है।
- AI
- ai कला
- ऐ कला जनरेटर
- ऐ रोबोट
- अमेज़ॅन पोली
- Amazon Transcribe
- अमेज़न अनुवाद
- कृत्रिम बुद्धिमत्ता
- कृत्रिम बुद्धिमत्ता प्रमाणन
- बैंकिंग में आर्टिफिशियल इंटेलिजेंस
- आर्टिफिशियल इंटेलिजेंस रोबोट
- आर्टिफिशियल इंटेलिजेंस रोबोट
- कृत्रिम बुद्धि सॉफ्टवेयर
- AWS मशीन लर्निंग
- blockchain
- ब्लॉकचेन सम्मेलन एआई
- कॉइनजीनियस
- संवादी कृत्रिम बुद्धिमत्ता
- क्रिप्टो सम्मेलन एआई
- दल-ए
- ध्यान लगा के पढ़ना या सीखना
- इसे गूगल करें
- यंत्र अधिगम
- प्लेटो
- प्लेटो एआई
- प्लेटो डेटा इंटेलिजेंस
- प्लेटो गेम
- प्लेटोडाटा
- प्लेटोगेमिंग
- स्केल एआई
- वाक्यविन्यास
- तकनीकी
- जेफिरनेट