মেশিন লার্নিং API একত্রিত করা

মেশিন লার্নিং এপিআই একত্রিত করা

এই কোডল্যাব সম্পর্কে

subjectজুন ৩০, ২০২১-এ শেষবার আপডেট করা হয়েছে
account_circleTorry Yang-এর লেখা

1. ওভারভিউ

এই কোডল্যাবটি আপনাকে কয়েকটি মেশিন লার্নিং API-এর একটি দ্রুত সফর দেবে। আপনি ব্যবহার করবেন:

  • ক্লাউড ভিশন একটি ছবির বিষয়বস্তু বুঝতে
  • ক্লাউড স্পিচ-টু-টেক্সট অডিওকে টেক্সটে প্রতিলিপি করতে
  • ক্লাউড ট্রান্সলেশন যেকোন সমর্থিত ভাষায় একটি নির্বিচারে স্ট্রিং অনুবাদ করতে
  • পাঠ্য থেকে তথ্য বের করতে ক্লাউড ন্যাচারাল ল্যাঙ্গুয়েজ

আপনি কি নির্মাণ করবেন

আপনি একটি পাইপলাইন তৈরি করবেন যা একটি ছবির সাথে একটি অডিও রেকর্ডিং তুলনা করে এবং একে অপরের সাথে তাদের প্রাসঙ্গিকতা নির্ধারণ করে। এখানে আপনি কিভাবে তা সম্পন্ন করবেন তার একটি ঝলক দেখুন:

e6a57e5def315116.jpeg

আপনি কি শিখবেন

  • ভিশন, স্পিচ-টু-টেক্সট, ট্রান্সলেশন এবং ন্যাচারাল ল্যাঙ্গুয়েজ এপিআই কীভাবে ব্যবহার করবেন
  • কোডের নমুনা কোথায় পাবেন

আপনি কি প্রয়োজন হবে

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷

এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হয় তার পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

APIs সক্রিয় করুন

সমস্ত প্রয়োজনীয় API সক্রিয় করতে আপনি এই লিঙ্কে ক্লিক করতে পারেন৷ আপনি এটি করার পরে, প্রমাণীকরণ সেট আপ করার জন্য নির্দেশাবলী উপেক্ষা করুন; আমরা এটা এক মুহূর্তের মধ্যে করব। বিকল্পভাবে, আপনি পৃথকভাবে প্রতিটি API সক্ষম করতে পারেন। এটি করতে, স্ক্রিনের উপরের বামদিকে মেনু আইকনে ক্লিক করুন।

2bfc27ef9ba2ec7d.png

ড্রপ ডাউন থেকে APIs এবং পরিষেবাগুলি নির্বাচন করুন এবং ড্যাশবোর্ডে ক্লিক করুন

a9546a22581facd5.png

APIs এবং পরিষেবাগুলি সক্ষম করুন-এ ক্লিক করুন।

eae7ff043d13a35.png

তারপরে, অনুসন্ধান বাক্সে "ভিশন" অনুসন্ধান করুন। গুগল ক্লাউড ভিশন API এ ক্লিক করুন:

a47893f36372ae2f.png

ক্লাউড ভিশন API সক্ষম করতে সক্ষম করুন ক্লিক করুন:

a24fd082a22030ad.png

এটি সক্ষম করার জন্য কয়েক সেকেন্ডের জন্য অপেক্ষা করুন। এটি সক্রিয় হয়ে গেলে আপনি এটি দেখতে পাবেন:

633e58cbde1b74c6.png

ক্লাউড স্পিচ, ক্লাউড ট্রান্সলেশন এবং ক্লাউড ন্যাচারাল ল্যাঙ্গুয়েজ এপিআই সক্ষম করতে একই প্রক্রিয়াটি পুনরাবৃত্তি করুন।

মেঘের শেল

