18.1
Vision, Speech আর Language Service
Rekognition, Transcribe, Polly, Translate, Lex আর Connect, Comprehend আর Comprehend Medical।
26 মিনিট পড়া + Animation
টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।
এই লেসন শেষে তুমি পারবে
- Pre-trained AI service জিনিসটা কী, training আর inference-এর তফাত কোথায়, আর নিজে model বানানোর চেয়ে পরীক্ষা কেন managed AI service-কে বেশি পছন্দ করে, তা বোঝাতে।
- Amazon Rekognition দিয়ে label, লেখা, মুখ, face search আর content moderation করাতে, আর model নিশ্চিত না হলে Amazon Augmented AI (A2I) দিয়ে মানুষের যাচাই যোগ করতে।
- Amazon Transcribe দিয়ে কথাকে লেখায় আনতে (speaker label, custom vocabulary, PII redaction, ভাষা চেনা), আর Amazon Polly দিয়ে লেখাকে কথায় বদলাতে (voice engine, lexicon, SSML)।
- Amazon Translate দিয়ে content অনুবাদ করতে, আর Amazon Lex ও Amazon Connect দিয়ে কথা-বোঝা IVR বা chatbot বানাতে।
- Amazon Comprehend দিয়ে লেখা বিশ্লেষণ করতে (ভাষা, entity, key phrase, Mixed-সহ sentiment, PII), আর Amazon Comprehend Medical দিয়ে clinical লেখা (ওষুধ, রোগ, PHI, চিকিৎসার code)।
- Scenario-র keyword দেখে ঠিক service বাছতে, আর কাছাকাছি-দেখতে জোড়াগুলো আলাদা করতে: Transcribe বনাম Polly, Comprehend বনাম Comprehend Medical, Rekognition-এর লেখা পড়া বনাম Textract।
#AI service: বুদ্ধিটা call করো, বানাতে হবে না
#Training, inference আর “pre-trained”
Machine learning (ML)-এর একটা model হলো এমন একটা program, যার আচরণ হাতে লিখে দেওয়া হয়নি, উদাহরণ দেখে দেখে শেখা। একটা model বানানোর দুটো ধাপ:
- Training: model-কে লাখ লাখ label দেওয়া উদাহরণ দেখাও (“বিড়াল” বা “গাড়ি” লেখা ছবি, ঘণ্টার পর ঘণ্টা audio আর তার transcript), যতক্ষণ না সে ধরনগুলো শিখে ফেলে। এর জন্য লাগে data scientist, প্রচুর data, GPU আর কয়েক সপ্তাহের কাজ।
- Inference: শেখানো model-কে নতুন input-এ খাটানো: একটা নতুন ছবি দাও, ফেরত পাও “গাড়ি, ৯৭%”। প্রতিটা request-এ এটা দ্রুত আর সস্তা।
Pre-trained AI service মানে এমন একটা model, যেটা AWS আগেই বিশাল data-য় train করে রেখেছে আর তোমার হয়ে একটা API-র পেছনে চালায়। তুমি শুধু inference করো: একটা ছবি, একটা audio file বা একটা অনুচ্ছেদ পাঠাও, সাজানো একটা উত্তর ফেরত পাও। Label দেওয়ার মতো data নেই, train করার মতো model নেই, সামলানোর মতো server বা GPU নেই, আর তোমার কোনো খাটুনি ছাড়াই model দিনে দিনে ভালো হতে থাকে।
এই লেসনে আছে সেই service-গুলো যেগুলো দেখে (Rekognition), শোনে (Transcribe), বলে (Polly), অনুবাদ করে (Translate), customer-এর সাথে কথা বলে (Lex আর Connect) আর পড়ে (Comprehend আর Comprehend Medical)। লেসন ১৮.২-এ আছে SageMaker AI দিয়ে নিজের model বানানো, Bedrock দিয়ে generative AI, আর খোঁজা, recommendation আর document-এর service (Kendra, Personalize, Textract), সঙ্গে পুরো অধ্যায়ের একটা cheat sheet।
#তোমার কাজ কতটুকু, আর খরচ কীসে
“Machine learning-এর জ্ঞান লাগে না” কথাটা সত্যি; “code লেখা লাগে না” কথাটা সত্যি না। এই service-গুলো তুমি তোমার application থেকে call করো AWS SDK, CLI বা API দিয়ে (কয়েকটার console-এ demo-ও আছে), উত্তর পেয়ে কী করবে তা ঠিক করো, confidence threshold বসাও, আর error আর খরচ সামলাও। যা লাগে না তা হলো ML-এর দক্ষতা: algorithm, training data বা tuning, কিছুই না।
এগুলো serverless, আর যতটুকু ব্যবহার ততটুকু দাম, প্রত্যেকের নিজের একক:
| Service | টাকা দাও প্রতি | উদাহরণ দাম (US East, ২০২৬-এর শেষ) |
|---|---|---|
| Rekognition (ছবি) | বিশ্লেষণ করা ছবি | মাসের প্রথম ১০ লাখ ছবিতে প্রতি ছবি প্রায় $0.001 |
| Rekognition (রাখা video) | video-র মিনিট | label detection-এ প্রতি মিনিট প্রায় $0.10 |
| Transcribe | audio-র সেকেন্ড (কোনো সর্বনিম্ন নেই) | volume tier অনুযায়ী প্রতি মিনিট কয়েক cent বা তারও কম |
| Polly | বলা অক্ষর | প্রতি ১০ লাখ অক্ষরে $4 (standard), $16 (neural), $30 (generative), $100 (long-form) |
| Translate | অনুবাদ করা অক্ষর | প্রতি ১০ লাখ অক্ষরে প্রায় $15 |
| Comprehend | ১০০ অক্ষরের একক (প্রতি request-এ কমপক্ষে ৩ একক) | standard API-তে প্রতি একক প্রায় $0.0001 |
| Lex | লেখা বা কথার request | প্রতি request-এ এক cent-এর ভগ্নাংশ |
| Connect | ব্যবহারের মিনিট (সঙ্গে phone number আর telephony) | মিনিট ধরে; কোনো seat বা আগাম টাকা নেই |
দাম বদলায়, Region ভেদে আলাদাও হয়, তাই pricing page দেখে নিও; পরীক্ষা শুধু ধরনটা জানতে চায়: আগাম খরচ নেই, যা পাঠাবে তার দাম দেবে।
#এই লেসনের service-গুলো
| Input | কাজ | Service |
|---|---|---|
| ছবি বা video | বস্তু, দৃশ্য, লেখা, মুখ, আপত্তিকর content, বিখ্যাত মানুষ | Rekognition |
| Audio (কথা) | কথা → লেখা, subtitle, call-এর transcript | Transcribe |
| লেখা | লেখা → জীবন্ত কথা | Polly |
| লেখা | ভাষা ক → ভাষা খ | Translate |
| কথা বলছে বা লিখছে এমন customer | উদ্দেশ্য বোঝা, উত্তর দেওয়া, কাজ করা | Lex (+ phone contact centre-এর জন্য Connect) |
| লেখা | ভাষা, entity, key phrase, sentiment, PII | Comprehend |
| Clinical লেখা | ওষুধ, dosage, রোগ, PHI, চিকিৎসার code | Comprehend Medical |
#Amazon Rekognition: ছবি আর video
#Rekognition কী কী খুঁজে পায়
Amazon Rekognition হলো AWS-এর pre-trained computer vision service: ছবি আর video-তে বস্তু, মানুষ, লেখা আর দৃশ্য খুঁজে বের করে। প্রতিটা feature একটা করে API call:
- Label (
DetectLabels): বস্তু, দৃশ্য, কাজকর্ম আর বিখ্যাত স্থাপনা (“Flood”, “Car”, “Wedding”, “Beach”), প্রতিটার সাথে একটা confidence শতাংশ, আর অনেক বস্তুর বেলায় একটা bounding box। ছবির library-তে tag বসানো আর খোঁজার কাজে লাগে। - লেখা খোঁজা (
DetectText): সাধারণ ছবির ছোট লেখা: দোকানের signboard, গাড়ির number plate, video frame-এর caption। - মুখ খোঁজা আর বিশ্লেষণ (
DetectFaces): মুখগুলো কোথায়, সঙ্গে আন্দাজি বয়সের সীমা, হাসি, চোখ খোলা, চশমা, দাড়ি আর আবেগ-এর মতো বৈশিষ্ট্য। - Face search আর verification: দুটো মুখ তুলনা (
CompareFaces, ১:১ verification), অথবা চেনা মুখের একটা জমানো collection-এ একটা মুখ খোঁজা (১:N search)। - Celebrity recognition (
RecognizeCelebrities): রাজনীতি, খেলা আর বিনোদন জগতের পরিচিত মুখ। - Content moderation (
DetectModerationLabels): অশালীন, অনাকাঙ্ক্ষিত বা আপত্তিকর content (নগ্নতা, সহিংসতা, মাদক, ঘৃণার প্রতীক…)। - PPE detection: মানুষেরা মুখ, হাত আর মাথা ঢেকেছে কি না, নির্মাণ এলাকা বা কারখানার মেঝেতে নিরাপত্তা যাচাইয়ের জন্য।
- Custom Labels: তোমার নিজের label দেওয়া অল্প কিছু ছবি (কয়েক ডজন থেকে কয়েকশো) দিয়ে Rekognition-কে এমন জিনিস চেনাও যা pre-trained model জানে না (তোমার product, তোমার production line-এর কোনো খুঁত), তখনও ML-এর দক্ষতা ছাড়াই।
সাধারণ use case: media library-তে label বসানো, social media, e-commerce, broadcast আর advertising-এ user-এর upload moderate করা, ছবিতে লেখা খোঁজা, মুখ দিয়ে user verification, মানুষ গোনা, আর media archive-এর জন্য celebrity চেনা।
#মুখ: খোঁজা, বিশ্লেষণ আর search
Face analysis যা ফেরত দেয় তা চেহারা দেখে আন্দাজ। বয়স ২৯–৩৭ বা “calm”-এর মতো আবেগ হলো একটা মুখ দেখতে কেমন সে বিষয়ে model-এর অনুমান, মানুষটার সম্পর্কে সত্য তথ্য না: কারও আসল বয়স বা মনের অবস্থা Rekognition জানে না। AWS নিজেই বলে, মানুষ সম্পর্কে সিদ্ধান্তে শুধু এই বৈশিষ্ট্যগুলোর ওপর ভর কোরো না।
Face search চলে দুই ধাপে:
- Index: একটা collection বানাও, আর
IndexFacesদিয়ে চেনা মুখ যোগ করো। Rekognition রাখে মুখের একটা সংখ্যার face vector (মুখের গাণিতিক বর্ণনা), ছবিটা না। - Search: নতুন একটা ছবির জন্য
SearchFacesByImageসবচেয়ে বড় মুখটাকে collection-এর সাথে মেলায়, আর face match threshold-এর ওপরের মিলগুলো ফেরত দেয়, একটা similarity score-সহ।CompareFacesসরাসরি দুটো ছবি তুলনা করে, যেমন sign-up-এর সময় একটা selfie আর ID card-এর ছবি।
Threshold হলো দাঁড়িপাল্লা। কম threshold-এ মিল বেশি পাওয়া যায়, কিন্তু তার বেশিরভাগ ভুল; উঁচু threshold-এ (মানুষের ওপর প্রভাব ফেলে এমন যেকোনো কিছুতে ৯৫ বা ৯৯) কিছু মিল ছুটে যায়, কিন্তু দুজন মানুষকে কদাচিৎ গুলিয়ে ফেলে। Rekognition দেয় similarity, পরিচয় না: কাউকে ভবনে ঢুকতে দেওয়া বা পুলিশের খোঁজের মতো সিদ্ধান্তে উঁচু threshold আর মানুষের যাচাই লাগে।
#Content moderation, threshold আর মানুষের যাচাই
Rekognition নিয়ে সবচেয়ে বেশি প্রশ্ন আসে moderation থেকে। DetectModerationLabels একটা স্তরভিত্তিক তালিকায় label ফেরত দেয় (যেমন “Violence” → “Graphic Violence”), প্রতিটা একটা confidence-সহ। তুমি একটা minimum confidence বসাও: এর নিচের label ফেরতই আসে না (default ৫০%)। Social media, broadcast, advertising আর e-commerce এটা ব্যবহার করে নিরাপদ অভিজ্ঞতা দিতে আর নিয়মকানুন মানতে।
ভালো design-এ থাকে দুটো threshold:
- একটা উঁচু দাগের ওপরে (ধরো ৯০%): নিজে থেকেই আটকাও।
- Minimum confidence-এর নিচে: নিজে থেকেই publish করো।
- মাঝখানে, ধূসর এলাকায়: একজন মানুষের কাছে পাঠাও। Amazon Augmented AI (A2I) ML-এর সিদ্ধান্তে একটা মানুষের review loop যোগ করে। Rekognition-এর moderation API-র সাথে এটা বানানো অবস্থাতেই যুক্ত: তুমি activation condition-সহ একটা human loop ঠিক করো (“৬০ থেকে ৯০-এর মধ্যে যেকোনো label”), আর A2I সেই ছবিগুলো একটা work team-এর কাছে পাঠায়: তোমার নিজের staff (private workforce) অথবা কোনো vendor। উত্তরগুলো S3-এ লেখা হয়।
শুধু অনিশ্চিত অল্প কয়েক শতাংশেই মানুষের সময় লাগে; বাকিটা স্বয়ংক্রিয় থাকে। A2I Textract-এর সাথেও কাজ করে, আর custom template দিয়ে যেকোনো model-এর সাথে (লেসন ১৮.২)।
#Video আর custom label
S3-এ রাখা video-র জন্য Rekognition Video চলে asynchronous-ভাবে: StartLabelDetection, StartContentModeration, StartFaceSearch আর অন্যগুলো একটা job শুরু করে, Rekognition কাজ শেষের খবর একটা SNS topic-এ publish করে, আর তুমি মিলিয়ে থাকা Get… call দিয়ে ফল নাও। লম্বা video-র জন্য কখনো Lambda function-এর ভেতরে বসে অপেক্ষা কোরো না: Lambda ১৫ মিনিটে থেমে যায় (লেসন ১৫.১)। Job শুরু করো, ফিরে যাও, আর পরের ধাপটা চালু করুক SNS notification।
তোমার যা দরকার তা যদি pre-trained label-এ না থাকে (কাপড়ের নির্দিষ্ট কোনো খুঁত, তোমার নিজের product-এর packaging), SageMaker AI-তে model বানানোর আগে Rekognition Custom Labels চেষ্টা করো: তুমি মাত্র কয়েক ডজন ছবি upload করে label দাও, আর Rekognition তোমার হয়ে model train করে।
ঢাকার এক news portal-এ Rekognition
Reporter আর পাঠকেরা সারাদিন ছবি upload করে। একটা Lambda function প্রতিটা নতুন ছবি Rekognition-এ পাঠায়, Rekognition ছবিতে tag বসায়, আপত্তিকর কিছু আছে কি না দেখে, আর portal-এর নিজের staff-দের চিনে নেয়। স্বাভাবিক পথটা দেখো, তারপর সেই ধূসর এলাকা যেটা মানুষের হাতে review-তে যায়, আর এমন একটা মুখ যেটা মেলে না।
পরিস্থিতি
একটা API call-এ ফেরত আসে ছবিতে কী কী আছে, প্রতিটা label-এর সাথে একটা confidence score। কোনো model train করতে হয় না।
একজন reporter মিরপুরের পানিতে ডোবা রাস্তার একটা ছবি upload করে। Object-টা S3 bucket-এ পড়ে, আর S3 event notification Lambda function-কে চালু করে (লেসন ১০.৭)।
#Amazon Transcribe: কথা থেকে লেখা
#Transcribe কী করে
Amazon Transcribe কথাকে লেখায় বদলায় automatic speech recognition (ASR) দিয়ে, যেটা একটা deep-learning পদ্ধতি। একটা audio বা video file (বা live stream) পাঠাও, ফেরত পাবে একটা transcript, প্রতিটা শব্দ, তার শুরু আর শেষের সময় আর একটা confidence score-সহ। Use case:
- খোঁজা, মান যাচাই আর analytics-এর জন্য customer service call transcribe করা।
- Video-র closed caption আর subtitle, শব্দের timestamp থেকে বানানো।
- Media archive-এর metadata: হাজার ঘণ্টার সাক্ষাৎকার, যাতে কী বলা হয়েছে তা দিয়ে খোঁজা যায়।
#নির্ভুলতা আর গোপনীয়তার feature
- Speaker diarization (speaker label): কে কখন বলল তা আলাদা করে (spk_0, spk_1…, ৩০ জন পর্যন্ত speaker)। দুই channel-এ record করা দুই পক্ষের call-এ channel identification agent আর customer-কে channel দিয়েই আলাদা করে।
- Custom vocabulary: শব্দ আর phrase-এর একটা তালিকা (brand-এর নাম, product-এর নাম, technical শব্দ), কেমন শোনায় আর কীভাবে লিখতে হবে সেটা-সহ। কোনো training ছাড়াই “bee cash” → “bKash” ঠিক করে।
- Custom language model: পুরো একটা domain-এর নিজস্ব বলার ধরন থাকলে (banking, আইন, আঞ্চলিক উচ্চারণ), তোমার নিজের লেখা দিয়ে model-এর একটা বাড়তি অংশ train করো। হাতে গোনা কয়েকটা নামের জন্য vocabulary, পুরো domain-এর জন্য custom language model।
- PII redaction: personally identifiable information চিনে নেয় (card number, bank account number, phone number, নাম, ঠিকানা…), আর transcript-এ তার জায়গায় বসায় [PII]। চাইলে শুধু redacted transcript নিতে পারো, অথবা redacted আর unredacted দুটোই। Redaction চলে শুধু কিছু ভাষায় (মূলত English-এর নানা রূপ, আর আরও অল্প কয়েকটা), আর AWS সতর্ক করে যে কিছু জায়গা ছুটে যেতে পারে, তাই নিয়ন্ত্রিত data-য় ফলটা যাচাই করে নাও।
- Automatic language identification: ভাষা জানা না থাকলে Transcribe নিজেই চিনে নেয় (চাইলে সম্ভাব্য ভাষার একটা তালিকা থেকে); audio-র মাঝপথে ভাষা বদলালে সেটা সামলায় multi-language identification।
- Vocabulary filtering: যে শব্দ transcript-এ কখনো চাও না (যেমন গালাগাল), সেগুলো ঢেকে দেয় বা সরিয়ে দেয়।
#Batch, streaming আর বিশেষ রূপগুলো
- Batch (
StartTranscriptionJob): S3-এ রাখা file-এর জন্য। এটা asynchronous: job শুরু করে ফিরে যাও; ফল S3-এ লেখা হয়, আর একটা job state change event যায় EventBridge-এ (অধ্যায় ১৯), যেটা পরের ধাপ চালু করতে পারে। - Streaming: live audio-র জন্য (live caption, call চলার সময় agent-কে সাহায্য)। Application HTTP/2 বা WebSocket দিয়ে audio পাঠায়, আর মোটামুটি এক সেকেন্ডের মধ্যে লেখা ফেরত পায়। কোনো file নেই, কোনো job নেই।
- Transcribe Call Analytics: contact centre-এর জন্য বানানো: transcript-এর সাথে প্রত্যেক speaker-এর sentiment, কে কতক্ষণ বলল, কথার মাঝে বাধা, সমস্যা চিহ্নিত করা আর call-এর সারাংশ।
- Transcribe Medical: ডাক্তারের মুখে বলা note আর রোগীর সাথে কথোপকথনের জন্য চিকিৎসার শব্দভান্ডারে শেখানো, HIPAA eligible; এর লেখা প্রায়ই যায় Comprehend Medical-এ (নিচে)।
একটা wallet-এর call recording transcribe করা
bKash-এর মতো একটা mobile wallet তার English support line-এর প্রতিটা call record করে। S3-এ প্রতিটা নতুন recording একটা Transcribe job শুরু করে। একটা job শুরু থেকে শেষ পর্যন্ত দেখো, তারপর বাস্তব project-এ যে তিনটা জিনিস ভুল হয় সেগুলো।
পরিস্থিতি
Batch job asynchronous: চালু করো, শেষ হলে খবর পাও, ফল S3 থেকে পড়ো।
একজন customer আর একজন agent-এর ৬ মিনিটের একটা recording bucket-এ পড়ে, আর event notification function-কে চালু করে।
#Amazon Polly: লেখা থেকে কথা
#Voice আর engine
Amazon Polly deep learning দিয়ে লেখাকে জীবন্ত কথায় বদলায়, যাতে তুমি এমন application বানাতে পারো যেটা কথা বলে: article, blog আর e-book-এ “শোনো” button, phone system-এর voice prompt, ঘোষণা, e-learning-এর ধারাভাষ্য, আর যারা screen পড়তে পারে না তাদের জন্য accessibility। তুমি একটা voice বাছো (৪০টার বেশি ভাষা আর ভাষার রূপে কয়েক ডজন voice) আর একটা engine:
| Engine | কী জিনিস | প্রতি ১০ লাখ অক্ষরে দাম |
|---|---|---|
| Standard | মূল, পুরোনো ধাঁচের voice; সব SSML tag সমর্থন করে | $4 |
| Neural | Neural TTS: অনেক বেশি স্বাভাবিক; নতুন voice-গুলোর বেশিরভাগ | $16 |
| Long-form | Article আর audiobook-এর মতো লম্বা লেখার জন্য বানানো, ভাবপূর্ণ voice | $100 |
| Generative | Polly-র সবচেয়ে বড় model (২০২৪): সবচেয়ে মানুষের মতো, কথোপকথনের ঢঙের voice, ২০২৫–২৬-এ আরও বেড়েছে | $30 |
Polly-র এখন কোনো বাংলা voice নেই; বাংলাদেশের জন্য পাওয়া যায় English (Indian English voice-সহ) আর হিন্দি। টাকা লাগে অক্ষর ধরে; একই লেখা থেকে একই audio আসে, তাই প্রত্যেক শ্রোতার জন্য Polly call না করে একবার বানিয়ে S3-এ cache করে রাখো।
#Lexicon নাকি SSML?
Polly কীভাবে বলবে তা ঠিক করার দুটো হাতিয়ার আছে, আর পরীক্ষা এই দুটোকে মুখোমুখি দাঁড় করাতে ভালোবাসে:
- Pronunciation lexicon নির্দিষ্ট শব্দ সব জায়গায় কীভাবে উচ্চারণ হবে তা ঠিক করে দেয়। তুমি
PutLexiconদিয়ে একবার একটা lexicon upload করো (standard pronunciation lexicon ধাঁচের একটা XML file), আর প্রতিটাSynthesizeSpeechcall-এ তার নাম দাও (এক call-এ পাঁচটা পর্যন্ত)। এটা acronym-এর জন্য (AWS → “Amazon Web Services”, BUET → “বুয়েট”) আর সাজানো শব্দের জন্য (“Bazar365”-এর মতো brand → “Bazar three-sixty-five”, বা slide-এর উদাহরণ, অক্ষরের জায়গায় সংখ্যা দিয়ে লেখা একটা নাম)। - SSML (Speech Synthesis Markup Language) একটা নির্দিষ্ট লেখাকে চিহ্ন দিয়ে সাজায়, বাড়তি নিয়ন্ত্রণের জন্য: বিরতির জন্য
<break>, শব্দে জোর দিতে<emphasis>, ঠিক ঠিক phonetic উচ্চারণের জন্য<phoneme>, গতি, স্বরের উচ্চতা আর আওয়াজের জন্য<prosody>, তারিখ আর সংখ্যার জন্য<say-as>, শ্বাসের শব্দের জন্য<amazon:auto-breaths>, ফিসফিস করতে<amazon:effect name="whispered">, আর newscaster ঢঙে বলতে<amazon:domain name="news">।
#লম্বা লেখা আর speech mark
SynthesizeSpeechaudio সরাসরি ফেরত দেয়, আর এক request-এ সর্বোচ্চ ৩,০০০ billed অক্ষর নেয় (SSML tag-সহ মোট ৬,০০০)।StartSpeechSynthesisTaskasynchronous, সর্বোচ্চ ১,০০,০০০ billed অক্ষর নেয়, ফল লেখে S3-এ, আর শেষ হলে একটা SNS topic-কে জানাতে পারে। লম্বা article আর audiobook-এর জন্য এটা।- Speech mark হলো audio-র সাথে (বা তার বদলে) ফেরত আসা metadata: প্রতিটা বাক্য আর শব্দ কখন শুরু হয়, আর viseme (মুখের আকার)। বলার সাথে সাথে শব্দ highlight করতে আর animated চরিত্রের ঠোঁট মেলাতে এগুলো ব্যবহার হয়।
যে পত্রিকা নিজেই পড়ে শোনায়
ঢাকার একটা English দৈনিক প্রতিটা article-এ একটা “Listen” button যোগ করে। App লেখাটা Polly-কে পাঠায় আর audio বাজায়। দেখো একটা lexicon কীভাবে Polly-র ভুল উচ্চারণ ঠিক করে, SSML কী যোগ করে, আর লম্বা article-এর জন্য কেন আলাদা call লাগে।
পরিস্থিতি
লেখা ঢোকে, audio বের হয়, একটা call-এ। তুমি একটা voice আর একটা engine বাছো।
App ৯০০ অক্ষরের একটা খবরের সারাংশ পাঠায়, voice Kajal (Indian English) আর neural engine দিয়ে। পুরোনো standard engine-এর চেয়ে neural voice অনেক বেশি স্বাভাবিক শোনায়।
#Amazon Translate
#Translate কীভাবে কাজ করে
Amazon Translate স্বাভাবিক আর নির্ভুল অনুবাদ দেয় neural machine translation (NMT) দিয়ে: একটা neural network পুরো বাক্য আর তার প্রসঙ্গ পড়ে, তাই ফলটা পড়লে মনে হয় মানুষ লিখেছে, শব্দ ধরে ধরে বসানো না। এটা ৭৫টা ভাষা সমর্থন করে (বাংলাসহ), আর মূল ভাষা নিজেই চিনে নিতে পারে।
- Real-time (
TranslateText, আর একটা file-এর জন্যTranslateDocument): প্রতি call-এ কয়েক হাজার byte, উত্তর আসে এক সেকেন্ডেরও অনেক কম সময়ে। Chat message, product listing, review, support ticket-এর জন্য। - Batch (
StartTextTranslationJob): S3-এ রাখা বিপুল document (সাধারণ লেখা, HTML আর Office document) এক বা একাধিক ভাষায় asynchronous-ভাবে অনুবাদ করে, ফল S3-এ লেখে, formatting ঠিক রেখে।
Translate-এর কাজ হলো আন্তর্জাতিক user-দের জন্য content নিজের ভাষায় আনা (localise) (website, application, help centre), আর বিপুল পরিমাণ user-এর লেখা content নিজে থেকে অনুবাদ করা: comment, review, এক ভাষা না জানা buyer আর seller-এর মধ্যে chat।
#Custom terminology আর localisation
- Custom terminology: মূল শব্দ আর সেগুলো ঠিক কীভাবে বের হবে, তার একটা CSV বা TSV file। Brand-এর নাম যেমন আছে তেমন থাকে (Apex থাকে “Apex”, “শীর্ষ” না), product-এর নাম আর domain-এর শব্দ সবসময় একইভাবে অনুবাদ হয়। প্রতিটা request-এ terminology-র নাম দাও।
- Active Custom Translation: পুরো একটা domain-এর ধরন বদলাতে (আইন, চিকিৎসা, তোমার কোম্পানির ঢঙ), তুমি দাও parallel data (দুই ভাষায় বাক্যের জোড়া), আর Translate তার output সেই অনুযায়ী মানিয়ে নেয়, তখনও তুমি নিজে কোনো model train না করেই।
- Setting: formality (কিছু ভাষায় আনুষ্ঠানিক বা ঘরোয়া সুর) আর গালাগাল ঢেকে দেওয়া।
একটা marketplace অনুবাদ করা
Daraz-এর মতো একটা marketplace-এ seller-রা listing লেখে বাংলায় বা English-এ, আর প্রত্যেক buyer-কে দেখানো হয় তার বেছে নেওয়া ভাষায়। দেখো real-time অনুবাদ, এমন একটা brand নাম যেটা অনুবাদ হয়ে যায় অথচ হওয়ার কথা না, আর manual-এর জন্য একটা batch job।
পরিস্থিতি
ছোট লেখা ঢোকে, অনুবাদ বের হয়, একটা synchronous call-এ।
রাজশাহীর একজন seller বাংলায় listing লেখে: “খাঁটি রাজশাহীর আম, ৫ কেজির বাক্স”।
#Amazon Lex আর Amazon Connect
#Lex: chatbot বানানোর service
Amazon Lex কথোপকথনের interface বানায়: chatbot আর voice bot। এটা চলে সেই একই deep-learning প্রযুক্তিতে, যেটা Amazon Alexa চালায়, আর এতে দুটো জিনিস একসাথে:
- ASR (automatic speech recognition): কথা → লেখা, voice bot-এর জন্য।
- NLU (natural language understanding): কথার পেছনের intent চেনে (“data pack কিনব”, “appointment নেব”), যেভাবেই বলা হোক, আর slot ভরে (খুঁটিনাটি: pack-এর মাপ, তারিখ, শাখা), কোনো slot বাকি থাকলে পাল্টা প্রশ্ন করে।
Intent পুরো হলে Lex একটা Lambda function (fulfilment) চালু করে, যেটা আসল কাজটা করে: database-এ খোঁজে, CRM call করে, appointment বসায়। Lex শুধু call centre-এর জন্য না: একই bot উত্তর দেয় website-এর chat window-তে, mobile app-এ, Slack, Facebook Messenger বা SMS-এ। কোনো intent যথেষ্ট ভালোভাবে না মিললে Lex ফেরত দেয় built-in fallback intent, যাতে তোমার flow আন্দাজ না করে দুঃখ প্রকাশ করতে পারে বা মানুষের কাছে পাঠাতে পারে। এখনকার version হলো Lex V2 (Lex V1-এর support শেষ হয়েছে ১৫ সেপ্টেম্বর ২০২৫), আর নতুন version-গুলো Amazon Bedrock দিয়ে generative AI feature যোগ করে (লেসন ১৮.২)।
#Connect: cloud-এর contact centre
Amazon Connect হলো cloud-এ চলা একটা virtual contact centre: তোমাকে phone number দেয়, call ধরে (আর করে), আর contact flow দিয়ে (call-এ কী হবে তার drag-and-drop করা script) call-গুলো পাঠায় queue আর মানুষ agent-দের কাছে, যারা browser থেকে কাজ করে। এটা omnichannel: voice, chat, task আর email, সব এক জায়গায়। CRM system-এর সাথে (Salesforce, Zendesk বা তোমার নিজের) আর অন্য AWS service-এর সাথে যুক্ত হয়, আর কোনো আগাম টাকা লাগে না: ব্যবহারের মিনিট ধরে দাম, যেটাকে AWS প্রচার করে প্রচলিত contact-centre system-এর চেয়ে ৮০% পর্যন্ত সস্তা বলে।
#দুটো একসাথে কীভাবে কাজ করে
IVR (interactive voice response) হলো phone line-এর স্বয়ংক্রিয় অংশ। পুরোনো ধরনটা বলে “balance জানতে ১ চাপুন”। Connect আর Lex দিয়ে caller শুধু মুখে বলে কী চায়:
- একটা phone call পৌঁছায় Connect-এ, যেটা contact flow চালায়।
- Flow caller-এর কথা একটা Lex bot-এ stream করে, যেটা intent চেনে (“appointment নিতে চাই”)।
- Lex একটা Lambda function invoke করে, যেটা CRM-এ appointment বসায়।
- উত্তরটা Lex হয়ে ফেরে, আর Connect সেটা caller-কে বলে শোনায় (Polly-র একটা voice দিয়ে)।
- Lex না বুঝলে fallback intent-এর কারণে flow call-টা একজন মানুষ agent-এর কাছে transfer করে, যিনি caller আগে কী বলেছেন তা দেখতে পান।
Connect আর Lex-এ একটা telecom-এর IVR
একটা mobile operator তার “১ চাপুন, ২ চাপুন” phone menu বদলে দেয়। Caller-রা শুধু মুখে বলে কী চায়। Contact centre চালায় Connect, কথা বোঝে Lex, কাজটা করে Lambda। একটা চেনা request দেখো, এমন একটা যেটা Lex বোঝে না, আর website chat-এ সেই একই bot।
পরিস্থিতি
Phone call → Connect → Lex intent → Lambda → CRM, আর উত্তরটা মুখে শোনানো হয়।
একজন customer ১২১-এ call করে। Connect call ধরে আর contact flow চালায়: call-এর drag-and-drop করে বানানো script। প্রথম block-টাই caller-কে একটা Lex bot-এর হাতে দেয়।
#Amazon Comprehend: লেখা বোঝা
#Comprehend কী কী খুঁজে পায়
Amazon Comprehend হলো পুরোপুরি managed, serverless একটা natural language processing (NLP) service: machine learning দিয়ে লেখার ভেতরের অন্তর্দৃষ্টি আর সম্পর্ক খুঁজে বের করে। যেকোনো লেখার জন্য (review, email, support ticket, খবরের লেখা) এটা ফেরত দিতে পারে:
- প্রধান ভাষা (
DetectDominantLanguage): লেখাটা কোন ভাষায়, প্রায় ১০০টা ভাষার মধ্যে থেকে। - Entity (
DetectEntities): মানুষ, জায়গা (location), প্রতিষ্ঠান, brand আর commercial item, তারিখ, পরিমাণ, ঘটনা, পদবি। - Key phrase (
DetectKeyPhrases): যে noun phrase-গুলো অর্থ বহন করে (“the battery”, “the seller”)। - Sentiment (
DetectSentiment): Positive, Negative, Neutral বা Mixed, প্রতিটার একটা score-সহ। Targeted sentiment প্রতিটা entity-র প্রতি মনোভাব দেয় (“camera: positive, battery: negative”)। - Syntax (
DetectSyntax): tokenization (শব্দে ভাগ করা) আর parts of speech (বিশেষ্য, ক্রিয়া, বিশেষণ…)। - PII (
DetectPiiEntities): নাম, ঠিকানা, phone number, bank account আর card number, জাতীয় পরিচয়পত্রের number আর আরও অনেক কিছু, তাদের অবস্থানসহ, যাতে ঢেকে দিতে পারো; batch job একটা redacted copy-ও লিখতে পারে।
প্রতিটা API চলে real time-এ একটা document-এ (কয়েক KB) বা একটা ছোট batch-এ (২৫টা document পর্যন্ত), আর S3-এ রাখা বিশাল document-সংগ্রহে asynchronous job হিসেবে।
#Custom model, ভাষা আর সীমা
- Custom classification: তোমার নিজের label দেওয়া উদাহরণ দিয়ে একটা classifier train করো (“refund চাই”, “delivery-র অভিযোগ”, “প্রশংসা”), ticket ঠিক জায়গায় পাঠাতে, ML-এর দক্ষতা ছাড়াই।
- Custom entity recognition: Comprehend যে entity চেনে না সেগুলো শেখাও (তোমার product code, policy number)।
- Topic modelling: একগাদা document-কে তাদের ভেতর থেকে পাওয়া বিষয় ধরে দলে ভাগ করে (slide-এর “article-কে বিষয় ধরে সাজানো”)। এর অবস্থা জানতে নিচের পাশের কথাটা দেখো।
- ভাষা: sentiment, entity আর key phrase চলে প্রায় এক ডজন ভাষায় (English, Spanish, French, German, Italian, Portuguese, আরবি, হিন্দি, জাপানি, কোরিয়ান, চীনা); PII detection শুধু English আর Spanish-এ; বাংলা চেনে, কিন্তু বিশ্লেষণ করে না। বাংলা review-এর জন্য: আগে Translate দিয়ে English-এ, তারপর Comprehend।
Comprehend lab
একটা লেখা বাছো, তারপর Comprehend-এর বিশ্লেষণগুলো একটা একটা করে চালু করো। প্রতিটা button একই লেখার ওপর একটা করে API call।
১. লেখা
২. বিশ্লেষণ
I ordered a Walton fridge from Daraz on 3 March and it reached Sylhet in two days. Great service!
ফল দেখতে একটা বিশ্লেষণ চালু করো।
#Amazon Comprehend Medical
#Clinical লেখা আর PHI
Amazon Comprehend Medical হলো Comprehend-এর সেই রূপ, যেটা এলোমেলো clinical লেখায় শেখানো: ডাক্তারের note, discharge summary, পরীক্ষার ফল, case note, প্রেসক্রিপশন। এটা ফেরত দেয়:
- চিকিৎসার entity (
DetectEntitiesV2): ওষুধ, রোগ, পরীক্ষা, চিকিৎসা আর procedure, শরীরের অংশ, সঙ্গে তাদের সাথে জোড়া attribute: dosage, কতবার, কোন পথে, শক্তি (“metformin” → 500 mg, দিনে দুবার, মুখে খাওয়া)। Dose আর তার ওষুধের এই জোড়টাই সাধারণ Comprehend দিতে পারে না। - PHI (
DetectPHI): protected health information (নাম, বয়স, ঠিকানা, phone, ID আর record number, তারিখ), যাতে data clinic-এর বাইরে যাওয়ার আগে সেগুলো সরাতে পারো। - Ontology linking: entity-গুলোকে standard চিকিৎসা-code-এর সাথে জোড়ে: রোগের জন্য ICD-10-CM (
InferICD10CM, type 2 diabetes → E11.9), ওষুধের জন্য RxNorm (InferRxNorm), আর চিকিৎসার ধারণার জন্যSNOMED CT(InferSNOMEDCT)। Billing, insurance আর গবেষণার system বোঝে এই code-ই।
এটা একটা pre-trained model: label দেওয়ার মতো clinical data নেই, train করার মতো model নেই। এটা English লেখায় কাজ করে।
#HIPAA eligible বনাম HIPAA compliant
Comprehend Medical (আর Transcribe Medical) HIPAA eligible: একটা business associate agreement (BAA)-এর অধীনে PHI নিয়ে service-টা ব্যবহারের জন্য যা যা নিয়ন্ত্রণ লাগে, AWS-এর তা আছে। এতে তোমার application নিজে থেকে compliant হয়ে যায় না। Compliance হলো shared responsibility: তুমি BAA সই করো, রাখা data KMS দিয়ে আর চলাচলের data TLS দিয়ে encrypt করো, IAM দিয়ে access সীমিত রাখো, CloudTrail দিয়ে log রাখো, আর কে কী দেখবে তা ঠিক করো। পরীক্ষার প্রশ্নে কখনো লেখা থাকে “HIPAA compliant medical text analysis”; উত্তর তখনও Comprehend Medical, কিন্তু সঠিক শব্দটা জেনে রাখো।
#Comprehend Medical-এ data পাঠানো
Document S3-এ রেখে বিশ্লেষণ করো (প্রতি document real time-এ বা batch job দিয়ে), Data Firehose দিয়ে আসা real-time data বিশ্লেষণ করো (লেসন ১৩.৬), অথবা Transcribe Medical দিয়ে ডাক্তারের মুখে বলা কথা বা রোগীর সাথে কথোপকথনকে লেখায় আনো, যেটা তারপর Comprehend Medical বিশ্লেষণ করে।
চট্টগ্রামের এক হাসপাতালের clinical note
ডাক্তাররা মুখে discharge summary বলেন। Transcribe Medical সেটাকে লেখায় বদলায়, আর Comprehend Medical সেখান থেকে ওষুধ, মাত্রা, রোগ আর রোগীর protected health information বের করে। একই note-এ সাধারণ Comprehend কী করে, সেটার সাথে তুলনা করো।
পরিস্থিতি
খোলামেলা লেখা থেকে সাজানো চিকিৎসা-তথ্য, তাদের মধ্যের সম্পর্কসহ।
ডা. করিম মুখে বলেন: “Patient with type 2 diabetes, discharged on metformin 500 mg twice daily.” Transcribe Medical হলো চিকিৎসার শব্দভান্ডারে শেখানো speech-to-text রূপ, তাই ওষুধের নাম ঠিক বানানে আসে।
#কোথায় কোথায় ভুল হয়
- AI job-এর জন্য অপেক্ষা করতে গিয়ে Lambda time out হয়: লম্বা audio, রাখা video আর লম্বা Polly লেখা হলো asynchronous job। Job শুরু করো, ফিরে যাও, আর কাজ শেষের event পেয়ে এগোও (Transcribe-এর জন্য EventBridge, Rekognition Video আর Polly task-এর জন্য SNS)। Lambda ১৫ মিনিটে থেমে যায়।
- আপত্তিকর ছবি ঢুকে যায়, বা নিরীহ ছবি আটকে যায়: minimum confidence বেশি উঁচু (ছুটে যায়), বা block-এর দাগ বেশি নিচু (ভুল করে আটকায়)। দুটো threshold রাখো, আর ধূসর এলাকা A2I-তে পাঠাও।
- একটা মুখ ভুল মানুষের সাথে মিলে যায়: face match threshold বেশি কম, বা মানুষ সম্পর্কে একটা সিদ্ধান্ত পুরোপুরি যন্ত্রের হাতে ছেড়ে দেওয়া। Threshold বাড়াও আর মানুষ দিয়ে যাচাই করাও; মনে রেখো similarity মানে পরিচয় না।
- Brand-এর নাম ভুল transcribe হয়: custom vocabulary যোগ করো (পুরো domain-এর জন্য custom language model)।
- Redaction-সহ একটা transcription job ব্যর্থ হয়: ভাষাটায় redaction নেই (যেমন বাংলা)। ভাষার table দেখো; unredacted transcript অন্যভাবে সুরক্ষিত রাখো।
- Polly একটা request ফিরিয়ে দেয়: লেখা ৩,০০০ billed অক্ষরের বেশি (
StartSpeechSynthesisTaskব্যবহার করো), বা বাছা engine একটা SSML tag সমর্থন করে না (neural voice-এ emphasis বা ফিসফিস)। - একই acronym প্রতিটা article-এ ভুল উচ্চারণ হয়: lexicon ব্যবহার করো, প্রতিটা article-এ SSML না।
- একটা brand নাম অনুবাদ হয়ে যায়: custom terminology যোগ করো।
- বাংলা review-এ Comprehend error দেয়: ওই feature-এ ভাষাটা সমর্থিত না; আগে অনুবাদ করো।
- Mixed review-কে Neutral ধরা হয়: code শুধু Positive আর Negative দেখে। চারটা ভাগই সামলাও।
- Bot মানুষের হাতে না দিয়ে ভুল আন্দাজ করে: fallback intent আর যুক্তিসঙ্গত confidence threshold ব্যবহার করো, আর agent-এর কাছে transfer করো।
- একই S3 object দুবার process হয়: S3 event notification অন্তত একবার পৌঁছানোর নিশ্চয়তা দেয়, তাই দুবারও আসতে পারে। Handler-কে idempotent বানাও (যেমন object key আর version দিয়ে DynamoDB-তে conditional write), যাতে একই event দুবার এলে দুবার bill বা দুবার publish না হয় (পুরো event-চালিত pattern আছে লেসন ১৮.২-এ)।
- সাধারণ একটা কাজের জন্য কেউ custom model বানায়: ছবিতে গাড়ি চেনা বা review-এর sentiment বোঝার জন্য SageMaker AI project মানে অকারণে ভারী করা; pre-trained service সস্তা, দ্রুত চালু হয়, আর কোনো ML team লাগে না।
#System design-এ AI service
#Service জুড়ে জুড়ে কাজ
Service-গুলো হলো ইটের মতো; বাস্তব system এগুলো জুড়ে জুড়ে বানায়, সাধারণত মাঝখানে থাকে S3, Lambda আর EventBridge বা Step Functions (লেসন ১৫.৭):
- Call analytics: Transcribe (redaction-সহ) → Comprehend (sentiment, entity) → ফল S3-এ → Athena আর QuickSight dashboard (লেসন ১৭.১ আর ১৭.৫)।
- বহুভাষিক কথা: Transcribe (Spanish audio) → Translate (English-এ) → Polly (English কথা), যেমন একটা video dub করতে বা একজন agent-কে caller-এর কথা বুঝতে সাহায্য করতে।
- বাংলা review: Translate (bn → en) → Comprehend।
- Clinical documentation: Transcribe Medical → Comprehend Medical → রোগীর record।
- Media library: Rekognition-এর label আর মুখ + কথার জন্য Transcribe → খোঁজার জন্য OpenSearch-এ index (লেসন ১৭.৩)।
- Contact centre: IVR-এর জন্য Connect + Lex, কণ্ঠের জন্য Polly, recording-এর জন্য Transcribe Call Analytics।
#Event-চালিত pattern
পরীক্ষার প্রশ্নে processing flow-এর বর্ণনা থাকে: user একটা file upload করে → S3 bucket → S3 event notification (বা EventBridge) → Lambda → AI service → ফল জমা হয় DynamoDB বা S3-এ। ছোট call (Rekognition-এ একটা ছবি, Comprehend-এ একটা review) function-এর ভেতরেই চলতে পারে; লম্বাগুলো (audio, video, লম্বা লেখা) asynchronous job, যাদের শেষ হওয়াটা পরের ধাপ চালু করে। Textract আর idempotency-র খুঁটিনাটিসহ পুরো pattern আছে লেসন ১৮.২-এ।
নিজের model বানিয়ে চালানোর বদলে managed pre-trained service ব্যবহার করা একটা architectural best practice: চালানোর ঝামেলা কম, তাড়াতাড়ি চালু, ব্যবহার অনুযায়ী দাম। এটা Well-Architected Framework-এর operational excellence আর cost optimisation স্তম্ভের সাথে মেলে (অধ্যায় ২৬)।
#নিরাপত্তা আর গোপনীয়তা
- Encryption: এই service-গুলো চলাচলের data TLS দিয়ে encrypt করে; যা তুমি রাখো (S3 bucket, transcript, custom vocabulary, face collection) তা KMS দিয়ে encrypt করা উচিত (অধ্যায় ২১), আর কয়েকটা service তাদের output-এর জন্য একটা KMS key নেয়।
- Access: কে কোন API call করতে পারবে তা ঠিক করে IAM policy (
rekognition:SearchFacesByImage,comprehendmedical:DetectPHI), আর যে service তোমার S3 object পড়ে, তার সেগুলো পড়ার অনুমতি লাগে। - Private network: এই API-গুলোর বেশিরভাগে VPC interface endpoint (PrivateLink) দিয়ে পৌঁছানো যায়, তাই private subnet থেকে করা call কখনো internet পার হয় না।
- Data-র ব্যবহার: AWS কিছু AI service-এ process হওয়া content service উন্নত করতে ব্যবহার করতে পারে, যদি না তুমি AWS Organizations-এর AI services opt-out policy দিয়ে বেরিয়ে আসো। নিয়ন্ত্রিত workload সাধারণত opt out করে।
- Audit: API call-গুলো CloudTrail-এ লেখা থাকে।
#ঠিক service বাছা
নিচের picker দিয়ে পরীক্ষার মূল দক্ষতাটা অনুশীলন করো: তোমার হাতে কী আছে আর কী চাও, তা থেকে service-এর নাম বলো, আর কাছাকাছি-দেখতে service-টা কেন ভুল তা জানো।
AI service বাছাই
আগে বাছো তোমার হাতে কী আছে, তারপর সেটা দিয়ে কী করাতে চাও। Picker service-এর নাম বলে, কারণ বলে, আর পরীক্ষা যে কাছাকাছি-দেখতে service দিয়ে ফাঁদ পাতে সেটাও দেখায়।
১. তোমার হাতে কী আছে
একটা news portal দিনে হাজার হাজার পাঠকের ছবি আর ছোট video পায়।
২. কী করাতে চাও
উত্তর দেখতে একটা কাজ বাছো।
#নিজে করে দেখো
এই command-গুলো AWS CLI v2 দিয়ে, ap-south-1 (Mumbai)-এ। Bucket-এর নাম, account ID 111122223333 আর সব data placeholder। প্রতিটা call-এ request, মিনিট বা অক্ষর ধরে টাকা লাগে, তাই খরচ খুবই সামান্য, তবু যা বানাবে তা মুছে ফেলো।
# ১. Rekognition: S3-এর একটা ছবিতে label আর moderation
aws rekognition detect-labels --max-labels 5 --min-confidence 80 \
--image '{"S3Object":{"Bucket":"news-photos-example","Name":"2026/11/mirpur-flood.jpg"}}' \
--query 'Labels[].[Name,Confidence]' --output text
# Flood 97.1
# Street 95.4
# Person 99.2
# Car 88.0
# Water 96.3
aws rekognition detect-moderation-labels --min-confidence 60 \
--image '{"S3Object":{"Bucket":"news-photos-example","Name":"comments/beach.jpg"}}'
# { "ModerationLabels": [ { "Confidence": 71.4, "Name": "Suggestive", "ParentName": "",
# "TaxonomyLevel": 1 } ], "ModerationModelVersion": "7.0" }
# ৭১% আছে ৬০ আর ৯০-এর মাঝে: মানুষের review-তে (A2I) পাঠাও, নিজে থেকে আটকিও না।
# ২. Rekognition: একটা face collection আর একটা search
aws rekognition create-collection --collection-id staff-faces
aws rekognition index-faces --collection-id staff-faces --external-image-id R-17 \
--image '{"S3Object":{"Bucket":"news-photos-example","Name":"staff/r17.jpg"}}' \
--query 'FaceRecords[].Face.FaceId'
# [ "5f4d1a2b-0c3e-4b5a-9d8e-7a6b5c4d3e2f" ]
aws rekognition search-faces-by-image --collection-id staff-faces --face-match-threshold 95 \
--image '{"S3Object":{"Bucket":"news-photos-example","Name":"2026/11/press-conf.jpg"}}' \
--query 'FaceMatches[].[Face.ExternalImageId,Similarity]' --output text
# R-17 99.21
# ৩. Transcribe: speaker label আর PII redaction-সহ একটা call, সঙ্গে custom vocabulary
aws transcribe create-vocabulary --vocabulary-name wallet-terms --language-code en-US \
--phrases bKash Pay-Bill Cash-Out
aws transcribe start-transcription-job --transcription-job-name call-20261101-0001 \
--language-code en-US --media MediaFileUri=s3://wallet-calls-example/2026/11/01/0001.wav \
--output-bucket-name wallet-transcripts-example \
--settings ShowSpeakerLabels=true,MaxSpeakerLabels=2,VocabularyName=wallet-terms \
--content-redaction RedactionType=PII,RedactionOutput=redacted
aws transcribe get-transcription-job --transcription-job-name call-20261101-0001 \
--query 'TranscriptionJob.TranscriptionJobStatus'
# "COMPLETED" (transcript-এর JSON আছে wallet-transcripts-example-এ)
# Transcript-এ: "spk_1: my card number is [PII] and it was charged twice"
# ৪. Polly: একটা lexicon, তারপর বিরতিসহ SSML, তারপর task হিসেবে একটা লম্বা article
aws polly put-lexicon --name newsroom --content file://newsroom.pls
# newsroom.pls-এ BUET-এর alias "Bwet", আর AWS-এর "Amazon Web Services"
aws polly synthesize-speech --engine neural --voice-id Kajal --language-code en-IN \
--lexicon-names newsroom --text-type ssml \
--text '<speak>Breaking news.<break time="1s"/> BUET students win the robotics final.</speak>' \
--output-format mp3 headline.mp3
# { "ContentType": "audio/mpeg", "RequestCharacters": 50 }
aws polly start-speech-synthesis-task --engine long-form --voice-id Ruth \
--text file://sunday-feature.txt --output-format mp3 \
--output-s3-bucket-name news-audio-example --sns-topic-arn arn:aws:sns:ap-south-1:111122223333:polly-done
# { "SynthesisTask": { "TaskStatus": "scheduled", "RequestCharacters": 18234, ... } }
# (বাছা engine আর voice তোমার Region-এ আছে কি না দেখে নিও)
# ৫. Custom terminology-সহ Translate
aws translate import-terminology --name shop-brands --merge-strategy OVERWRITE \
--terminology-data Format=CSV,File=fileb://brands.csv
aws translate translate-text --source-language-code en --target-language-code bn \
--terminology-names shop-brands --text "Apex leather shoes, cash on delivery"
# { "TranslatedText": "Apex চামড়ার জুতা, ক্যাশ অন ডেলিভারি", "SourceLanguageCode": "en",
# "TargetLanguageCode": "bn", "AppliedTerminologies": [ { "Name": "shop-brands", ... } ] }
# ৬. Comprehend: sentiment (Mixed-সহ), entity আর PII
aws comprehend detect-sentiment --language-code en \
--text "The camera is excellent, but the battery dies by lunchtime and the seller never replied."
# { "Sentiment": "MIXED", "SentimentScore": { "Positive": 0.09, "Negative": 0.08,
# "Neutral": 0.02, "Mixed": 0.81 } }
aws comprehend detect-entities --language-code en \
--text "I ordered a Walton fridge from Daraz on 3 March and it reached Sylhet in two days." \
--query 'Entities[].[Type,Text]' --output text
# COMMERCIAL_ITEM Walton fridge
# ORGANIZATION Daraz
# DATE 3 March
# LOCATION Sylhet
# QUANTITY two days
aws comprehend detect-pii-entities --language-code en \
--text "Call me on 01700-000000, account 0000-1111-2222." \
--query 'Entities[].[Type,Score]' --output text
# PHONE 0.9998
# BANK_ACCOUNT_NUMBER 0.9991
# ৭. Comprehend Medical: dosage-সহ entity, আর PHI
aws comprehendmedical detect-entities-v2 \
--text "Patient with type 2 diabetes, discharged on metformin 500 mg twice daily." \
--query 'Entities[].[Category,Text,Attributes[].Type]'
# [ ["MEDICAL_CONDITION", "type 2 diabetes", []],
# ["MEDICATION", "metformin", ["DOSAGE", "FREQUENCY"]] ]
aws comprehendmedical detect-phi \
--text "Rahima Begum, 54, of Agrabad, hospital no. CTG-0042, admitted 28 Oct 2026." \
--query 'Entities[].[Type,Text]' --output text
# NAME Rahima Begum
# AGE 54
# ADDRESS Agrabad
# ID CTG-0042
# DATE 28 Oct 2026
# ৮. Lex V2: publish করা একটা bot-এ লেখা পাঠাও (ID-গুলো placeholder)
aws lexv2-runtime recognize-text --bot-id ABCDE12345 --bot-alias-id TSTALIASID \
--locale-id en_US --session-id caller-0001 --text "I want a 30 GB pack for a month" \
--query '[sessionState.intent.name,sessionState.intent.state,messages[0].content]'
# [ "BuyDataPack", "Fulfilled", "Your 30 GB pack is active for 30 days." ]
# ৯. পরিষ্কার করো
aws rekognition delete-collection --collection-id staff-faces
aws transcribe delete-vocabulary --vocabulary-name wallet-terms
aws polly delete-lexicon --name newsroom
aws translate delete-terminology --name shop-brands
Console-এও করে দেখো: Rekognition-এর demo page (নিজের একটা ছবি দাও), Comprehend-এর real-time analysis page (একটা মিশ্র review paste করো), আর Polly console (একটা বাক্য লেখো, standard আর neural voice-এর মধ্যে বদলে শোনো, তারপর একটা <break> যোগ করো)।
#সারসংক্ষেপ
মূল কথা
- Pre-trained AI service: model AWS train করেছে; তুমি শুধু SDK, CLI বা API দিয়ে call করো (inference)। ML-এর দক্ষতা, training data বা server কিছুই লাগে না; দাম ছবি, মিনিট, অক্ষর বা request ধরে। মানালে পরীক্ষা custom SageMaker AI model-এর চেয়ে এগুলোকেই পছন্দ করে।
- Rekognition: ছবি আর video। Label, ছবির লেখা, মুখ খোঁজা আর বিশ্লেষণ (আন্দাজ, সত্য তথ্য না), match threshold দিয়ে collection-এ face search, বিখ্যাত মানুষ, PPE, minimum confidence দিয়ে content moderation, আর ধূসর এলাকার মানুষ-যাচাই A2I-তে (জুলাই ২০২৬ থেকে নতুন customer নেয় না, তবু পরীক্ষার উত্তর এটাই)। নিজের জিনিসের জন্য Custom Labels। রাখা video asynchronous, SNS-সহ; people pathing বন্ধ, streaming video নতুন customer-দের জন্য বন্ধ।
- Transcribe: কথা → লেখা (ASR)। Speaker diarization, custom vocabulary, custom language model, PII redaction ([PII], শুধু সমর্থিত ভাষায়), নিজে থেকে ভাষা চেনা, batch (async, EventBridge) বা streaming; Call Analytics; Transcribe Medical।
- Polly: লেখা → কথা। Standard, neural, long-form, generative engine। Lexicon = একটা শব্দ সব জায়গায় কীভাবে উচ্চারণ হবে (acronym, সাজানো শব্দ); SSML = একটা লেখা কীভাবে পড়া হবে (বিরতি, জোর, phoneme, শ্বাস, ফিসফিস, newscaster; কিছু tag শুধু কিছু engine-এ)। Call প্রতি ৩,০০০ অক্ষর, লম্বা লেখার জন্য S3-এ async task; highlight আর ঠোঁট মেলানোর জন্য speech mark।
- Translate: neural machine translation, real time-এ বা S3 থেকে batch-এ; custom terminology brand নাম রক্ষা করে; site আর user content-এর localisation।
- Lex = chatbot আর voice bot (ASR + NLU, Alexa-র প্রযুক্তি): intent, slot, Lambda fulfilment, fallback intent; web, mobile, Slack, শুধু phone না। Connect = cloud contact centre, omnichannel, ব্যবহার অনুযায়ী দাম। Conversational AI-সহ IVR = Connect + Lex: call → Connect → Lex → Lambda → CRM।
- Comprehend: যেকোনো লেখার NLP: ভাষা, entity, key phrase, sentiment (Positive, Negative, Neutral, Mixed), syntax, PII, custom classification আর entity। Topic modelling নতুন customer-দের জন্য বন্ধ। ভাষা সীমিত: বাংলা আগে অনুবাদ করো।
- Comprehend Medical: clinical লেখা → dosage-সহ ওষুধ, রোগ, পরীক্ষা, PHI (
DetectPHI), ICD-10-CM আর RxNorm code। HIPAA eligible; compliance হলো shared responsibility। Data আসে S3, Firehose বা Transcribe Medical থেকে।
আগে নিজে উত্তর দাও, তারপর ব্যাখ্যাটা পড়ো। ঠিক হলেও পড়ো, কারণ ভুল Option-গুলো কেন ভুল, সেটাও ওখানে আছে।
নিজেকে যাচাই করোপ্রশ্ন
Amazon Rekognition একটা pre-trained service, এর মানে কী?
নিজেকে যাচাই করোপ্রশ্ন
নোটে বলা আছে Rekognition ব্যবহারে কোনো machine learning বা coding জ্ঞান লাগে না। কোনটা সঠিক?
নিজেকে যাচাই করোপ্রশ্ন
Record করা customer service call-কে লেখায় বদলায় কোন service?
নিজেকে যাচাই করোপ্রশ্ন
Amazon Comprehend কোন কোন sentiment ভাগ ফেরত দিতে পারে?
নিজেকে যাচাই করোপ্রশ্ন
একটা news app-কে তার article স্বাভাবিক কণ্ঠে পড়ে শোনাতে হবে। কোন service মানায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা social media start-up অশালীন আর সহিংস ছবি publish হওয়া আটকাতে চায়, কিন্তু নিরীহ ছবি ভুল করে আটকাতে চায় না। Moderation confidence ৬০% থেকে ৯০%-এর মধ্যের ছবি একজন মানুষকে দেখতে হবে। Architect কী ব্যবহার করবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি যাচাই করতে চায় account খুলছে যে মানুষ, সে আর জাতীয় পরিচয়পত্রের মানুষ একই কি না, একটা selfie আর ID-র ছবি মিলিয়ে। Rekognition-এর কোন সুবিধা সবচেয়ে মানানসই?
নিজেকে যাচাই করোপ্রশ্ন
একটা বিশ্ববিদ্যালয় চায় ঢোকার পথের camera তাদের ৫,০০০ নিবন্ধিত staff-কে চিনুক, তাদের ছবির একটা database থেকে। Rekognition-এ কোন design মানায়?
নিজেকে যাচাই করোপ্রশ্ন
Rekognition face analysis একজন customer-এর জন্য বয়স ২৬–৩৪ আর আবেগ Happy ফেরত দিল। Application এই মানগুলো কীভাবে নেবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা Lambda function ৪০ মিনিটের একটা video-তে label খুঁজতে Rekognition Video call করে আর ফলের জন্য অপেক্ষা করে। Function বারবার ব্যর্থ হচ্ছে। ঠিক design কোনটা?
নিজেকে যাচাই করোপ্রশ্ন
একটা wallet-এর support call-এর transcript-এ কোম্পানির নাম bKash বারবার লেখা হচ্ছে bee cash। সবচেয়ে সহজ সমাধান কী?
নিজেকে যাচাই করোপ্রশ্ন
একটা bank-কে call transcript রাখতে হবে, কিন্তু customer-দের মুখে বলা card number সেখানে কখনো থাকতে পারবে না। কোন feature ব্যবহার করবে?
নিজেকে যাচাই করোপ্রশ্ন
বাংলাদেশের একটা wallet তাদের বাংলা (bn-IN) call recording-এ PII redaction-সহ Transcribe job চালু করে, আর job-গুলো ফিরিয়ে দেওয়া হয়। কেন?
নিজেকে যাচাই করোপ্রশ্ন
একটা online school S3-এ রাখা ৩,০০০টা record করা lecture-এর subtitle বানাতে চায়। সবচেয়ে ভালো উপায় কোনটা?
নিজেকে যাচাই করোপ্রশ্ন
একটা পত্রিকার Polly voice প্রতিটা article-এ BUET acronym-টা অক্ষর ধরে ধরে পড়ে, অথচ পাঠকেরা চান এক শব্দে বলা হোক। Team কী করবে?
নিজেকে যাচাই করোপ্রশ্ন
কোন দুটো চাহিদা pronunciation lexicon না, SSML দিয়ে মেটানো হয়?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একজন developer Polly-র neural voice-এ পাঠানো লেখায় ফিসফিস আর emphasis-এর SSML tag যোগ করে, আর Polly request ফিরিয়ে দেয়। কারণ কী?
নিজেকে যাচাই করোপ্রশ্ন
একটা e-book platform-কে ৬০,০০০ অক্ষরের অধ্যায়গুলো audio file বানিয়ে S3-এ রাখতে হবে। Polly-র কোন উপায় কাজ করবে?
নিজেকে যাচাই করোপ্রশ্ন
বাচ্চাদের একটা শেখার app-এ একটা animated চরিত্র আছে, যার মুখ Polly-র কথার সাথে তাল মিলিয়ে নড়তে হবে, আর বলার সাথে সাথে প্রতিটা শব্দ highlight হবে। Polly-র কোন feature এটা দেয়?
নিজেকে যাচাই করোপ্রশ্ন
একটা e-commerce site Amazon Translate দিয়ে product listing অনুবাদ করে, কিন্তু Apex brand নামটা সাধারণ শব্দ হিসেবে অনুবাদ হয়ে যাচ্ছে। কীভাবে ঠিক করবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা বৈশ্বিক কোম্পানি S3-এ রাখা তাদের help centre-এর ১০,০০০টা HTML আর Word document পাঁচটা ভাষায় অনুবাদ করতে চায়, formatting ঠিক রেখে। সবচেয়ে দক্ষ উপায় কোনটা?
নিজেকে যাচাই করোপ্রশ্ন
Amazon Lex নিয়ে কোন দুটো কথা সঠিক?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা telecom চায় caller-রা number না চেপে মুখে বলুক কী দরকার, নিয়মিত request-গুলো CRM-এ customer খুঁজে নিজে থেকে মিটুক, আর বাকি সব যাক একজন মানুষ agent-এর কাছে। কোন architecture মানায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানির দরকার phone number, call queue, browser থেকে কাজ করা agent, chat, আর কোনো আগাম খরচ ছাড়া cloud-এর একটা contact centre। কোন service?
নিজেকে যাচাই করোপ্রশ্ন
কোন দুটো ক্ষমতা Amazon Comprehend-এর?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা product team Comprehend দিয়ে review বিশ্লেষণ করে, কিন্তু শুধু Positive আর Negative ফল গোনে। great camera, terrible battery-র মতো review দুটো গণনার কোনোটাতেই আসছে না। কেন?
নিজেকে যাচাই করোপ্রশ্ন
ঢাকার একটা marketplace বাংলা review Comprehend detect-sentiment-এ পাঠায় আর error পায়, যদিও detect-dominant-language ঠিকঠাক bn ফেরত দেয়। Architect কী করবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা হাসপাতালকে ডাক্তারদের এলোমেলো note আর discharge summary থেকে ওষুধ, dosage আর রোগ বের করতে হবে, আর রোগগুলোকে ICD-10-CM code-এর সাথে জুড়তে হবে। কোন service এর জন্য বানানো?
নিজেকে যাচাই করোপ্রশ্ন
পরীক্ষার একটা প্রশ্ন চিকিৎসার লেখার HIPAA compliant বিশ্লেষণ চায়। কোন কথাটা সবচেয়ে সঠিক?
নিজেকে যাচাই করোপ্রশ্ন
ডাক্তাররা phone-এ রোগীর note মুখে বলেন। হাসপাতাল চায় ওষুধ আর রোগ নিজে থেকে বের হোক। কোন জোড় ব্যবহার করা উচিত?
নিজেকে যাচাই করোপ্রশ্ন
২০২৬-এ একজন architect-এর জানা উচিত এমন কোন দুটো অবস্থা-বদল সঠিকভাবে বলা আছে?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা team ২০ লাখ ছবির catalogue-এ product-এর ছবিতে মানুষ, গাড়ি বা লেখা আছে কি না তা ধরতে SageMaker AI-তে একটা custom deep-learning model train করার প্রস্তাব দেয়। একজন solutions architect প্রথমে কী সুপারিশ করবে?
নিজেকে যাচাই করোপ্রশ্ন
নিচের কোনটা Amazon Transcribe-এর feature না?