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

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

গুগল ক্লাউড টেক্সট-টু-স্পিচ এপিআই (বিটা) ডেভেলপারদের তাদের অ্যাপ্লিকেশনে প্লে করার যোগ্য অডিও হিসেবে স্বাভাবিক শোনায় এমন কৃত্রিম মানব কণ্ঠস্বর অন্তর্ভুক্ত করার সুযোগ দেয়। এই টেক্সট-টু-স্পিচ এপিআই টেক্সট অথবা স্পিচ সিন্থেসিস মার্কআপ ল্যাঙ্গুয়েজ (SSML) ইনপুটকে MP3 বা LINEAR16 (WAV ফাইলে ব্যবহৃত এনকোডিং)-এর মতো অডিও ডেটাতে রূপান্তর করে।

এই কোডল্যাবে, আপনি C# এর সাথে টেক্সট-টু-স্পিচ এপিআই (Text-to-Speech API) ব্যবহার করার উপর মনোযোগ দেবেন। আপনি শিখবেন কীভাবে উপলব্ধ ভয়েসগুলির তালিকা তৈরি করতে হয় এবং টেক্সট থেকে অডিও সংশ্লেষণ করতে হয়।

আপনি যা শিখবেন

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

আপনার যা যা লাগবে

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

জরিপ

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

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

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

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

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

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

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

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

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

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

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

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

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

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

  1. ক্লাউড কনসোল থেকে, Activate Cloud Shell-এ ক্লিক করুন। 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].

৩. টেক্সট-টু-স্পিচ এপিআই সক্রিয় করুন।

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

gcloud services enable texttospeech.googleapis.com

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

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

dotnet new console -n TextToSpeechApiDemo

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

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

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

cd TextToSpeechApiDemo/

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

dotnet add package Google.Cloud.TextToSpeech.V1
info : Adding PackageReference for package 'Google.Cloud.TextToSpeech.V1' into project '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
log  : Restoring packages for /home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.TextToSpeech.V1' version '1.0.0-beta01' added to file '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.

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

৫. উপলব্ধ কণ্ঠস্বরগুলির তালিকা করুন

এই অংশে, আপনি প্রথমে অডিও সিন্থেসিসের জন্য ইংরেজিতে উপলব্ধ সমস্ত ভয়েসের একটি তালিকা তৈরি করবেন।

প্রথমে, ক্লাউড শেলের উপরের ডান দিক থেকে কোড এডিটরটি খুলুন:

fd3fc1303e63572.png

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

using Google.Cloud.TextToSpeech.V1;
using System;

namespace TextToSpeechApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TextToSpeechClient.Create();
            var response = client.ListVoices("en");
            foreach (var voice in response.Voices)
            {
                Console.WriteLine($"{voice.Name} ({voice.SsmlGender}); Language codes: {string.Join(", ", voice.LanguageCodes)}");
            }
        }
    }
}

কোডটি ভালোভাবে দেখার জন্য এক বা দুই মিনিট সময় নিন। ক্লাউড শেলে ফিরে এসে অ্যাপটি চালান:

dotnet run

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

en-US-Wavenet-D (Male); Language codes: en-US
en-AU-Wavenet-A (Female); Language codes: en-AU
en-AU-Wavenet-B (Male); Language codes: en-AU
en-AU-Wavenet-C (Female); Language codes: en-AU
en-AU-Wavenet-D (Male); Language codes: en-AU
en-GB-Wavenet-A (Female); Language codes: en-GB
en-GB-Wavenet-B (Male); Language codes: en-GB
en-GB-Wavenet-C (Female); Language codes: en-GB
...
en-GB-Standard-A (Female); Language codes: en-GB
en-GB-Standard-B (Male); Language codes: en-GB
en-AU-Standard-D (Male); Language codes: en-AU

সারসংক্ষেপ

এই ধাপে, আপনি অডিও সিন্থেসিসের জন্য ইংরেজিতে উপলব্ধ সমস্ত ভয়েসের একটি তালিকা তৈরি করতে পেরেছেন। আপনি ‘সাপোর্টেড ভয়েসেস’ পৃষ্ঠাতেও উপলব্ধ ভয়েসগুলির সম্পূর্ণ তালিকা খুঁজে পেতে পারেন।

৬. টেক্সট থেকে অডিও সংশ্লেষণ করুন

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

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

using Google.Cloud.TextToSpeech.V1;
using System;
using System.IO;

namespace TextToSpeechApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TextToSpeechClient.Create();

            // The input to be synthesized, can be provided as text or SSML.
            var input = new SynthesisInput
            {
                Text = "This is a demonstration of the Google Cloud Text-to-Speech API"
            };

            // Build the voice request.
            var voiceSelection = new VoiceSelectionParams
            {
                LanguageCode = "en-US",
                SsmlGender = SsmlVoiceGender.Female
            };

            // Specify the type of audio file.
            var audioConfig = new AudioConfig
            {
                AudioEncoding = AudioEncoding.Mp3
            };

            // Perform the text-to-speech request.
            var response = client.SynthesizeSpeech(input, voiceSelection, audioConfig);
            
            // Write the response to the output file.
            using (var output = File.Create("output.mp3"))
            {
                response.AudioContent.WriteTo(output);
            }
            Console.WriteLine("Audio content written to file \"output.mp3\"");
        }
    }
}

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

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

dotnet run

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

Audio content written to file "output.mp3"

কোড এডিটরের ভেতরে আপনি mp3 ফাইলটি ডাউনলোড করে আপনার মেশিনে স্থানীয়ভাবে চালাতে পারবেন।

a4b9578505422dad.png

সারসংক্ষেপ

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

৭. অভিনন্দন!

আপনি শিখেছেন কীভাবে C# ব্যবহার করে টেক্সট-টু-স্পিচ এপিআই (Text-to-Speech API)-এর সাহায্যে অডিও ফাইলগুলিতে বিভিন্ন ধরণের ট্রান্সক্রিপশন করা যায়!

পরিষ্কার করা

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

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

আরও জানুন

লাইসেন্স

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