अमेज़ॅन ट्रांसक्राइब, अमेज़ॅन ट्रांसलेट और अमेज़ॅन पोली प्लेटोब्लॉकचेन डेटा इंटेलिजेंस के साथ भाषा बाधाओं को तोड़ें। लंबवत खोज. ऐ.

अमेज़ॅन ट्रांसक्राइब, अमेज़ॅन ट्रांसलेट और अमेज़ॅन पॉली के साथ भाषा बाधाओं को तोड़ें

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

आज अंतरराष्ट्रीय टीमों और कई अलग-अलग भाषाएं बोलने वाले ग्राहकों के साथ वर्चुअल मीटिंग करना आम बात है। चाहे वे आंतरिक या बाहरी बैठकें हों, अर्थ अक्सर जटिल चर्चाओं में खो जाता है और आपको भाषा की बाधाओं का सामना करना पड़ सकता है जो आपको उतने प्रभावी होने से रोकते हैं जितना आप हो सकते हैं।

इस पोस्ट में, आप सीखेंगे कि तीन पूरी तरह से प्रबंधित 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" (जब गैर-फ़्रेंच भाषा में बोला जाता है) आवाज), कस्टम लेक्सिकॉन का उपयोग करते हुए।

वास्तुकला अवलोकन

निम्नलिखित चित्र हमारे समाधान वास्तुकला को दर्शाता है।

यह आरेख क्लाइंट डिवाइस से Amazon Transcribe, Amazon Translate, और Amazon Poly पर डेटा प्रवाह दिखाता है

कार्यप्रवाह इस प्रकार है:

  1. ऑडियो को Python SDK द्वारा अंतर्ग्रहीत किया जाता है।
  2. अमेज़ॅन पोली भाषण को 39 संभावित भाषाओं में पाठ में परिवर्तित करता है।
  3. अमेज़ॅन अनुवाद भाषाओं को परिवर्तित करता है।
  4. अमेज़ॅन लाइव ट्रांसक्राइब टेक्स्ट को स्पीच में परिवर्तित करता है।
  5. स्पीकर को ऑडियो आउटपुट किया जाता है।

.. पूर्वापेक्षाएँ

आपको एक माइक्रोफ़ोन, स्पीकर और विश्वसनीय इंटरनेट कनेक्शन के साथ एक होस्ट मशीन सेट अप की आवश्यकता है। एक आधुनिक लैपटॉप को इसके लिए ठीक काम करना चाहिए क्योंकि किसी अतिरिक्त हार्डवेयर की आवश्यकता नहीं है। इसके बाद, आपको मशीन को कुछ सॉफ़्टवेयर टूल के साथ सेट अप करने की आवश्यकता है।

एसिंक्रोनस अमेज़ॅन ट्रांसक्राइब स्ट्रीमिंग एसडीके का उपयोग करने के लिए आपके पास पायथन 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 आपको अपने लौटाए गए अमेज़ॅन पोली भाषण को एक सहज, गैर-अवरुद्ध तरीके से वापस चलाने के लिए अपने स्वयं के एसिंक्रोनस थ्रेड में ब्लॉकिंग कोड चलाने की क्षमता देता है।

आइए अपने सभी आवश्यक मॉड्यूल आयात करें, स्ट्रीमिंग क्लासेस ट्रांसक्राइब करें, और कुछ ग्लोबल्स को इंस्टेंट करें:

import boto3
 import asyncio
 import pyaudio
 import concurrent
 from amazon_transcribe.client import TranscribeStreamingClient
 from amazon_transcribe.handlers import TranscriptResultStreamHandler
 from amazon_transcribe.model import TranscriptEvent


 polly = boto3.client('polly', region_name = 'us-west-2')
 translate = boto3.client(service_name='translate', region_name='us-west-2', use_ssl=True)
 pa = pyaudio.PyAudio()

 #for mic stream, 1024 should work fine
 default_frames = 1024

 #current params are set up for English to Mandarin, modify to your liking
 params['source_language'] = "en"
 params['target_language'] = "zh"
 params['lang_code_for_polly'] = "cmn-CN"
 params['voice_id'] = "Zhiyu"
 params['lang_code_for_transcribe'] = "en-US"

सबसे पहले, आप उपयोग करें pyaudio इनपुट डिवाइस की सैंपलिंग दर, डिवाइस इंडेक्स और चैनल काउंट प्राप्त करने के लिए:

#try grabbing the default input device and see if we get lucky
 default_indput_device = pa.get_default_input_device_info()

 # verify this is your microphone device 
 print(default_input_device)

 #if correct then set it as your input device and define some globals
 input_device = default_input_device

 input_channel_count = input_device["maxInputChannels"]
 input_sample_rate = input_device["defaultSampleRate"]
 input_dev_index = input_device["index"]

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

