Amazon Transscribe، Amazon Translate، اور Amazon Polly PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ زبان کی رکاوٹوں کو عبور کریں۔ عمودی تلاش۔ عی

Amazon Transcribe، Amazon Translate، اور Amazon Polly کے ساتھ زبان کی رکاوٹوں کو عبور کریں۔

تصور کریں کہ ایک سرجن کسی انسانی مترجم کی ضرورت کے بغیر پوری دنیا کے مریضوں کے ساتھ ویڈیو کال کر رہا ہے۔ کیا ہوگا اگر ایک نیا آغاز اپنی مصنوعات کو سرحدوں کے پار اور نئی جغرافیائی منڈیوں میں آسانی سے وسعت دے سکے بغیر کسی زندہ انسانی مترجم کی ضرورت کے سیال، درست، کثیر لسانی کسٹمر سپورٹ اور سیلز پیش کر کے؟ جب آپ زبان کے پابند نہیں رہتے ہیں تو آپ کے کاروبار کا کیا ہوتا ہے؟

آج کل بہت سی مختلف زبانیں بولنے والی بین الاقوامی ٹیموں اور صارفین کے ساتھ ورچوئل میٹنگز کرنا عام ہے۔ چاہے وہ داخلی ہوں یا بیرونی میٹنگز، مطلب اکثر پیچیدہ مباحثوں میں گم ہو جاتا ہے اور آپ کو زبان کی رکاوٹوں کا سامنا کرنا پڑ سکتا ہے جو آپ کو اتنے موثر ہونے سے روکتی ہیں جتنا آپ ہو سکتے ہیں۔

اس پوسٹ میں، آپ سیکھیں گے کہ تین مکمل طور پر منظم AWS سروسز کو کیسے استعمال کیا جائے (ایمیزون نقل, ایمیزون ترجمہ، اور ایمیزون پولی) قریب قریب ریئل ٹائم اسپیچ ٹو اسپیچ مترجم حل تیار کرنے کے لیے جو کسی ماخذ اسپیکر کے لائیو صوتی ان پٹ کو بولی گئی، درست، ترجمہ شدہ ٹارگٹ لینگویج میں تیزی سے ترجمہ کر سکتا ہے، یہ سب کچھ صفر مشین لرننگ (ML) کے تجربے کے ساتھ ہے۔

حل کا جائزہ

ہمارا مترجم تین مکمل طور پر منظم AWS ML سروسز پر مشتمل ہے جو ایک Python اسکرپٹ میں مل کر کام کر رہے ہیں۔ AWS SDK برائے Python (Boto3) ہمارے ٹیکسٹ ٹرانسلیشن اور ٹیکسٹ ٹو اسپیچ حصوں کے لیے، اور آڈیو ان پٹ ٹرانسکرپشن کے لیے ایک غیر مطابقت پذیر اسٹریمنگ SDK۔

ایمیزون ٹرانسکرائب: اسپیچ کو ٹیکسٹ میں اسٹریم کرنا

ہمارے اسٹیک میں آپ جو پہلی سروس استعمال کرتے ہیں وہ ہے Amazon ٹرانسکرائب، ایک مکمل طور پر منظم اسپیچ ٹو ٹیکسٹ سروس جو ان پٹ اسپیچ لیتی ہے اور اسے ٹیکسٹ میں ٹرانسکرائب کرتی ہے۔ Amazon Transcribe میں ادخال کے لچکدار طریقے، بیچ یا سٹریمنگ ہے، کیونکہ یہ ذخیرہ شدہ آڈیو فائلز یا سٹریمنگ آڈیو ڈیٹا کو قبول کرتا ہے۔ اس پوسٹ میں، آپ استعمال کرتے ہیں غیر مطابقت پذیر ایمیزون ٹرانسکرائب اسٹریمنگ SDK برائے ازگر، جو لائیو آڈیو کو سٹریم کرنے اور لائیو ٹرانسکرپشن حاصل کرنے کے لیے HTTP/2 اسٹریمنگ پروٹوکول کا استعمال کرتا ہے۔

