C# এর সাথে স্পিচ-টু-টেক্সট API ব্যবহার করা

1. সংক্ষিপ্ত বিবরণ

গুগল ক্লাউড স্পিচ-টু-টেক্সট এপিআই ডেভেলপারদের ১২০টি ভাষা এবং ভেরিয়েন্টে অডিওকে টেক্সটে রূপান্তর করতে সক্ষম করে, একটি সহজে ব্যবহারযোগ্য এপিআইতে শক্তিশালী নিউরাল নেটওয়ার্ক মডেল প্রয়োগ করে।

এই কোডল্যাবে, আপনি C# সহ স্পিচ-টু-টেক্সট API ব্যবহারের উপর মনোযোগ দেবেন। আপনি শিখবেন কিভাবে ইংরেজি এবং অন্যান্য ভাষায় একটি অডিও ফাইল ক্লাউড স্পিচ-টু-টেক্সট API-তে ট্রান্সক্রিপশনের জন্য পাঠাতে হয়।

তুমি কি শিখবে

  • ক্লাউড শেল কীভাবে ব্যবহার করবেন
  • স্পিচ-টু-টেক্সট API কীভাবে সক্ষম করবেন
  • API অনুরোধগুলি কীভাবে প্রমাণীকরণ করবেন
  • সি# এর জন্য গুগল ক্লাউড ক্লায়েন্ট লাইব্রেরি কীভাবে ইনস্টল করবেন
  • ইংরেজিতে অডিও ফাইলগুলি কীভাবে প্রতিলিপি করবেন
  • ওয়ার্ড টাইমস্ট্যাম্প ব্যবহার করে অডিও ফাইল কিভাবে ট্রান্সক্রাইব করবেন
  • বিভিন্ন ভাষায় অডিও ফাইল কীভাবে প্রতিলিপি করা যায়

তোমার যা লাগবে

  • একটি গুগল ক্লাউড প্ল্যাটফর্ম প্রকল্প
  • একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
  • সি# ব্যবহার সম্পর্কে পরিচিতি

জরিপ

আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?

শুধু পুরোটা পড়ুন এটি পড়ুন এবং অনুশীলনগুলি সম্পূর্ণ করুন।

C# ব্যবহার করে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

নবীন মধ্যবর্তী দক্ষ

গুগল ক্লাউড প্ল্যাটফর্ম পরিষেবা ব্যবহারের অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

নবীন মধ্যবর্তী দক্ষ

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

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

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

295004821bab6a87.png সম্পর্কে

37d264871000675d.png সম্পর্কে

96d86d3d5655cdbe.png সম্পর্কে

  • এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। এটি একটি অক্ষর স্ট্রিং যা Google API গুলি ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য এবং অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটি কী তা নিয়ে চিন্তা করেন না। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রোজেক্ট আইডি (সাধারণত PROJECT_ID হিসাবে চিহ্নিত) উল্লেখ করতে হবে। যদি আপনি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি র্যান্ডম তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন, এবং এটি উপলব্ধ কিনা তা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে।
  • আপনার তথ্যের জন্য, তৃতীয় একটি মান আছে, একটি Project Number , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপর, ক্লাউড রিসোর্স/API ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবটি চালানোর জন্য খুব বেশি খরচ হবে না, এমনকি কিছু খরচও হবে না। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে রিসোর্স বন্ধ করতে, আপনি আপনার তৈরি রিসোর্সগুলি মুছে ফেলতে পারেন অথবা প্রকল্পটি মুছে ফেলতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা $300 USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন d1264ca30785e435.png সম্পর্কে .

cb81e7c8e34bc8d.png সম্পর্কে

যদি আপনি প্রথমবারের মতো ক্লাউড শেল শুরু করেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রিন দেখানো হবে যা এটি কী তা বর্ণনা করবে। যদি আপনার কাছে একটি মধ্যবর্তী স্ক্রিন থাকে, তাহলে Continue এ ক্লিক করুন।

d95252b003979716.png সম্পর্কে

ক্লাউড শেলের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে।

7833d5e1c5d18f54.png সম্পর্কে

এই ভার্চুয়াল মেশিনটিতে প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল রয়েছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি অফার করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার বেশিরভাগ কাজ, যদি সব না হয়, একটি ব্রাউজার দিয়ে করা যেতে পারে।

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

  1. আপনি প্রমাণিত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি তা না হয়, তাহলে আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

৩. স্পিচ-টু-টেক্সট API সক্ষম করুন

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

gcloud services enable speech.googleapis.com

৪. C# এর জন্য Google Cloud Speech-to-Text API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।

প্রথমে, একটি সহজ C# কনসোল অ্যাপ্লিকেশন তৈরি করুন যা আপনি Speech-to-Text API নমুনা চালানোর জন্য ব্যবহার করবেন:

dotnet new console -n SpeechToTextApiDemo

আপনি অ্যাপ্লিকেশন তৈরি এবং নির্ভরতা সমাধান দেখতে পাবেন:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

