
বাংলা speech-to-text চালু করুন—bn-BD আর bn-IN গুলিয়ে ফেলবেন না

Google Cloud Speech-to-Text V2-তে বাংলা অডিওর প্রতিলিপি পেতে অনুরোধে অঞ্চল, মডেল ও ভাষার কোড মিলিয়ে দিন। Google Cloud-এর সমর্থিত ভাষার তালিকায় বাংলাদেশের বাংলার জন্য bn-BD এবং ভারতের বাংলার জন্য bn-IN আলাদা কোড; উভয়ের সঙ্গে chirp_2 মডেল তালিকাভুক্ত। অডিওর বক্তা ও ব্যবহারের ক্ষেত্র অনুযায়ী প্রথমে একটি কোড নির্বাচন করুন।
শুরুতে প্রকল্পে এপিআই ও প্রমাণীকরণ প্রস্তুত করে ছোট অডিও দিয়ে Recognize অনুরোধ পাঠান। একই অডিওতে দুই কোডের ফল তুলতে চাইলে অঞ্চল ও মডেল অপরিবর্তিত রাখুন। Chirp 2-এর মডেল নির্দেশনায় স্বল্প দৈর্ঘ্যের অডিওর জন্য Recognize পদ্ধতি এবং আঞ্চলিক ঠিকানা ও অনুরোধের নমুনা দেওয়া আছে।
প্রকল্প, বিলিং ও পরিচয়পত্র প্রস্তুত করুন
একটি Google Cloud প্রকল্প নির্বাচন করুন, তাতে বিলিং চালু আছে কি না দেখুন এবং Speech-to-Text এপিআই সক্রিয় করুন। Google Cloud-এর ক্লায়েন্ট লাইব্রেরির নির্দেশনায় এসব প্রস্তুতির পাশাপাশি প্রয়োজনীয় প্রকল্পের ভূমিকা, স্থানীয় প্রমাণীকরণ এবং অডিও পাঠিয়ে প্রতিলিপি পাওয়ার ধাপ দেওয়া আছে। অন্যের প্রকল্পে কাজ করলে এপিআই চালু করা ও পরিষেবাটি ব্যবহারের অনুমতি প্রকল্প প্রশাসকের কাছ থেকে নিতে হতে পারে।
পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করলে আগে সেটি ইনস্টল করুন এবং কোন প্রকল্পে অনুরোধ পাঠাচ্ছেন, তার আইডি নির্দিষ্ট করুন। স্থানীয় কম্পিউটারে Google Cloud CLI দিয়ে gcloud init চালিয়ে প্রকল্প নির্বাচন করুন; তারপর gcloud auth application-default login চালিয়ে অ্যাপ্লিকেশনের পরিচয়পত্র তৈরি করুন। Cloud Shell-এ কাজ করলে স্থানীয় কম্পিউটারের জন্য এই শেষ লগইন ধাপটি লাগে না। অনুমতি সংক্রান্ত ত্রুটি এলে অডিও বা ভাষার কোড পাল্টানোর আগে প্রকল্পের আইডি, সক্রিয় এপিআই, বিলিং ও আপনার ভূমিকা মিলিয়ে নিন।
ভাষার কোড ও প্রক্রিয়াকরণের অঞ্চল আলাদা করে বাছুন
bn-BD এবং bn-IN বক্তার বাংলা ভাষার ধরন বোঝাতে অনুরোধের language_codes-এ বসে। us-central1, europe-west4 বা asia-southeast1-এর মতো মান হলো প্রক্রিয়াকরণের অঞ্চল; এগুলো ভাষার কোড নয়। বাংলাদেশের অডিওতে bn-BD দিয়ে শুরু করা এবং ভারতের বাংলাভাষী বক্তার অডিওতে bn-IN দিয়ে শুরু করা যুক্তিসংগত নির্বাচন। তবে বক্তার অবস্থান বা নাগরিকত্ব দেখে প্রতিলিপির নির্ভুলতা নিশ্চিত করা যায় না; নিজের ব্যবহারের অডিওতে ফল মাপতে হবে।
একটি নির্দিষ্ট পরীক্ষার জন্য us-central1 নিলে ক্লায়েন্টের api_endpoint হবে us-central1-speech.googleapis.com এবং recognizer হবে projects/PROJECT_ID/locations/us-central1/recognizers/_। PROJECT_ID-এর জায়গায় নিজের প্রকল্পের আইডি বসান। ঠিকানা ও recognizer-এর locations অংশে একই অঞ্চল রাখুন; ভাষার কোড বদলাতে এই দুই মান বদলানোর প্রয়োজন নেই। কোনো অঞ্চল স্থায়ীভাবে ব্যবহারের আগে সেখানে নির্বাচিত ভাষা ও মডেলের সমর্থন এবং নিজের প্রকল্পে অনুরোধের ফল যাচাই করুন।
একটি অনুরোধে বাংলাদেশের নমুনার জন্য language_codes = ["bn-BD"] ও model = "chirp_2" রাখুন। ভারতের বাংলার নমুনায় language_codes = ["bn-IN"] দিন এবং বাকি মান একই রাখুন। bn-IN বেছে নিলে অডিও স্বয়ংক্রিয়ভাবে ভারতের কোনো অঞ্চলে যায় না; প্রক্রিয়াকরণের স্থান নির্ধারিত হয় নির্বাচিত এপিআই ঠিকানা ও recognizer দিয়ে। ফলে ভাষা ও অঞ্চলকে আলাদা সিদ্ধান্ত হিসেবে নিলে কনফিগারেশনের ভুল ধরা সহজ হয়।
ছোট অডিও দিয়ে Recognize অনুরোধ পাঠান
পাইথনে SpeechClient তৈরি করে ClientOptions-এর api_endpoint-এ নির্বাচিত আঞ্চলিক ঠিকানা দিন। স্থানীয় অডিও ফাইল বাইট হিসেবে পড়ুন। RecognitionConfig-এ auto_decoding_config হিসেবে AutoDetectDecodingConfig(), language_codes হিসেবে নির্বাচিত বাংলা কোডের তালিকা এবং model হিসেবে "chirp_2" বসান। তারপর RecognizeRequest-এ একই অঞ্চলের recognizer, ওই config ও content হিসেবে অডিওর বাইট যুক্ত করে client.recognize(request=request) চালান।
মানগুলো এক জায়গায় দেখলে নমুনাটি এমন: api_endpoint = "us-central1-speech.googleapis.com"; recognizer = "projects/PROJECT_ID/locations/us-central1/recognizers/_"; model = "chirp_2"; language_codes = ["bn-BD"]; content = স্থানীয় অডিও ফাইলের বাইট। এটি একটি কনফিগারেশন নমুনা, সম্পূর্ণ চালানোর উপযোগী পাইথন প্রোগ্রাম নয়। নিজের PROJECT_ID ও ফাইলের পথ বসাতে হবে; ভারতের বাংলা পরীক্ষা করতে শুধু language_codes-এর মান ["bn-IN"] করুন।
প্রথম নমুনায় কথাগুলো পরিষ্কার শোনা যায় এমন রেকর্ডিং নিন এবং আগে নিজে তার নির্ভুল প্রতিলিপি লিখে রাখুন। ফেরত আসা results-এর প্রতিটি অংশের প্রথম বিকল্পে transcript পাওয়া যায়। ফল খালি থাকলে ফাইলটিতে কথা আছে কি না এবং সঠিক অডিও পড়া হয়েছে কি না দেখুন; অনুরোধ ব্যর্থ হলে ত্রুটির বার্তা ধরে পরিচয়পত্র, প্রকল্প, অঞ্চল ও অনুরোধের মান পরীক্ষা করুন। সফল অনুরোধের পরেও ব্যক্তিনাম, স্থানীয় শব্দ ও সংখ্যার প্রতিলিপি রেকর্ডিংয়ের সঙ্গে মিলিয়ে দেখা দরকার।
নিজের অডিওতে শব্দভিত্তিক ভুলের হার মাপুন
একটি পরিষ্কার নমুনায় প্রতিলিপি পাওয়া গেলেই কল, সাক্ষাৎকার বা অন্য বাস্তব রেকর্ডিংয়ে একই মানের ফল পাওয়া যাবে, এমন সিদ্ধান্ত নেওয়া যায় না। ব্যবহারিক যাচাইয়ের জন্য ২০টি ছোট ক্লিপের পরীক্ষার তালিকা তৈরি করতে পারেন। বাংলাদেশ ও ভারতের বাংলা যদি দুটোই ব্যবহার করেন, দুই দলের ক্লিপ আলাদা রাখুন। যে ধরনের অডিও নিয়মিত প্রতিলিপি করবেন, সেই ধরনের উচ্চারণ, বক্তা ও রেকর্ডিংয়ের অবস্থা রাখুন; প্রায় একই বাক্যের পুনরাবৃত্তি এড়িয়ে চলুন। এই সংখ্যা পরীক্ষার জন্য প্রস্তাব, পরিষেবার ঘোষিত নির্ভুলতার মাপ নয়।
একটি কার্যপত্রে প্রতি ক্লিপের জন্য ফাইলের নাম, বক্তার ভাষাভঙ্গি, রেকর্ডিংয়ের অবস্থা, নির্বাচিত অঞ্চল, মডেল, ভাষার কোড, নিজের লেখা নির্ভুল প্রতিলিপি ও এপিআইয়ের প্রতিলিপি রাখুন। প্রথমে বাংলাদেশের ক্লিপে bn-BD এবং ভারতের ক্লিপে bn-IN ব্যবহার করুন। কোনো ক্লিপে বিকল্প কোডের ফল দেখতে চাইলে ঠিক একই অডিও আবার পাঠান; অঞ্চল, মডেল ও প্রতিলিপি গণনার নিয়ম অপরিবর্তিত রাখুন। তাতে পার্থক্যটি ভাষার কোড নির্বাচনের সঙ্গে তুলনা করা সম্ভব হবে।
শব্দভিত্তিক ভুলের হার বা WER মাপতে নিজের লেখা প্রতিলিপি ও এপিআইয়ের লেখা শব্দ ধরে মিলিয়ে তিন ধরনের ভুল গুনুন: ভুল শব্দে বদলে যাওয়া, বাদ পড়া এবং বাড়তি যোগ হওয়া। এই ভুলগুলোর মোট সংখ্যা নির্ভুল প্রতিলিপির শব্দসংখ্যা দিয়ে ভাগ করুন। বাংলা বানানের গ্রহণযোগ্য ভিন্নতা, বিরামচিহ্ন এবং অঙ্ক ও কথায় লেখা সংখ্যাকে কীভাবে গণনা করবেন, আগে নিয়ম স্থির করুন। একই নিয়ম উভয় ভাষার কোডের ফলের ক্ষেত্রে প্রয়োগ করলে তুলনাটি সঙ্গত থাকে।
কার্যপত্রে প্রতিটি ক্লিপের ভুলের সংখ্যা আলাদা রাখুন, তারপর সব ক্লিপের ভুল যোগ করে নির্ভুল প্রতিলিপিগুলোর মোট শব্দসংখ্যা দিয়ে ভাগ করুন। এতে ছোট ও দীর্ঘ ক্লিপকে সমান ওজন দেওয়ার বদলে প্রতিটি শব্দ গণনায় আসে। সামগ্রিক হারের পাশাপাশি কোন ব্যক্তিনাম, স্থাননাম বা স্থানীয় উচ্চারণে বারবার ভুল হচ্ছে, তা লিখে রাখুন। নিজের কাজের অডিওতে যে কোডের ভুল কম এবং গুরুত্বপূর্ণ শব্দের প্রতিলিপি বেশি ব্যবহারযোগ্য, সেই ফলের ভিত্তিতে নির্বাচন করুন।
আরও পড়ুন:
সম্পর্কিত নিবন্ধ


Riverside না Descript—রেকর্ডিং ঘণ্টা আর সম্পাদনার সীমাই দাম ঠিক করে

Descript না CapCut—কথা কাটবেন লেখায়, না Shorts সাজাবেন টাইমলাইনে

ElevenLabs না Murf—স্বাভাবিক কণ্ঠ নয়, Bengali support আগে যাচাই করুন

Otter না Fireflies—বাংলা বৈঠকে ভাষা-সমর্থনই সিদ্ধান্ত বদলে দেয়

Navana.ai পেল ₹৪০ কোটি—১২ ভাষার voice AI-তে data থাকবে কোথায়
আমাদের নিউজলেটার নিন
সর্বশেষ Web3, AI ও ক্রিপ্টো সংবাদ সরাসরি আপনার ইনবক্সে পান।