Google ক্লাউড শেল ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ । এই ডেবিয়ান-ভিত্তিক ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলের সাথে লোড করা হয়েছে ( gcloud , bq , git এবং অন্যান্য) এবং একটি স্থায়ী 5GB হোম ডিরেক্টরি অফার করে। আমরা মেশিন লার্নিং API-এর কাছে আমাদের অনুরোধ তৈরি করতে ক্লাউড শেল ব্যবহার করব।

ক্লাউড শেল দিয়ে শুরু করতে, "Google ক্লাউড শেল সক্রিয় করুন" এ ক্লিক করুন স্ক্রীন শট 2015-06-08 বিকাল 5.30.32 PM.png হেডার বারের উপরের ডানদিকের কোণায় আইকন

24ef50000ca737a4.png

একটি ক্লাউড শেল সেশন কনসোলের নীচে একটি নতুন ফ্রেমের ভিতরে খোলে এবং একটি কমান্ড-লাইন প্রম্পট প্রদর্শন করে। user@project:~$ প্রম্পট প্রদর্শিত না হওয়া পর্যন্ত অপেক্ষা করুন।

ঐচ্ছিক: কোড এডিটর

কমান্ড লাইনের সাথে আপনার স্বাচ্ছন্দ্যের উপর নির্ভর করে, আপনি "লঞ্চ কোড এডিটর" এ ক্লিক করতে চাইতে পারেন b885bf07bc1b02e5.png ক্লাউড শেল বারের উপরের ডানদিকের কোণায় আইকন

de00be9278baf7b8.png

পরিষেবা অ্যাকাউন্ট

প্রমাণীকরণের জন্য আপনার একটি পরিষেবা অ্যাকাউন্টের প্রয়োজন হবে। একটি তৈরি করতে, পরিষেবা অ্যাকাউন্টের পছন্দসই নাম দিয়ে [NAME] প্রতিস্থাপন করুন এবং ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:

gcloud iam service-accounts create [NAME]

এখন আপনাকে সেই পরিষেবা অ্যাকাউন্টটি ব্যবহার করার জন্য একটি কী তৈরি করতে হবে৷ [FILE_NAME] কে চাবির পছন্দসই নাম দিয়ে, উপরে থেকে পরিষেবা অ্যাকাউন্টের নাম দিয়ে [NAME] এবং আপনার প্রকল্পের ID দিয়ে [PROJECT_ID] প্রতিস্থাপন করুন। নিম্নলিখিত কমান্ডটি [FILE_NAME].json হিসাবে কী তৈরি এবং ডাউনলোড করবে:

gcloud iam service-accounts keys create [FILE_NAME].json --iam-account [NAME]@[PROJECT_ID].iam.gserviceaccount.com

পরিষেবা অ্যাকাউন্ট ব্যবহার করার জন্য, আপনাকে পরিবর্তনশীল GOOGLE_APPLICATION_CREDENTIALS কীটির পথে সেট করতে হবে৷ এটি করতে, [PATH_TO_FILE] এবং [FILE_NAME] প্রতিস্থাপনের পরে নিম্নলিখিত কমান্ডটি চালান:

export GOOGLE_APPLICATION_CREDENTIALS=[PATH_TO_FILE]/[FILE_NAME].json

3. মেঘের দৃষ্টি

পাইথন ক্লায়েন্ট

ক্লাউড ভিশনের জন্য আপনার পাইথন ক্লায়েন্টের প্রয়োজন হবে। ইনস্টল করতে, ক্লাউড শেলে নিম্নলিখিত টাইপ করুন:

pip install --upgrade google-cloud-vision --user

চল এটা চেষ্টা করি