এরপর, SpeechToTextApiDemo ফোল্ডারে যান:

cd SpeechToTextApiDemo/

এবং প্রকল্পে Google.Cloud.Speech.V1 NuGet প্যাকেজ যোগ করুন:

dotnet add package Google.Cloud.Speech.V1
info : Adding PackageReference for package 'Google.Cloud.Speech.V1' into project '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.
log  : Restoring packages for /home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Speech.V1' version '1.0.1' added to file '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.

এখন, আপনি স্পিচ-টু-টেক্সট API ব্যবহার করার জন্য প্রস্তুত!

৫. অডিও ফাইল ট্রান্সক্রাইব করুন

এই বিভাগে, আপনি একটি পূর্ব-রেকর্ড করা অডিও ফাইল ইংরেজিতে প্রতিলিপি করবেন। অডিও ফাইলটি গুগল ক্লাউড স্টোরেজে উপলব্ধ।

একটি অডিও ফাইল ট্রান্সক্রাইব করতে, ক্লাউড শেলের উপরের ডান দিক থেকে কোড এডিটরটি খুলুন:

fd3fc1303e63572.png সম্পর্কে

SpeechToTextApiDemo ফোল্ডারের ভিতরে Program.cs ফাইলে যান এবং কোডটি নিম্নলিখিতটি দিয়ে প্রতিস্থাপন করুন:

using Google.Cloud.Speech.V1;
using System;

namespace SpeechToTextApiDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var speech = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
                SampleRateHertz = 16000,
                LanguageCode = LanguageCodes.English.UnitedStates
            };
            var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");         
            
            var response = speech.Recognize(config, audio);

            foreach (var result in response.Results)
            {
                foreach (var alternative in result.Alternatives)
                {
                    Console.WriteLine(alternative.Transcript);
                }
            }
        }
    }
}

এক বা দুই মিনিট সময় নিয়ে কোডটি পড়ুন এবং দেখুন এটি একটি অডিও ফাইল ট্রান্সক্রাইব করতে ব্যবহৃত হয়*।*

Encoding প্যারামিটার API কে বলে যে আপনি অডিও ফাইলের জন্য কোন ধরণের অডিও এনকোডিং ব্যবহার করছেন। Flac হল .raw ফাইলের জন্য এনকোডিং টাইপ (আরও বিস্তারিত জানার জন্য এনকোডিং টাইপের জন্য ডক দেখুন)।

RecognitionAudio অবজেক্টে, আপনি ক্লাউড স্টোরেজে আমাদের অডিও ফাইলের uri অথবা অডিও ফাইলের স্থানীয় ফাইল পাথ API পাস করতে পারেন। এখানে, আমরা একটি ক্লাউড স্টোরেজ uri ব্যবহার করছি।

ক্লাউড শেলে ফিরে, অ্যাপটি চালান:

dotnet run

আপনার নিম্নলিখিত আউটপুটটি দেখতে হবে:

how old is the Brooklyn Bridge

সারাংশ

এই ধাপে, আপনি ইংরেজিতে একটি অডিও ফাইল ট্রান্সক্রাইব করতে এবং ফলাফল প্রিন্ট করতে সক্ষম হয়েছেন। ট্রান্সক্রাইবিং সম্পর্কে আরও পড়ুন।

৬. শব্দের টাইমস্ট্যাম্প দিয়ে প্রতিলিপি করুন

স্পিচ-টু-টেক্সট ট্রান্সক্রাইব করা অডিওর জন্য টাইম অফসেট (টাইমস্ট্যাম্প) সনাক্ত করতে পারে। টাইম অফসেট সরবরাহকৃত অডিওতে প্রতিটি কথ্য শব্দের শুরু এবং শেষ দেখায়। একটি টাইম অফসেট মান অডিওর শুরু থেকে 100 মিলিসেকেন্ড বৃদ্ধি করে অতিবাহিত সময়ের পরিমাণকে প্রতিনিধিত্ব করে।

টাইম অফসেট সহ একটি অডিও ফাইল ট্রান্সক্রাইব করতে, SpeechToTextApiDemo ফোল্ডারের ভিতরে Program.cs ফাইলে যান এবং কোডটি নিম্নলিখিতটি দিয়ে প্রতিস্থাপন করুন:

using Google.Cloud.Speech.V1;
using System;

namespace SpeechToTextApiDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var speech = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
                SampleRateHertz = 16000,
                LanguageCode = LanguageCodes.English.UnitedStates,
                EnableWordTimeOffsets = true
            };
            var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");
     
            var response = speech.Recognize(config, audio);

            foreach (var result in response.Results)
            {
                foreach (var alternative in result.Alternatives)
                {
                    Console.WriteLine($"Transcript: { alternative.Transcript}");
                    Console.WriteLine("Word details:");
                    Console.WriteLine($" Word count:{alternative.Words.Count}");
                    foreach (var item in alternative.Words)
                    {
                        Console.WriteLine($"  {item.Word}");
                        Console.WriteLine($"    WordStartTime: {item.StartTime}");
                        Console.WriteLine($"    WordEndTime: {item.EndTime}");
                    }
                }
            }
        }
    }
}