print ("Available devices:n")
 for i in range(0, pa.get_device_count()):
     info = pa.get_device_info_by_index(i)
     print (str(info["index"])  + ": t %s n t %s n" % (info["name"], p.get_host_api_info_by_index(info["hostApi"])["name"]))

 # select the correct index from the above returned list of devices, for example zero
 dev_index = 0 
 input_device = pa.get_device_info_by_index(dev_index)

 #set globals for microphone stream
 input_channel_count = input_device["maxInputChannels"]
 input_sample_rate = input_device["defaultSampleRate"]
 input_dev_index = input_device["index"]

तुम इस्तेमाल channel_count, sample_rate, तथा dev_index एक माइक स्ट्रीम में पैरामीटर के रूप में। उस स्ट्रीम के कॉलबैक फ़ंक्शन में, आप an . का उपयोग करते हैं asyncio गैर-अवरुद्ध थ्रेड-सुरक्षित कॉलबैक माइक स्ट्रीम के इनपुट बाइट्स को एक में डालने के लिए asyncio इनपुट कतार। के साथ बनाए गए लूप और input_queue ऑब्जेक्ट्स पर ध्यान दें asyncio और निम्नलिखित कोड में उनका उपयोग कैसे किया जाता है:

async def mic_stream():
     # This function wraps the raw input stream from the microphone forwarding
     # the blocks to an asyncio.Queue.
     
     loop = asyncio.get_event_loop()
     input_queue = asyncio.Queue()
     
     def callback(indata, frame_count, time_info, status):
         loop.call_soon_threadsafe(input_queue.put_nowait, indata)
         return (indata, pyaudio.paContinue)
         
     # Be sure to use the correct parameters for the audio stream that matches
     # the audio formats described for the source language you'll be using:
     # https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html
     
     print(input_device)
     
     #Open stream
     stream = pa.open(format = pyaudio.paInt16,
                 channels = input_channel_count,
                 rate = int(input_sample_rate),
                 input = True,
                 frames_per_buffer = default_frames,
                 input_device_index = input_dev_index,
                 stream_callback=callback)
     # Initiate the audio stream and asynchronously yield the audio chunks
     # as they become available.
     stream.start_stream()
     print("started stream")
     while True:
         indata = await input_queue.get()
         yield indata

अब जब जनरेटर कार्य करता है mic_stream() कहा जाता है, जब तक इनपुट कतार में माइक्रोफ़ोन इनपुट डेटा है, तब तक यह लगातार इनपुट बाइट्स देता है।

अब जब आप जानते हैं कि माइक्रोफ़ोन से इनपुट बाइट्स कैसे प्राप्त करें, तो आइए देखें कि स्पीकर आउटपुट स्ट्रीम में अमेज़ॅन पोली आउटपुट ऑडियो बाइट्स कैसे लिखें:

#text will come from MyEventsHandler
 def aws_polly_tts(text):

     response = polly.synthesize_speech(
         Engine = 'standard',
         LanguageCode = params['lang_code_for_polly'],
         Text=text,
         VoiceId = params['voice_id'],
         OutputFormat = "pcm",
     )
     output_bytes = response['AudioStream']
     
     #play to the speakers
     write_to_speaker_stream(output_bytes)
     
 #how to write audio bytes to speakers

 def write_to_speaker_stream(output_bytes):
     """Consumes bytes in chunks to produce the response's output'"""
     print("Streaming started...")
     chunk_len = 1024
     channels = 1
     sample_rate = 16000
     
     if output_bytes:
         polly_stream = pa.open(
                     format = pyaudio.paInt16,
                     channels = channels,
                     rate = sample_rate,
                     output = True,
                     )
         #this is a blocking call - will sort this out with concurrent later
         while True:
             data = output_bytes.read(chunk_len)
             polly_stream.write(data)
             
         #If there's no more data to read, stop streaming
             if not data:
                 output_bytes.close()
                 polly_stream.stop_stream()
                 polly_stream.close()
                 break
         print("Streaming completed.")
     else:
         print("Nothing to stream.")

अब इस बात का विस्तार करते हैं कि आपने पोस्ट में क्या बनाया है एसिंक्रोनस अमेज़ॅन पायथन के लिए स्ट्रीमिंग एसडीके का अनुवाद करता है. निम्नलिखित कोड में, आप का उपयोग कर एक निष्पादक वस्तु बनाते हैं ThreadPoolExecutor समवर्ती के साथ तीन श्रमिकों के साथ उपवर्ग। फिर आप EventHandler में अंतिम रूप से लौटाए गए प्रतिलेख पर एक अमेज़ॅन अनुवाद कॉल जोड़ते हैं और उस अनुवादित पाठ, निष्पादक ऑब्जेक्ट और हमारे पास करते हैं aws_polly_tts() एक में कार्य करें asyncio के साथ पाश loop.run_in_executor(), जो हमारे अमेज़ॅन पोली फ़ंक्शन (अनुवादित इनपुट टेक्स्ट के साथ) को अगले पुनरावृत्ति की शुरुआत में अतुल्यकालिक रूप से चलाता है asyncio पाश।