আসুন ক্লাউড ভিশন API-এর কোড নমুনাগুলি দেখে নেওয়া যাক। আমরা একটি নির্দিষ্ট ছবিতে কী আছে তা খুঁজে বের করতে আগ্রহী। detect.py এর জন্য দরকারী বলে মনে হচ্ছে তাই আসুন এটি ধরি। একটি উপায় হল detect.py-এর বিষয়বস্তু অনুলিপি করা, Cloud Shell-এ vision.py নামে একটি নতুন ফাইল তৈরি করা এবং vision.py এ সমস্ত কোড পেস্ট করা। আপনি ক্লাউড শেল কোড এডিটরে ম্যানুয়ালি এটি করতে পারেন বা আপনি ক্লাউড শেলে এই কার্ল কমান্ডটি চালাতে পারেন:

curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/vision/cloud-client/detect/detect.py -o vision.py

আপনি এটি করার পরে, ক্লাউড শেলে নিম্নলিখিতটি চালিয়ে API ব্যবহার করুন:

python vision.py labels-uri gs://cloud-samples-data/ml-api-codelab/birds.jpg

আপনি পাখি এবং উটপাখি সম্পর্কে একটি আউটপুট দেখতে পাবেন কারণ এই চিত্রটি বিশ্লেষণ করা হয়েছে: https://storage.googleapis.com/cloud-samples-data/ml-api-codelab/birds.jpg

কি হচ্ছে?

আপনি vision.py 2টি আর্গুমেন্ট পাস করেছেন:

  • labels-uri চালানোর জন্য detect_labels_uri() ফাংশন নির্বাচন করে
  • gs://cloud-samples-data/ml-api-codelab/birds.jpg হল Google ক্লাউড স্টোরেজে একটি ছবির অবস্থান এবং এটিকে uri হিসেবে detect_labels_uri() এ পাস করা হয়

আসুন detect_labels_uri() আরও ঘনিষ্ঠভাবে দেখে নেওয়া যাক। ঢোকানো হয়েছে যে অতিরিক্ত মন্তব্য নোট করুন.

def detect_labels_uri(uri):
   
"""Detects labels in the file located in Google Cloud Storage or on the
    Web."""

   
# relevant import from above
   
# from google.cloud import vision

   
# create ImageAnnotatorClient object
    client
= vision.ImageAnnotatorClient()

   
# create Image object
    image
= vision.types.Image()

   
# specify location of image
    image
.source.image_uri = uri

   
# get label_detection response by passing image to client
    response
= client.label_detection(image=image)

   
# get label_annotations portion of response
    labels
= response.label_annotations
   
print('Labels:')

   
for label in labels:
       
# print the label descriptions
       
print(label.description)

4. ক্লাউড স্পিচ-টু-টেক্সট

পাইথন ক্লায়েন্ট

ক্লাউড স্পিচ-টু-টেক্সটের জন্য আপনার পাইথন ক্লায়েন্টের প্রয়োজন হবে। ইনস্টল করতে, ক্লাউড শেলে নিম্নলিখিত টাইপ করুন:

sudo pip install --upgrade google-cloud-speech

চল এটা চেষ্টা করি

ক্লাউড স্পিচ-টু-টেক্সট-এর কোড নমুনার দিকে যাওয়া যাক। আমরা বক্তৃতা অডিও প্রতিলিপি করতে আগ্রহী. transcribe.py শুরু করার জন্য একটি ভাল জায়গা বলে মনে হচ্ছে তাই আসুন এটি ব্যবহার করুন। transcribe.py-এর বিষয়বস্তু অনুলিপি করুন, ক্লাউড শেল-এ একটি নতুন ফাইল তৈরি করুন যার নাম speech2text.py এবং সমস্ত কোড speech2text.py এ পেস্ট করুন। আপনি ক্লাউড শেল কোড এডিটরে ম্যানুয়ালি এটি করতে পারেন বা আপনি ক্লাউড শেলে এই কার্ল কমান্ডটি চালাতে পারেন:

curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/speech/cloud-client/transcribe.py -o speech2text.py

আপনি এটি করার পরে, ক্লাউড শেলে নিম্নলিখিতটি চালিয়ে API ব্যবহার করুন:

python speech2text.py gs://cloud-samples-data/ml-api-codelab/tr-ostrich.wav

ভুল এনকোডিং এবং নমুনা হার্টজ হার সম্পর্কে অভিযোগ করা ত্রুটি থাকা উচিত। চিন্তা করবেন না, কোডে transcribe_gcs() এ যান এবং RecognitionConfig() থেকে encoding এবং sampe_hertz_rate সেটিংস মুছে দিন। আপনি এটিতে থাকাকালীন, ভাষার কোডটি 'tr-TR' এ পরিবর্তন করুন কারণ tr-ostrich.wav তুর্কি ভাষায় একটি বক্তৃতা রেকর্ডিং।

config = types.RecognitionConfig(language_code='tr-TR')

এখন, speech2text.py আবার চালান। আউটপুটটি কিছু তুর্কি পাঠ্য হওয়া উচিত কারণ এটি বিশ্লেষণ করা অডিও ছিল: https://storage.googleapis.com/cloud-samples-data/ml-api-codelab/tr-ostrich.wav

কি হচ্ছে?

আপনি gs://cloud-samples-data/ml-api-codelab/tr-ostrich.wav পাস করেছেন , Google ক্লাউড স্টোরেজের একটি অডিও ফাইলের অবস্থান speech2text.py তে, যা পরে gcs_uri হিসাবে transscribe_uri transcribe_uri() এ পাস করা হয়

আসুন আমাদের পরিবর্তিত transcribe_uri() কে আরও ঘনিষ্ঠভাবে দেখে নেওয়া যাক।

def transcribe_gcs(gcs_uri):
   
"""Transcribes the audio file specified by the gcs_uri."""

   
from google.cloud import speech
   
# enums no longer used
   
# from google.cloud.speech import enums
   
from google.cloud.speech import types

   
# create ImageAnnotatorClient object
    client
= speech.SpeechClient()

   
# specify location of speech
    audio
= types.RecognitionAudio(uri=gcs_uri)

   
# set language to Turkish
   
# removed encoding and sample_rate_hertz
    config
= types.RecognitionConfig(language_code='tr-TR')

   
# get response by passing config and audio settings to client
    response
= client.recognize(config, audio)

   
# Each result is for a consecutive portion of the audio. Iterate through
   
# them to get the transcripts for the entire audio file.
   
for result in response.results:
       
# The first alternative is the most likely one for this portion.
       
# get the transcript of the first alternative
       
print(u'Transcript: {}'.format(result.alternatives[0].transcript))

5. ক্লাউড অনুবাদ

পাইথন ক্লায়েন্ট

ক্লাউড অনুবাদের জন্য আপনার পাইথন ক্লায়েন্টের প্রয়োজন হবে। ইনস্টল করতে, ক্লাউড শেলে নিম্নলিখিতটি টাইপ করুন:

sudo pip install --upgrade google-cloud-translate

চল এটা চেষ্টা করি

এখন ক্লাউড ট্রান্সলেশনের জন্য কোড নমুনাগুলি পরীক্ষা করা যাক। এই কোডল্যাবের উদ্দেশ্যে, আমরা পাঠ্যকে ইংরেজিতে অনুবাদ করতে চাই। snippets.py আমরা যা চাই তা দেখায়। snippets.py-এর বিষয়বস্তু অনুলিপি করুন, ক্লাউড শেল-এ translate.py translate.py সমস্ত কোড পেস্ট করুন। আপনি ক্লাউড শেল কোড এডিটরে ম্যানুয়ালি এটি করতে পারেন বা আপনি ক্লাউড শেলে এই কার্ল কমান্ডটি চালাতে পারেন:

curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/translate/cloud-client/snippets.py -o translate.py

আপনি এটি করার পরে, ক্লাউড শেলে নিম্নলিখিতটি চালিয়ে API ব্যবহার করুন:

python translate.py translate-text en '你有沒有帶外套'