جب ہم نے پہلی بار یہ پروٹو ٹائپ بنایا تھا، تو Amazon ٹرانسکرائب اسٹریمنگ ادخال خودکار زبان کی شناخت کو سپورٹ نہیں کرتی تھی، لیکن نومبر 2021 سے اب ایسا نہیں ہے۔ بیچ اور اسٹریمنگ ادخال دونوں اب سب کے لیے خودکار زبان کی شناخت کو سپورٹ کرتے ہیں۔ تائید کی زبانیں. اس پوسٹ میں، ہم یہ دکھاتے ہیں کہ کس طرح پیرامیٹر پر مبنی حل، اگرچہ ہموار ملٹی لینگویج پیرامیٹر لیس ڈیزائن اسٹریمنگ خودکار زبان کی کھوج کے استعمال کے ذریعے ممکن ہے۔ ہمارے ٹرانسکرائب شدہ اسپیچ سیگمنٹ کو ٹیکسٹ کے طور پر واپس کرنے کے بعد، آپ Amazon Translate کو ہمارے Amazon Transcribe میں ترجمہ کرنے اور نتائج واپس کرنے کی درخواست بھیجتے ہیں۔ EventHandler طریقہ.

ایمیزون ترجمہ: جدید ترین، مکمل طور پر منظم ترجمہ API

ہمارے اسٹیک میں اگلا Amazon Translate ہے، ایک نیورل مشین ٹرانسلیشن سروس جو تیز، اعلیٰ معیار، سستی، اور حسب ضرورت زبان میں ترجمہ فراہم کرتی ہے۔ جون 2022 تک، Amazon Translate 75 زبانوں میں ترجمہ کو سپورٹ کرتا ہے، جس میں زبانوں کے نئے جوڑے اور بہتری مسلسل کی جا رہی ہے۔ Amazon Translate آپ کے استعمال کے معاملے کے لحاظ سے، حقیقی وقت میں یا بیچ میں درست ترجمے فراہم کرنے کے لیے انتہائی قابل توسیع اور لچکدار AWS کلاؤڈ فن تعمیر پر ہوسٹ کیے گئے گہرے سیکھنے کے ماڈلز کا استعمال کرتا ہے۔ Amazon Translate کا استعمال سیدھا سادہ ہے اور اس کے لیے بنیادی فن تعمیر یا ML مہارتوں کے انتظام کی ضرورت نہیں ہے۔ Amazon Translate میں کئی خصوصیات ہیں، جیسے کہ بنانا اور استعمال کرنا اپنی مرضی کی اصطلاحات صنعت کی مخصوص شرائط کے درمیان میپنگ کو ہینڈل کرنے کے لیے۔ Amazon Translate سروس کی حدود کے بارے میں مزید معلومات کے لیے، رجوع کریں۔ ہدایات اور حدود. ایپلیکیشن کو ہماری ٹارگٹ لینگویج میں ترجمہ شدہ ٹیکسٹ موصول ہونے کے بعد، یہ فوری ترجمہ شدہ آڈیو پلے بیک کے لیے ایمیزون پولی کو ترجمہ شدہ متن بھیجتا ہے۔

Amazon Polly: مکمل طور پر منظم ٹیکسٹ ٹو اسپیچ API

آخر میں، آپ ترجمہ شدہ متن Amazon Polly کو بھیجتے ہیں، جو کہ ایک مکمل طور پر منظم ٹیکسٹ ٹو اسپیچ سروس ہے جو یا تو فوری اسٹریمنگ پلے بیک کے لیے زندگی بھر کے آڈیو کلپ کے جوابات بھیج سکتی ہے یا اس میں بیچ اور محفوظ کر سکتی ہے۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) بعد میں استعمال کے لیے۔ آپ معیاری استعمال کرتے ہوئے تقریر کے مختلف پہلوؤں جیسے کہ تلفظ، حجم، پچ، تقریر کی شرح، اور مزید کو کنٹرول کر سکتے ہیں۔ اسپیچ سنتھیسس مارک اپ لینگویج (SSML)۔