#use concurrent package to create an executor object with 3 workers ie threads
 executor = concurrent.futures.ThreadPoolExecutor(max_workers=3)

 class MyEventHandler(TranscriptResultStreamHandler):
     async def handle_transcript_event(self, transcript_event: TranscriptEvent):

         #If the transcription is finalized, send it to translate
 
         results = transcript_event.transcript.results
         if len(results) > 0:
             if len(results[0].alternatives) > 0:
                 transcript = results[0].alternatives[0].transcript
                 print("transcript:", transcript)

                 print(results[0].channel_id)
                 if hasattr(results[0], "is_partial") and results[0].is_partial == False:
                     
                     #translate only 1 channel. the other channel is a duplicate
                     if results[0].channel_id == "ch_0":
                         trans_result = translate.translate_text(
                             Text = transcript,
                             SourceLanguageCode = params['source_language'],
                             TargetLanguageCode = params['target_language']
                         )
                         print("translated text:" + trans_result.get("TranslatedText"))
                         text = trans_result.get("TranslatedText")

                         #we run aws_polly_tts with a non-blocking executor at every loop iteration
                         await loop.run_in_executor(executor, aws_polly_tts, text)  

अंत में, हमारे पास है loop_me() समारोह। इसमें, आप परिभाषित करते हैं write_chunks(), जो एक अमेज़ॅन ट्रांसक्राइब स्ट्रीम को एक तर्क के रूप में लेता है और एसिंक्रोनस रूप से इसमें स्ट्रीमिंग माइक इनपुट का हिस्सा लिखता है। आप तब उपयोग करें MyEventHandler() आउटपुट ट्रांसक्रिप्शन स्ट्रीम के साथ इसके तर्क के रूप में और एक हैंडलर ऑब्जेक्ट बनाएं। फिर आप प्रतीक्षा करें का उपयोग करें asyncio.gather() और इन कोरआउट्स के अंतिम वायदा को संभालने के लिए write_chunks () और हैंडलर को हैंडल_इवेंट्स () विधि के साथ पास करें। अंत में, आप सभी ईवेंट लूप इकट्ठा करते हैं और लूप करते हैं loop_me() के साथ कार्य करें run_until_complete()। निम्नलिखित कोड देखें:

async def loop_me():
 # Setup up our client with our chosen AWS region

     client = TranscribeStreamingClient(region="us-west-2")
     stream = await client.start_stream_transcription(
         language_code=params['lang_code_for_transcribe'],
         media_sample_rate_hz=int(device_info["defaultSampleRate"]),
         number_of_channels = 2,
         enable_channel_identification=True,
         media_encoding="pcm",
     )
     recorded_frames = []
     async def write_chunks(stream):
         
         # This connects the raw audio chunks generator coming from the microphone
         # and passes them along to the transcription stream.
         print("getting mic stream")
         async for chunk in mic_stream():
             t.tic()
             recorded_frames.append(chunk)
             await stream.input_stream.send_audio_event(audio_chunk=chunk)
             t.toc("chunks passed to transcribe: ")
         await stream.input_stream.end_stream()

     handler = MyEventHandler(stream.output_stream)
     await asyncio.gather(write_chunks(stream), handler.handle_events())

 #write a proper while loop here
 loop = asyncio.get_event_loop()
 loop.run_until_complete(loop_me())
 loop.close()

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

निष्कर्ष

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

इस उपयोग के मामले के लिए अवधारणा कोड आधार के प्रमाण के बारे में अधिक जानकारी के लिए हमारे देखें Github.


लेखक के बारे में

अमेज़ॅन ट्रांसक्राइब, अमेज़ॅन ट्रांसलेट और अमेज़ॅन पोली प्लेटोब्लॉकचेन डेटा इंटेलिजेंस के साथ भाषा बाधाओं को तोड़ें। लंबवत खोज. ऐ.माइकल ट्रैनो Amazon Web Services में Envision Engineering टीम के साथ एक सॉल्यूशंस आर्किटेक्ट है। वह तकनीकी मार्गदर्शन प्रदान करता है और ग्राहकों को एडब्ल्यूएस पर संभव की कला दिखाने के माध्यम से नवाचार करने की उनकी क्षमता में तेजी लाने में मदद करता है। उन्होंने हमारे ग्राहकों के लिए AI/ML और IoT के आसपास कई प्रोटोटाइप बनाए हैं। आप ट्विटर पर @Mike_Trann मुझसे संपर्क कर सकते हैं।

अमेज़ॅन ट्रांसक्राइब, अमेज़ॅन ट्रांसलेट और अमेज़ॅन पोली प्लेटोब्लॉकचेन डेटा इंटेलिजेंस के साथ भाषा बाधाओं को तोड़ें। लंबवत खोज. ऐ.कैमरून विल्केस एडब्ल्यूएस उद्योग त्वरक टीम पर एक प्रोटोटाइप आर्किटेक्ट है। टीम में रहते हुए उन्होंने एडब्ल्यूएस पर एमएल के "आर्ट ऑफ द पॉसिबल" को प्रदर्शित करने के लिए ग्राहकों को कई एमएल आधारित प्रोटोटाइप दिए। उन्हें म्यूजिक प्रोडक्शन, ऑफ-रोडिंग और डिजाइन का शौक है।

समय टिकट:

से अधिक AWS मशीन लर्निंग