অনুবাদটি হওয়া উচিত "আপনার কি একটি জ্যাকেট আছে?"।

কি হচ্ছে?

আপনি translate.py এ 3টি আর্গুমেন্ট পাস করেছেন:

  • translate-text চালানোর জন্য translate_text() ফাংশন নির্বাচন করে
  • en টার্গেট হিসেবে translate_text() -এ পাস করা হয় এবং যে ভাষাতে অনুবাদ করা হবে তা নির্দিষ্ট করে দেয়
  • '你有沒有帶外套' হল স্ট্রিং যা অনুবাদ করা হবে এবং এটি টেক্সট হিসেবে translate_text()

আসুন translate_text() কে আরও ঘনিষ্ঠভাবে দেখে নেওয়া যাক। যোগ করা হয়েছে যে মন্তব্য নোট.

def translate_text(target, text):
   
"""Translates text into the target language.

    Target must be an ISO 639-1 language code.
    See https://g.co/cloud/translate/v2/translate-reference#supported_languages
    """

   
# relevant imports from above
   
# from google.cloud import translate
   
# import six

   
# create Client object
    translate_client
= translate.Client()

   
# decode text if it's a binary type
   
# six is a python 2 and 3 compatibility library
   
if isinstance(text, six.binary_type):
        text
= text.decode('utf-8')

   
# get translation result by passing text and target language to client
   
# Text can also be a sequence of strings, in which case this method
   
# will return a sequence of results for each text.
    result
= translate_client.translate(text, target_language=target)

   
# print original text, translated text and detected original language
   
print(u'Text: {}'.format(result['input']))
   
print(u'Translation: {}'.format(result['translatedText']))
   
print(u'Detected source language: {}'.format(
        result
['detectedSourceLanguage']))

6. মেঘের প্রাকৃতিক ভাষা

পাইথন ক্লায়েন্ট

ক্লাউড ন্যাচারাল ল্যাঙ্গুয়েজের জন্য আপনার পাইথন ক্লায়েন্টের প্রয়োজন হবে। ইনস্টল করতে, ক্লাউড শেলে নিম্নলিখিত টাইপ করুন:

sudo pip install --upgrade google-cloud-language

চল এটা চেষ্টা করি

অবশেষে, আসুন ক্লাউড ন্যাচারাল ল্যাঙ্গুয়েজ API-এর কোড নমুনাগুলি দেখি। আমরা টেক্সট সত্তা সনাক্ত করতে চান. snippets.py এ এমন কোড আছে বলে মনে হচ্ছে। snippets.py-এর বিষয়বস্তু অনুলিপি করুন, ক্লাউড শেল-এ natural_language.py নামে একটি নতুন ফাইল তৈরি করুন এবং সমস্ত কোড natural_language.py এ পেস্ট করুন। আপনি ক্লাউড শেল কোড এডিটরে ম্যানুয়ালি এটি করতে পারেন বা আপনি ক্লাউড শেলে এই কার্ল কমান্ডটি চালাতে পারেন:

curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/language/cloud-client/v1/snippets.py -o natural_language.py

আপনি এটি করার পরে, ক্লাউড শেলে নিম্নলিখিতটি চালিয়ে API ব্যবহার করুন:

python natural_language.py entities-text 'where did you leave my bike'

API একটি সত্তা হিসাবে "বাইক" সনাক্ত করা উচিত. সত্তাগুলি যথাযথ বিশেষ্য (পাবলিক ব্যক্তিত্ব, ল্যান্ডমার্ক, ইত্যাদি) বা সাধারণ বিশেষ্য (রেস্তোরাঁ, স্টেডিয়াম, ইত্যাদি) হতে পারে৷

কি হচ্ছে?

আপনি natural_language.py এ 2টি আর্গুমেন্ট পাস করেছেন:

  • entities-text চালানোর জন্য entities_text() ফাংশন নির্বাচন করে
  • 'তুমি আমার বাইক কোথায় রেখেছ' হল সত্তার জন্য বিশ্লেষণ করা স্ট্রিং এবং entities_text()পাঠ্য হিসাবে পাস করা হয়