آپ مخصوص ایمیزون پولی کے لیے تقریر کی ترکیب کر سکتے ہیں۔ اعصابی آوازیں۔ نیوز کاسٹر کے انداز کا استعمال کرتے ہوئے انہیں ٹی وی یا ریڈیو نیوز کاسٹر کی طرح آواز دینا۔ آڈیو سٹریم میں شامل میٹا ڈیٹا کی بنیاد پر آپ یہ بھی پتہ لگا سکتے ہیں کہ متن میں مخصوص الفاظ یا جملے کب بولے جا رہے ہیں۔ یہ ڈویلپر کو گرافیکل ہائی لائٹنگ اور اینیمیشنز کو سنکرونائز کرنے کی اجازت دیتا ہے، جیسے اوتار کے ہونٹوں کی حرکت، ترکیب شدہ تقریر کے ساتھ۔

آپ مخصوص الفاظ کے تلفظ میں ترمیم کر سکتے ہیں، جیسے کہ کمپنی کے نام، مخففات، غیر ملکی الفاظ، یا نیوولوجزم، مثال کے طور پر "P!nk," "ROTFL" یا "C'est la vie" (جب غیر فرانسیسی میں بولا جاتا ہے۔ آواز)، حسب ضرورت لغت کا استعمال کرتے ہوئے۔

فن تعمیر کا جائزہ

درج ذیل خاکہ ہمارے حل کے فن تعمیر کو واضح کرتا ہے۔

یہ خاکہ کلائنٹ ڈیوائس سے Amazon Transcribe، Amazon Translate، اور Amazon Polly تک ڈیٹا کا بہاؤ دکھاتا ہے۔

ورک فلو مندرجہ ذیل ہے:

  1. آڈیو کو Python SDK کے ذریعے داخل کیا جاتا ہے۔
  2. ایمیزون پولی 39 ممکنہ زبانوں میں تقریر کو متن میں تبدیل کرتا ہے۔
  3. ایمیزون ترجمہ زبانوں کو تبدیل کرتا ہے۔
  4. Amazon Live Transcribe متن کو تقریر میں تبدیل کرتا ہے۔
  5. آڈیو اسپیکر کو آؤٹ پٹ کیا جاتا ہے۔

شرائط

آپ کو مائیکروفون، اسپیکر، اور قابل اعتماد انٹرنیٹ کنکشن کے ساتھ ایک میزبان مشین کی ضرورت ہے۔ ایک جدید لیپ ٹاپ کو اس کے لیے ٹھیک کام کرنا چاہیے کیونکہ کسی اضافی ہارڈ ویئر کی ضرورت نہیں ہے۔ اگلا، آپ کو کچھ سافٹ ویئر ٹولز کے ساتھ مشین سیٹ اپ کرنے کی ضرورت ہے۔

غیر مطابقت پذیر Amazon Transcribe streaming SDK استعمال کرنے کے لیے اور Python ماڈیول کے لیے آپ کے پاس Python 3.7+ انسٹال ہونا ضروری ہے۔ pyaudio، جسے آپ مشین کے مائیکروفون اور اسپیکرز کو کنٹرول کرنے کے لیے استعمال کرتے ہیں۔ یہ ماڈیول C لائبریری پر منحصر ہے۔ portaudio.h. اگر آپ کو مسائل کا سامنا کرنا پڑتا ہے۔ pyaudio غلطیاں، ہم یہ دیکھنے کے لیے اپنے OS کو چیک کرنے کا مشورہ دیتے ہیں کہ آیا آپ کے پاس ہے۔ portaudio.h لائبریری نصب.