কোডটি অধ্যয়ন করার জন্য এক বা দুই মিনিট সময় নিন এবং দেখুন এটি শব্দ টাইমস্ট্যাম্প সহ একটি অডিও ফাইল ট্রান্সক্রাইব করতে ব্যবহৃত হয়*।* EnableWordTimeOffsets প্যারামিটার API কে সময় অফসেট সক্ষম করতে বলে (আরও বিস্তারিত জানার জন্য ডক দেখুন)।

ক্লাউড শেলে ফিরে, অ্যাপটি চালান:

dotnet run

আপনার নিম্নলিখিত আউটপুটটি দেখতে হবে:

dotnet run

Transcript: how old is the Brooklyn Bridge
Word details:
 Word count:6
  how
    WordStartTime: "0s"
    WordEndTime: "0.300s"
  old
    WordStartTime: "0.300s"
    WordEndTime: "0.600s"
  is
    WordStartTime: "0.600s"
    WordEndTime: "0.800s"
  the
    WordStartTime: "0.800s"
    WordEndTime: "0.900s"
  Brooklyn
    WordStartTime: "0.900s"
    WordEndTime: "1.100s"
  Bridge
    WordStartTime: "1.100s"
    WordEndTime: "1.500s"

সারাংশ

এই ধাপে, আপনি শব্দ টাইমস্ট্যাম্প সহ ইংরেজিতে একটি অডিও ফাইল ট্রান্সক্রাইব করতে এবং ফলাফলটি প্রিন্ট করতে সক্ষম হয়েছেন। শব্দ অফসেট সহ ট্রান্সক্রাইবিং সম্পর্কে আরও পড়ুন।

৭. বিভিন্ন ভাষা প্রতিলিপি করুন

স্পিচ-টু-টেক্সট API ১০০ টিরও বেশি ভাষায় ট্রান্সক্রিপশন সমর্থন করে! আপনি এখানে সমর্থিত ভাষার একটি তালিকা পেতে পারেন।

এই বিভাগে, আপনি ফরাসি ভাষায় একটি পূর্ব-রেকর্ড করা অডিও ফাইল প্রতিলিপি করবেন। অডিও ফাইলটি গুগল ক্লাউড স্টোরেজে উপলব্ধ।

ফরাসি অডিও ফাইলটি ট্রান্সক্রাইব করতে, SpeechToTextApiDemo ফোল্ডারের ভিতরে Program.cs ফাইলে যান এবং কোডটি নিম্নলিখিতটি দিয়ে প্রতিস্থাপন করুন:

using Google.Cloud.Speech.V1;
using System;

namespace SpeechToTextApiDemo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var speech = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
                LanguageCode = LanguageCodes.French.France
            };
            var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-data/speech/corbeau_renard.flac");

            var response = speech.Recognize(config, audio);

            foreach (var result in response.Results)
            {
                foreach (var alternative in result.Alternatives)
                {
                    Console.WriteLine(alternative.Transcript);
                }
            }
        }
    }
}

কোডটি অধ্যয়ন করার জন্য এক বা দুই মিনিট সময় নিন এবং দেখুন কিভাবে এটি একটি অডিও ফাইল ট্রান্সক্রাইব করতে ব্যবহৃত হয়*।* LanguageCode প্যারামিটার API কে বলে যে অডিও রেকর্ডিংটি কোন ভাষায় আছে।

ক্লাউড শেলে ফিরে, অ্যাপটি চালান:

dotnet run

আপনার নিম্নলিখিত আউটপুটটি দেখতে হবে:

maître corbeau sur un arbre perché tenait en son bec un fromage

এটি একটি জনপ্রিয় ফরাসি শিশুদের গল্পের একটি বাক্য।

সারাংশ

এই ধাপে, আপনি ফরাসি ভাষায় একটি অডিও ফাইল ট্রান্সক্রাইব করতে এবং ফলাফলটি প্রিন্ট করতে সক্ষম হয়েছেন। সমর্থিত ভাষা সম্পর্কে আরও পড়ুন।

৮. অভিনন্দন!

তুমি শিখেছো কিভাবে C# ব্যবহার করে স্পিচ-টু-টেক্সট API ব্যবহার করে অডিও ফাইলে বিভিন্ন ধরণের ট্রান্সক্রিপশন করতে হয়!

পরিষ্কার করা

এই কুইকস্টার্টে ব্যবহৃত রিসোর্সের জন্য আপনার Google ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্টে চার্জ এড়াতে:

  • ক্লাউড প্ল্যাটফর্ম কনসোলে যান।
  • আপনি যে প্রকল্পটি বন্ধ করতে চান তা নির্বাচন করুন, তারপর উপরে 'মুছুন' এ ক্লিক করুন: এটি প্রকল্পটি মুছে ফেলার জন্য সময়সূচী করে।

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।