আসুন entities_text() কে আরও ঘনিষ্ঠভাবে দেখে নেওয়া যাক। ঢোকানো হয়েছে যে নতুন মন্তব্য নোট.

def entities_text(text):
   
"""Detects entities in the text."""
   
# relevant imports from above
   
# from google.cloud import language
   
# from google.cloud.language import enums
   
# from google.cloud.language import types
   
# import six

   
# create LanguageServiceClient object
    client
= language.LanguageServiceClient()

   
# decode text if it's a binary type
   
# six is a python 2 and 3 compatibility library
   
if isinstance(text, six.binary_type):
        text
= text.decode('utf-8')

   
# Instantiates a plain text document.
    document
= types.Document(
        content
=text,
        type
=enums.Document.Type.PLAIN_TEXT)

   
# Detects entities in the document. You can also analyze HTML with:
   
#   document.type == enums.Document.Type.HTML
    entities
= client.analyze_entities(document).entities

   
# entity types from enums.Entity.Type
    entity_type
= ('UNKNOWN', 'PERSON', 'LOCATION', 'ORGANIZATION',
                   
'EVENT', 'WORK_OF_ART', 'CONSUMER_GOOD', 'OTHER')

   
# print information for each entity found
   
for entity in entities:
       
print('=' * 20)
       
print(u'{:<16}: {}'.format('name', entity.name))
       
print(u'{:<16}: {}'.format('type', entity_type[entity.type]))
       
print(u'{:<16}: {}'.format('metadata', entity.metadata))
       
print(u'{:<16}: {}'.format('salience', entity.salience))
       
print(u'{:<16}: {}'.format('wikipedia_url',
              entity
.metadata.get('wikipedia_url', '-')))

7. আসুন তাদের একত্রিত করি

আসুন আমরা নিজেদেরকে মনে করিয়ে দিই যে আপনি কী নির্মাণ করছেন।

e6a57e5def315116.jpeg