سروس کالز کی اجازت اور تصدیق کے لیے، آپ ایک تخلیق کرتے ہیں۔ AWS شناخت اور رسائی کا انتظام ضروری AWS سروسز کو کال کرنے کی اجازت کے ساتھ (IAM) سروس رول۔ ترتیب دے کر AWS کمانڈ لائن انٹرفیس (AWS CLI) اس IAM سروس رول کے ساتھ، آپ ہماری اسکرپٹ کو اپنی مشین پر چابیاں یا پاس ورڈ پاس کیے بغیر چلا سکتے ہیں، کیونکہ AWS لائبریریاں ترتیب شدہ AWS CLI صارف کی اسناد کو استعمال کرنے کے لیے لکھی جاتی ہیں۔ یہ تیز رفتار پروٹو ٹائپنگ کے لیے ایک آسان طریقہ ہے اور اس بات کو یقینی بناتا ہے کہ ہماری خدمات کو ایک مجاز شناخت کے ذریعے بلایا جا رہا ہے۔ ہمیشہ کی طرح، IAM صارف یا کردار بناتے وقت IAM پالیسیاں تفویض کرتے وقت کم از کم استحقاق کے اصول پر عمل کریں۔

خلاصہ کرنے کے لیے، آپ کو درج ذیل شرائط کی ضرورت ہے:

  • مائیکروفون، اسپیکر، اور انٹرنیٹ کنکشن کے ساتھ ایک PC، Mac، یا Linux مشین
  • ۔ portaudio.h آپ کے OS (brew, apt get, wget) کے لیے C لائبریری، جس کی paudio کے کام کرنے کی ضرورت ہے۔
  • AWS CLI 2.0 مناسب طریقے سے مجاز IAM صارف کے ساتھ AWS CLI میں aws کنفیگر چلا کر ترتیب دیا گیا ہے۔
  • ازگر 3.7+
  • غیر مطابقت پذیر Amazon Transscribe Python SDK
  • درج ذیل Python لائبریریاں:
    • boto3
    • amazon-transcribe
    • pyaudio
    • asyncio
    • concurrent

حل کو نافذ کریں۔

آپ Python کے لیے ایک نقطہ آغاز کے طور پر غیر مطابقت پذیر Amazon Transcribe streaming SDK پر بہت زیادہ انحصار کریں گے، اور اس مخصوص SDK کے اوپری حصے میں تعمیر کرنے جا رہے ہیں۔ ازگر کے لیے اسٹریمنگ SDK کے ساتھ تجربہ کرنے کے بعد، آپ شامل کرتے ہیں۔ سٹریمنگ مائیکروفون کا استعمال کرتے ہوئے ان پٹ pyaudio، ایک عام طور پر استعمال شدہ Python اوپن سورس لائبریری جو آڈیو ڈیٹا میں ہیرا پھیری کے لیے استعمال ہوتی ہے۔ پھر آپ ہمارے ترجمہ اور متن سے تقریر کی فعالیت کے لیے Amazon Translate اور Amazon Polly میں Boto3 کالز شامل کریں۔ آخر میں، آپ ترجمہ شدہ تقریر کو کمپیوٹر کے اسپیکر کے ذریعے دوبارہ اس کے ساتھ سٹریم کرتے ہیں۔ pyaudio. ازگر ماڈیول concurrent آپ کو بلاکنگ کوڈ کو اس کے اپنے غیر مطابقت پذیر دھاگے میں چلانے کی صلاحیت فراہم کرتا ہے تاکہ آپ کی واپسی Amazon Polly اسپیچ کو بغیر کسی رکاوٹ کے بغیر بلاک کرنے کے طریقے سے چلایا جا سکے۔

آئیے اپنے تمام ضروری ماڈیولز درآمد کریں، سٹریمنگ کلاسز کو ٹرانسکرائب کریں، اور کچھ گلوبلز کو فوری بنائیں:

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 مائیک اسٹریم میں پیرامیٹرز کے طور پر۔ اس سلسلے کے کال بیک فنکشن میں، آپ ایک استعمال کرتے ہیں۔ 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.")

اب آئیے اس پر توسیع کرتے ہیں کہ آپ نے پوسٹ میں کیا بنایا ہے۔ Python کے لیے غیر مطابقت پذیر Amazon ٹرانسکرائب سٹریمنگ SDK. درج ذیل کوڈ میں، آپ استعمال کرتے ہوئے ایک ایگزیکیوٹر آبجیکٹ بناتے ہیں۔ ThreadPoolExecutor کنکرنٹ کے ساتھ تین کارکنوں کے ساتھ ذیلی کلاس۔ اس کے بعد آپ EventHandler میں حتمی طور پر واپس شدہ ٹرانسکرپٹ پر Amazon Translate کال شامل کریں اور اس ترجمہ شدہ متن، executor آبجیکٹ، اور ہمارے 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()

