1. ওভারভিউ
স্পিচ-টু-টেক্সট API ব্যবহার করা সহজ API-এ শক্তিশালী নিউরাল নেটওয়ার্ক মডেল প্রয়োগ করে 125টিরও বেশি ভাষা এবং ভেরিয়েন্টে অডিওকে টেক্সটে রূপান্তর করতে বিকাশকারীদের সক্ষম করে।
এই টিউটোরিয়ালে, আপনি Python এর সাথে Speech-to-Text API ব্যবহার করার উপর ফোকাস করবেন।
আপনি কি শিখবেন
- আপনার পরিবেশ কিভাবে সেট আপ করবেন
- কিভাবে ইংরেজিতে অডিও ফাইল ট্রান্সক্রাইব করবেন
- শব্দ টাইমস্ট্যাম্প সহ অডিও ফাইলগুলি কীভাবে প্রতিলিপি করা যায়
- কিভাবে বিভিন্ন ভাষায় অডিও ফাইল ট্রান্সক্রাইব করবেন
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- পাইথন ব্যবহার করে পরিচিতি
সমীক্ষা
আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?
পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
আপনি Google ক্লাউড পরিষেবাগুলির সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
- প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে। - আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি ক্লাউড শেল ব্যবহার করবেন, ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন
.
যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি প্রয়োজনীয় সমস্ত বিকাশের সরঞ্জাম দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5 GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, ব্রাউজার দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
3. পরিবেশ সেটআপ
আপনি স্পিচ-টু-টেক্সট API ব্যবহার শুরু করার আগে, API সক্ষম করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud services enable speech.googleapis.com
আপনি এই মত কিছু দেখতে হবে:
Operation "operations/..." finished successfully.
এখন, আপনি স্পিচ-টু-টেক্সট API ব্যবহার করতে পারেন!
আপনার হোম ডিরেক্টরিতে নেভিগেট করুন:
cd ~
নির্ভরতা বিচ্ছিন্ন করতে একটি পাইথন ভার্চুয়াল পরিবেশ তৈরি করুন:
virtualenv venv-speech
ভার্চুয়াল পরিবেশ সক্রিয় করুন:
source venv-speech/bin/activate
IPython এবং Speech-to-Text API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন:
pip install ipython google-cloud-speech
আপনি এই মত কিছু দেখতে হবে:
... Installing collected packages: ..., ipython, google-cloud-speech Successfully installed ... google-cloud-speech-2.25.1 ...
এখন, আপনি স্পিচ-টু-টেক্সট API ক্লায়েন্ট লাইব্রেরি ব্যবহার করার জন্য প্রস্তুত!
পরবর্তী ধাপে, আপনি IPython নামে একটি ইন্টারেক্টিভ পাইথন ইন্টারপ্রেটার ব্যবহার করবেন, যা আপনি আগের ধাপে ইনস্টল করেছেন। ক্লাউড শেলে ipython
চালিয়ে একটি সেশন শুরু করুন:
ipython
আপনি এই মত কিছু দেখতে হবে:
Python 3.9.2 (default, Feb 28 2021, 17:03:44) Type 'copyright', 'credits' or 'license' for more information IPython 8.18.1 -- An enhanced Interactive Python. Type '?' for help. In [1]:
আপনি আপনার প্রথম অনুরোধ করতে প্রস্তুত...
4. অডিও ফাইল প্রতিলিপি
এই বিভাগে, আপনি একটি ইংরেজি অডিও ফাইল প্রতিলিপি করবেন।
আপনার IPython অধিবেশনে নিম্নলিখিত কোড অনুলিপি করুন:
from google.cloud import speech
def speech_to_text(
config: speech.RecognitionConfig,
audio: speech.RecognitionAudio,
) -> speech.RecognizeResponse:
client = speech.SpeechClient()
# Synchronous speech recognition request
response = client.recognize(config=config, audio=audio)
return response
def print_response(response: speech.RecognizeResponse):
for result in response.results:
print_result(result)
def print_result(result: speech.SpeechRecognitionResult):
best_alternative = result.alternatives[0]
print("-" * 80)
print(f"language_code: {result.language_code}")
print(f"transcript: {best_alternative.transcript}")
print(f"confidence: {best_alternative.confidence:.0%}")
কোডটি অধ্যয়ন করার জন্য একটি মুহূর্ত নিন এবং দেখুন কিভাবে এটি একটি audio
ফাইল config
করতে recognize
লাইব্রেরি পদ্ধতি ব্যবহার করে*।
একটি অনুরোধ পাঠান:
config = speech.RecognitionConfig(
language_code="en",
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/brooklyn_bridge.flac",
)
response = speech_to_text(config, audio)
print_response(response)
আপনি নিম্নলিখিত আউটপুট দেখতে হবে:
-------------------------------------------------------------------------------- language_code: en-us transcript: how old is the Brooklyn Bridge confidence: 98%
স্বয়ংক্রিয় বিরাম চিহ্ন সক্ষম করতে কনফিগারেশন আপডেট করুন এবং একটি নতুন অনুরোধ পাঠান:
config.enable_automatic_punctuation = True
response = speech_to_text(config, audio)
print_response(response)
আপনি নিম্নলিখিত আউটপুট দেখতে হবে:
-------------------------------------------------------------------------------- language_code: en-us transcript: How old is the Brooklyn Bridge? confidence: 98%
সারাংশ
এই ধাপে, আপনি বিভিন্ন পরামিতি ব্যবহার করে ইংরেজিতে একটি অডিও ফাইল প্রতিলিপি করতে এবং ফলাফল প্রিন্ট করতে সক্ষম হয়েছেন। আপনি অডিও ফাইল প্রতিলিপি সম্পর্কে আরো পড়তে পারেন.
5. শব্দ টাইমস্ট্যাম্প পান
স্পিচ-টু-টেক্সট প্রতিলিপিকৃত অডিওর জন্য টাইম অফসেট (টাইমস্ট্যাম্প) সনাক্ত করতে পারে। সময় অফসেটগুলি সরবরাহ করা অডিওতে প্রতিটি উচ্চারিত শব্দের শুরু এবং শেষ দেখায়। একটি সময়ের অফসেট মান 100ms এর বৃদ্ধিতে অডিওর শুরু থেকে অতিবাহিত সময়ের পরিমাণকে উপস্থাপন করে।
শব্দ টাইমস্ট্যাম্প সহ একটি অডিও ফাইল প্রতিলিপি করতে, আপনার IPython অধিবেশনে নিম্নলিখিত অনুলিপি করে আপনার কোড আপডেট করুন:
def print_result(result: speech.SpeechRecognitionResult):
best_alternative = result.alternatives[0]
print("-" * 80)
print(f"language_code: {result.language_code}")
print(f"transcript: {best_alternative.transcript}")
print(f"confidence: {best_alternative.confidence:.0%}")
print("-" * 80)
for word in best_alternative.words:
start_s = word.start_time.total_seconds()
end_s = word.end_time.total_seconds()
print(f"{start_s:>7.3f} | {end_s:>7.3f} | {word.word}")
কোড অধ্যয়ন করার জন্য একটি মুহূর্ত সময় নিন এবং দেখুন কিভাবে এটি শব্দ টাইমস্ট্যাম্প* সহ একটি অডিও ফাইল প্রতিলিপি করে।* enable_word_time_offsets
প্যারামিটার API কে প্রতিটি শব্দের জন্য সময় অফসেট ফেরত দিতে বলে (আরো বিশদ বিবরণের জন্য ডক দেখুন)।
একটি অনুরোধ পাঠান:
config = speech.RecognitionConfig(
language_code="en",
enable_automatic_punctuation=True,
enable_word_time_offsets=True,
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/brooklyn_bridge.flac",
)
response = speech_to_text(config, audio)
print_response(response)
আপনি নিম্নলিখিত আউটপুট দেখতে হবে:
-------------------------------------------------------------------------------- language_code: en-us transcript: How old is the Brooklyn Bridge? confidence: 98% -------------------------------------------------------------------------------- 0.000 | 0.300 | How 0.300 | 0.600 | old 0.600 | 0.800 | is 0.800 | 0.900 | the 0.900 | 1.100 | Brooklyn 1.100 | 1.400 | Bridge?
সারাংশ
এই ধাপে, আপনি শব্দ টাইমস্ট্যাম্প সহ ইংরেজিতে একটি অডিও ফাইল প্রতিলিপি করতে এবং ফলাফল মুদ্রণ করতে সক্ষম হয়েছেন। শব্দ টাইমস্ট্যাম্প পাওয়ার বিষয়ে আরও পড়ুন।
6. বিভিন্ন ভাষা প্রতিলিপি
স্পিচ-টু-টেক্সট API 125টিরও বেশি ভাষা এবং রূপগুলিকে স্বীকৃতি দেয়! আপনি এখানে সমর্থিত ভাষার একটি তালিকা পেতে পারেন।
এই বিভাগে, আপনি একটি ফরাসি অডিও ফাইল প্রতিলিপি করবেন।
ফরাসি অডিও ফাইল প্রতিলিপি করতে, আপনার IPython অধিবেশনে নিম্নলিখিত অনুলিপি করে আপনার কোড আপডেট করুন:
config = speech.RecognitionConfig(
language_code="fr-FR",
enable_automatic_punctuation=True,
enable_word_time_offsets=True,
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/corbeau_renard.flac",
)
response = speech_to_text(config, audio)
print_response(response)
আপনি নিম্নলিখিত আউটপুট দেখতে হবে:
-------------------------------------------------------------------------------- language_code: fr-fr transcript: Maître corbeau sur un arbre perché Tenait dans son bec un fromage maître Renard par l'odeur alléché lui tint à peu près ce langage et bonjour monsieur du corbeau. confidence: 94% -------------------------------------------------------------------------------- 0.000 | 0.700 | Maître 0.700 | 1.100 | corbeau 1.100 | 1.300 | sur 1.300 | 1.600 | un 1.600 | 1.700 | arbre 1.700 | 2.000 | perché 2.000 | 3.000 | Tenait 3.000 | 3.000 | dans 3.000 | 3.200 | son 3.200 | 3.500 | bec 3.500 | 3.700 | un 3.700 | 3.800 | fromage ... 10.800 | 11.800 | monsieur 11.800 | 11.900 | du 11.900 | 12.100 | corbeau.
সারাংশ
এই ধাপে, আপনি একটি ফরাসি অডিও ফাইল প্রতিলিপি করতে এবং ফলাফল মুদ্রণ করতে সক্ষম হয়েছেন। আপনি সমর্থিত ভাষা সম্পর্কে আরও পড়তে পারেন।
7. অভিনন্দন!
আপনি শিখেছেন কিভাবে অডিও ফাইলে বিভিন্ন ধরনের ট্রান্সক্রিপশন করতে পাইথন ব্যবহার করে স্পিচ-টু-টেক্সট API ব্যবহার করতে হয়!
পরিষ্কার করুন
ক্লাউড শেল থেকে আপনার উন্নয়ন পরিবেশ পরিষ্কার করতে:
- আপনি যদি এখনও আপনার IPython সেশনে থাকেন, তাহলে শেল এ ফিরে যান:
exit
- পাইথন ভার্চুয়াল পরিবেশ ব্যবহার বন্ধ করুন:
deactivate
- আপনার ভার্চুয়াল পরিবেশ ফোল্ডার মুছুন:
cd ~ ; rm -rf ./venv-speech
ক্লাউড শেল থেকে আপনার Google ক্লাউড প্রকল্প মুছে ফেলতে:
- আপনার বর্তমান প্রকল্প আইডি পুনরুদ্ধার করুন:
PROJECT_ID=$(gcloud config get-value core/project)
- নিশ্চিত করুন যে এই প্রকল্পটি আপনি মুছতে চান:
echo $PROJECT_ID
- প্রকল্পটি মুছুন:
gcloud projects delete $PROJECT_ID
আরও জানুন
- আপনার ব্রাউজারে ডেমো পরীক্ষা করুন: https://cloud.google.com/speech-to-text
- স্পিচ-টু-টেক্সট ডকুমেন্টেশন: https://cloud.google.com/speech-to-text/docs
- Google ক্লাউডে পাইথন: https://cloud.google.com/python
- পাইথনের জন্য ক্লাউড ক্লায়েন্ট লাইব্রেরি: https://github.com/googleapis/google-cloud-python
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।