Node.js এর সাথে Text-to-Speech API ব্যবহার করা

1. ওভারভিউ

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

এই কোডল্যাবে, আপনি Node.js এর সাথে Text-to-Speech API ব্যবহার করার উপর ফোকাস করবেন। আপনি কীভাবে উপলব্ধ ভয়েসগুলি তালিকাভুক্ত করবেন এবং পাঠ্য থেকে অডিও সংশ্লেষিত করবেন তা শিখবেন।

আপনি কি শিখবেন

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

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

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

সমীক্ষা

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

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

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

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

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

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

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

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

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

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCemXuD0pdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCemXuD0pdYncY5Gv3GU Zw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLpGtQd5Q55

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3oK3o67gCu67jCGUJCGUX67j

প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷

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

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

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

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

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJUlANnQF0iBuUyfp1RzVad_4nCa0ZFZkWt2QLZWR5 dgUDQ .

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb- IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFGUXM2QUZQ4 2ecHrbzQ

আপনি যদি আগে কখনও ক্লাউড শেল শুরু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoew65-fi2LJo4twUoew65-fi2LJo4twUoew6rq-13SUj

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

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7OD6P1I47nz8vrAdK7yPgxyPvR8 hA

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

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

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

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

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
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 texttospeech.googleapis.com

4. API অনুরোধগুলি প্রমাণীকরণ করুন৷

টেক্সট-টু-স্পিচ এপিআই-তে অনুরোধ করার জন্য, আপনাকে একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে হবে। একটি পরিষেবা অ্যাকাউন্ট আপনার প্রকল্পের অন্তর্গত এবং এটি Google ক্লায়েন্ট Node.js লাইব্রেরি দ্বারা Text-to-Speech API অনুরোধ করতে ব্যবহৃত হয়। অন্য যেকোনো ব্যবহারকারীর অ্যাকাউন্টের মতো, একটি পরিষেবা অ্যাকাউন্ট একটি ইমেল ঠিকানা দ্বারা প্রতিনিধিত্ব করা হয়। এই বিভাগে, আপনি একটি পরিষেবা অ্যাকাউন্ট তৈরি করতে ক্লাউড SDK ব্যবহার করবেন এবং তারপরে পরিষেবা অ্যাকাউন্ট হিসাবে প্রমাণীকরণ করার জন্য শংসাপত্রগুলি তৈরি করবেন৷

প্রথমে, আপনার GOOGLE_CLOUD_PROJECT এর সাথে একটি পরিবেশ পরিবর্তনশীল সেট করুন যা আপনি এই কোডল্যাব জুড়ে ব্যবহার করবেন:

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)

এর পরে, ব্যবহার করে টেক্সট-টু-স্পিচ API অ্যাক্সেস করতে একটি নতুন পরিষেবা অ্যাকাউন্ট তৈরি করুন:

gcloud iam service-accounts create my-text-to-speech-sa \
  --display-name "my text-to-speech codelab service account"

এরপর, শংসাপত্র তৈরি করুন যা আপনার Node.js কোড আপনার নতুন পরিষেবা অ্যাকাউন্ট হিসাবে লগইন করতে ব্যবহার করবে। এই শংসাপত্রগুলি তৈরি করুন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি JSON ফাইল " ~/key.json " হিসাবে সংরক্ষণ করুন:

gcloud iam service-accounts keys create ~/key.json \
  --iam-account  my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com

অবশেষে, GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল সেট করুন, যেটি Text-to-Speech API Node.js লাইব্রেরি দ্বারা ব্যবহৃত হয়, পরবর্তী ধাপে কভার করা হয়েছে, আপনার শংসাপত্রগুলি খুঁজে পেতে৷ এনভায়রনমেন্ট ভেরিয়েবলটি ব্যবহার করে আপনার তৈরি করা শংসাপত্র JSON ফাইলের সম্পূর্ণ পাথে সেট করা উচিত:

export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"

5. Node.js-এর জন্য Google ক্লাউড টেক্সট-টু-স্পীচ API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

প্রথমে, একটি প্রজেক্ট তৈরি করুন যা আপনি এই Text-to-Speech API ল্যাব চালানোর জন্য ব্যবহার করবেন, আপনার পছন্দের একটি ফোল্ডারে একটি নতুন Node.js প্যাকেজ শুরু করুন:

npm init

NPM প্রকল্প কনফিগারেশন সম্পর্কে বিভিন্ন প্রশ্ন জিজ্ঞাসা করে, যেমন নাম এবং সংস্করণ। প্রতিটি প্রশ্নের জন্য, ডিফল্ট মান গ্রহণ করতে ENTER টিপুন। ডিফল্ট এন্ট্রি পয়েন্ট হল index.js নামের একটি ফাইল।

এরপরে, প্রোজেক্টে Google ক্লাউড স্পিচ লাইব্রেরি ইনস্টল করুন:

npm install --save @google-cloud/text-to-speech

Google ক্লাউডের জন্য একটি Node.js ডেভেলপমেন্ট কীভাবে সেট আপ করবেন সে সম্পর্কে আরও নির্দেশাবলীর জন্য অনুগ্রহ করে সেটআপ গাইড দেখুন।

এখন, আপনি Text-to-Speech API ব্যবহার করতে প্রস্তুত!

6. উপলব্ধ ভয়েস তালিকা

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

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

'use strict';

/**
 * Lists available voices for the specified language.
 *
 * @param {string} languageCode - The language code.
 */
async function listVoices(languageCode) {
  const textToSpeech = require('@google-cloud/text-to-speech');

  const client = new textToSpeech.TextToSpeechClient();

  const [result] = await client.listVoices({languageCode});
  const voices = result.voices;

  voices.forEach((voice) => {
    console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
  });
}

listVoices('en');

কোড অধ্যয়ন করতে এক বা দুই মিনিট সময় নিন। অ্যাপটি চালান:

node . 

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

en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...

7. পাঠ্য থেকে অডিও সংশ্লেষণ করুন

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

index.js ফাইলের ভিতরে নেভিগেট করুন এবং নিম্নলিখিত কোডটি যুক্ত করুন:

/**
 * Sythesizes sample text into an .mp3 file.
 */
async function synthesize() {
  const textToSpeech = require('@google-cloud/text-to-speech');
  const fs = require('fs');
  const util = require('util');

  const client = new textToSpeech.TextToSpeechClient();

  const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';

  const request = {
    input: {text: text},
    voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
    audioConfig: {audioEncoding: 'MP3'},
  };

  const [response] = await client.synthesizeSpeech(request);
  // Write the binary audio content to a local file
  const writeFile = util.promisify(fs.writeFile);
  await writeFile('output.mp3', response.audioContent, 'binary');
  console.log('Audio content written to file: output.mp3');
}

synthesize();

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

node .

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

Audio content written to file "output.mp3"

8. অভিনন্দন!

আপনি অডিও ফাইলে বিভিন্ন ধরনের ট্রান্সক্রিপশন সম্পাদন করতে Node.js ব্যবহার করে Text-to-Speech API ব্যবহার করতে শিখেছেন!

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

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

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

আরও জানুন

লাইসেন্স

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