جب پچھلے کوڈ کو بغیر کسی غلطی کے ایک ساتھ چلایا جاتا ہے، تو آپ مائیکروفون میں بات کر سکتے ہیں اور مینڈارن چینی میں ترجمہ شدہ اپنی آواز کو جلدی سے سن سکتے ہیں۔ Amazon Transscribe اور Amazon Translate کے لیے خودکار زبان کا پتہ لگانے کی خصوصیت کسی بھی معاون ان پٹ زبان کو ہدف کی زبان میں ترجمہ کرتی ہے۔ آپ کافی دیر تک بول سکتے ہیں اور فنکشن کالز کی غیر مسدود نوعیت کی وجہ سے، آپ کے تمام اسپیچ ان پٹ کا ترجمہ اور بولا جاتا ہے، جس سے یہ لائیو تقریروں کا ترجمہ کرنے کا ایک بہترین ٹول ہے۔

نتیجہ

اگرچہ اس پوسٹ نے یہ ظاہر کیا ہے کہ یہ تینوں مکمل طور پر منظم AWS APIs ایک ساتھ بغیر کسی رکاوٹ کے کیسے کام کر سکتے ہیں، ہم آپ کو اس بارے میں سوچنے کی ترغیب دیتے ہیں کہ آپ موجودہ لاگت کے ایک حصے کے لیے کثیر لسانی بند کیپشننگ جیسے سروسز یا میڈیا کے لیے کثیر لسانی معاونت فراہم کرنے کے لیے ان خدمات کو دوسرے طریقوں سے کیسے استعمال کر سکتے ہیں۔ . طب، کاروبار، اور یہاں تک کہ سفارتی تعلقات سبھی ہمیشہ بہتر ہونے والی، کم لاگت، کم دیکھ بھال والی ترجمے کی خدمت سے فائدہ اٹھا سکتے ہیں۔

اس استعمال کے کیس کے تصور کوڈ بیس کے ثبوت کے بارے میں مزید معلومات کے لیے ہمارا دیکھیں Github کے.


مصنفین کے بارے میں

Amazon Transscribe، Amazon Translate، اور Amazon Polly PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ زبان کی رکاوٹوں کو عبور کریں۔ عمودی تلاش۔ عیمائیکل ٹران Amazon Web Services میں Envision انجینئرنگ ٹیم کے ساتھ ایک سولیوشن آرکیٹیکٹ ہے۔ وہ تکنیکی رہنمائی فراہم کرتا ہے اور صارفین کو AWS پر ممکنہ فن کو دکھانے کے ذریعے اختراع کرنے کی صلاحیت کو تیز کرنے میں مدد کرتا ہے۔ اس نے ہمارے صارفین کے لیے AI/ML اور IoT کے ارد گرد متعدد پروٹوٹائپس بنائے ہیں۔ آپ مجھ سے @Mike_Trann ٹویٹر پر رابطہ کر سکتے ہیں۔

Amazon Transscribe، Amazon Translate، اور Amazon Polly PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ زبان کی رکاوٹوں کو عبور کریں۔ عمودی تلاش۔ عیکیمرون ولکس AWS انڈسٹری ایکسلریٹر ٹیم میں پروٹو ٹائپنگ آرکیٹیکٹ ہے۔ ٹیم میں رہتے ہوئے اس نے AWS پر ML کے "آرٹ آف دی پوسیبل" کا مظاہرہ کرنے کے لیے صارفین کو ML پر مبنی کئی پروٹو ٹائپس فراہم کیں۔ وہ میوزک پروڈکشن، آف روڈنگ اور ڈیزائن سے لطف اندوز ہوتا ہے۔

ٹائم اسٹیمپ:

سے زیادہ AWS مشین لرننگ