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

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

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

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

1. ওভারভিউ

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

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

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

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

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

সমীক্ষা

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

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

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

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

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

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

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

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

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

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

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

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

cb81e7c8e34bc8d.png

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

d95252b003979716.png

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

7833d5e1c5d18f54.png

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

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

  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].

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

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

gcloud services enable speech.googleapis.com

4. C# এর জন্য Google ক্লাউড স্পিচ-টু-টেক্সট API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

প্রথমে, একটি সাধারণ C# কনসোল অ্যাপ্লিকেশন তৈরি করুন যা আপনি স্পিচ-টু-টেক্সট 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 ব্যবহার করতে প্রস্তুত!

5. অডিও ফাইল প্রতিলিপি

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

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

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 পাস করতে পারেন। এখানে, আমরা একটি ক্লাউড স্টোরেজ ইউরি ব্যবহার করছি।

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

dotnet run

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

how old is the Brooklyn Bridge

সারাংশ

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

6. শব্দ টাইমস্ট্যাম্প দিয়ে প্রতিলিপি

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

টাইম অফসেট সহ একটি অডিও ফাইল প্রতিলিপি করতে, 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"

সারাংশ

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

7. বিভিন্ন ভাষা প্রতিলিপি

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

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

ফ্রেঞ্চ অডিও ফাইল ট্রান্সক্রাইব করতে, 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 নিন এবং দেখুন কিভাবে এটি একটি অডিও ফাইল প্রতিলিপিতে ব্যবহার করা হয়*।

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

dotnet run

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

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

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

সারাংশ

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

8. অভিনন্দন!

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

পরিষ্কার করুন

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

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

আরও জানুন

লাইসেন্স

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