এখন সবকিছু একসাথে করা যাক. একটি solution.py ফাইল তৈরি করুন; সমাধান.py-এ পূর্ববর্তী ধাপগুলি থেকে solution.py detect_labels_uri() , transscribe_gcs( transcribe_gcs() , translate_text() এবং entities_text() কপি এবং পেস্ট করুন।

বিবৃতি আমদানি করুন

আনকমেন্ট করুন এবং আমদানি বিবৃতিগুলিকে শীর্ষে নিয়ে যান। নোট করুন যে উভয় speech.types এবং language.types আমদানি করা হচ্ছে৷ এটি দ্বন্দ্বের কারণ হতে চলেছে, তাই আসুন কেবল সেগুলিকে সরিয়ে ফেলি এবং transcribe_gcs() এবং speech.types entities_text() এর প্রতিটি পৃথক ঘটনাকে যথাক্রমে types এবং language.types এ পরিবর্তন করি৷ আপনার সাথে রেখে দেওয়া উচিত:

from google.cloud import vision
from google.cloud import speech
from google.cloud import translate
from google.cloud import language
from google.cloud.language import enums
import six

ফলাফল ফেরত দিন

মুদ্রণের পরিবর্তে, ফাংশনগুলিকে ফলাফলগুলি ফিরিয়ে দিন। আপনার অনুরূপ কিছু থাকা উচিত:

# import statements

def detect_labels_uri(uri):
   
# code

   
# we only need the label descriptions
    label_descriptions
= []
   
for label in labels:
        label_descriptions
.append(label.description)

   
return label_descriptions

def transcribe_gcs(gcs_uri):
   
# code

   
# naive assumption that audio file is short
   
return response.results[0].alternatives[0].transcript

def translate_text(target, text):
   
# code

   
# only interested in translated text
   
return result['translatedText']

def entities_text(text):
   
# code

   
# we only need the entity names
    entity_names
= []
   
for entity in entities:
        entity_names
.append(entity.name)

   
return entity_names

ফাংশন ব্যবহার করুন

যে সমস্ত কঠোর পরিশ্রমের পরে, আপনি সেই ফাংশনগুলিকে কল করতে পারেন। এগিয়ে যান, এটা করুন! এখানে একটি উদাহরণ:

def compare_audio_to_image(audio, image):
   
"""Checks whether a speech audio is relevant to an image."""

   
# speech audio -> text
    transcription
= transcribe_gcs(audio)

   
# text of any language -> english text
    translation
= translate_text('en', transcription)

   
# text -> entities
    entities
= entities_text(translation)

   
# image -> labels
    labels
= detect_labels_uri(image)

   
# naive check for whether entities intersect with labels
    has_match
= False
   
for entity in entities:
       
if entity in labels:
           
# print result for each match
           
print('The audio and image both contain: {}'.format(entity))
            has_match
= True

   
# print if there are no matches
   
if not has_match:
       
print('The audio and image do not appear to be related.')

একাধিক ভাষা সমর্থন

আমরা আগে তুর্কি ভাষায় হার্ডকোড করেছি transcribe_gcs() । আসুন এটি পরিবর্তন করি যাতে ভাষাটি compare_audio_to_image() থেকে নির্দিষ্ট করা যায়। এখানে প্রয়োজনীয় পরিবর্তনগুলি রয়েছে:

def transcribe_gcs(language, gcs_uri):
   
...
    config
= speech.types.RecognitionConfig(language_code=language)
def compare_audio_to_image(language, audio, image):
    transcription
= transcribe_gcs(language, audio)

চেষ্টা করে দেখুন

চূড়ান্ত কোডটি এই GitHub সংগ্রহস্থলের solution.py এ পাওয়া যাবে। এটি দখল করার জন্য এখানে একটি কার্ল কমান্ড রয়েছে:

curl https://raw.githubusercontent.com/googlecodelabs/integrating-ml-apis/master/solution.py -O

গিটহাবের সংস্করণটিতে আর্গপার্স রয়েছে, যা কমান্ড লাইন থেকে নিম্নলিখিতগুলিকে অনুমতি দেয়:

python solution.py tr-TR gs://cloud-samples-data/ml-api-codelab/tr-ball.wav gs://cloud-samples-data/ml-api-codelab/football.jpg

পাওয়া প্রতিটি আইটেমের জন্য, কোডটি আউটপুট করা উচিত "অডিও এবং চিত্র উভয়ই রয়েছে: "। উপরের উদাহরণে, এটি হবে "অডিও এবং চিত্র উভয়ই রয়েছে: বল"।

বোনাস: আরো চেষ্টা করুন

এখানে চেষ্টা করার জন্য আরো অডিও এবং ইমেজ ফাইল অবস্থান আছে.

8. অভিনন্দন!

একটি বক্তৃতা নমুনা প্রদত্ত চিত্র সম্পর্কে কথা বলছে কিনা তা নির্ধারণ করতে আপনি চারটি মেশিন লার্নিং এপিআই অন্বেষণ এবং সংহত করেছেন৷ এই পাইপলাইনের উন্নতির জন্য আরও অনেক উপায় আছে এই মাত্র শুরু!

আমরা কভার করেছি কি

  • ক্লাউড ভিশন API-কে অনুরোধ করা হচ্ছে
  • ক্লাউড স্পিচ-টু-টেক্সট API-কে অনুরোধ করা হচ্ছে
  • ক্লাউড ট্রান্সলেশন API-কে অনুরোধ করা হচ্ছে
  • Cloud Natural Language API-কে অনুরোধ করা
  • উপরের সমস্ত API একসাথে ব্যবহার করা

পরবর্তী পদক্ষেপ