chrome.tts

বর্ণনা

সংশ্লেষিত টেক্সট-টু-স্পীচ (TTS) চালাতে chrome.tts API ব্যবহার করুন। এছাড়াও সম্পর্কিত ttsEngine API দেখুন, যা একটি এক্সটেনশনকে একটি স্পিচ ইঞ্জিন বাস্তবায়নের অনুমতি দেয়।

ক্রোম অপারেটিং সিস্টেম দ্বারা প্রদত্ত বক্তৃতা সংশ্লেষণ ক্ষমতা ব্যবহার করে Windows (SAPI 5 ব্যবহার করে), Mac OS X এবং ChromeOS-এ এই ক্ষমতা প্রদান করে। সমস্ত প্ল্যাটফর্মে, ব্যবহারকারী এমন এক্সটেনশনগুলি ইনস্টল করতে পারেন যা বিকল্প স্পিচ ইঞ্জিন হিসাবে নিজেদের নিবন্ধন করে।

অনুমতি

tts

ধারণা এবং ব্যবহার

বক্তৃতা তৈরি করুন

কথা বলার জন্য আপনার এক্সটেনশন থেকে speak() কল করুন। যেমন:

chrome.tts.speak('Hello, world.');

অবিলম্বে কথা বলা বন্ধ করতে, শুধু stop() কল করুন :

chrome.tts.stop();

আপনি বিকল্পগুলি প্রদান করতে পারেন যা বক্তৃতার বিভিন্ন বৈশিষ্ট্য নিয়ন্ত্রণ করে, যেমন এর হার, পিচ এবং আরও অনেক কিছু। যেমন:

chrome.tts.speak('Hello, world.', {'rate': 2.0});

ভাষাটি নির্দিষ্ট করাও একটি ভাল ধারণা যাতে সেই ভাষাটিকে সমর্থনকারী একটি সংশ্লেষক (এবং আঞ্চলিক উপভাষা, যদি প্রযোজ্য হয়) বেছে নেওয়া হয়।

chrome.tts.speak('Hello, world.', {'lang': 'en-US', 'rate': 2.0});

ডিফল্টরূপে, প্রতিটি কল to speak() চলমান বক্তৃতায় বাধা দেয় এবং অবিলম্বে কথা বলে। একটি কল কোন কিছুতে ব্যাঘাত ঘটাচ্ছে কিনা তা নির্ধারণ করতে, আপনি isSpeaking() কল করতে পারেন। উপরন্তু, আপনি এই উচ্চারণটিকে উচ্চারণের একটি সারিতে যোগ করার জন্য enqueue বিকল্পটি ব্যবহার করতে পারেন যা বর্তমান উচ্চারণ শেষ হয়ে গেলে উচ্চারিত হবে।

chrome.tts.speak('Speak this first.');
chrome.tts.speak(
    'Speak this next, when the first sentence is done.', {'enqueue': true});

সমস্ত বিকল্পের একটি সম্পূর্ণ বিবরণ tts.speak() এর অধীনে পাওয়া যাবে। সব বক্তৃতা ইঞ্জিন সব বিকল্প সমর্থন করবে না.

ত্রুটিগুলি ধরতে এবং আপনি সঠিকভাবে speak() কল করছেন তা নিশ্চিত করতে, একটি কলব্যাক ফাংশন পাস করুন যা কোন যুক্তি নেয় না। কলব্যাকের ভিতরে, কোনো ত্রুটি আছে কিনা দেখতে runtime.lastError চেক করুন।

chrome.tts.speak(
  utterance,
  options,
  function() {
    if (chrome.runtime.lastError) {
      console.log('Error: ' + chrome.runtime.lastError.message);
    }
  }
);

ইঞ্জিন স্পিচ তৈরি করা শুরু করার আগেই কলব্যাকটি এখনই ফিরে আসে। কলব্যাকের উদ্দেশ্য হল আপনার TTS API ব্যবহারে সিনট্যাক্স ত্রুটির বিষয়ে আপনাকে সতর্ক করা, স্পিচ সংশ্লেষণ এবং আউটপুট করার প্রক্রিয়াতে ঘটতে পারে এমন সমস্ত সম্ভাব্য ত্রুটি ধরা না করা। এই ত্রুটিগুলিও ধরতে, আপনাকে পরবর্তী বিভাগে বর্ণিত একটি ইভেন্ট লিসেনার ব্যবহার করতে হবে।

ঘটনা শুনুন

সংশ্লেষিত বক্তৃতার স্থিতি সম্পর্কে আরও রিয়েল-টাইম তথ্য পেতে, একটি ইভেন্ট শ্রোতাকে speak() বিকল্পগুলিতে পাস করুন, এইভাবে:

chrome.tts.speak(
  utterance,
  {
    onEvent: function(event) {
      console.log('Event ' + event.type + ' at position ' + event.charIndex);
      if (event.type == 'error') {
        console.log('Error: ' + event.errorMessage);
      }
    }
  },
  callback
);

প্রতিটি ইভেন্টে একটি ইভেন্টের ধরন, উচ্চারণের সাথে সম্পর্কিত বর্তমান বক্তৃতার অক্ষর সূচক এবং ত্রুটি ইভেন্টগুলির জন্য, একটি ঐচ্ছিক ত্রুটি বার্তা অন্তর্ভুক্ত থাকে। ইভেন্টের প্রকারগুলি হল:

  • 'start' : ইঞ্জিনটি উচ্চারণ বলতে শুরু করেছে।
  • 'word' : একটি শব্দের সীমারেখা পৌঁছে গেছে। বর্তমান বক্তৃতা অবস্থান নির্ধারণ করতে event.charIndex ব্যবহার করুন।
  • 'sentence' : একটি বাক্যের সীমারেখা পৌঁছেছে। বর্তমান বক্তৃতা অবস্থান নির্ধারণ করতে event.charIndex ব্যবহার করুন।
  • 'marker' : একটি SSML মার্কার পৌঁছেছে। বর্তমান বক্তৃতা অবস্থান নির্ধারণ করতে event.charIndex ব্যবহার করুন।
  • 'end' : ইঞ্জিনটি উচ্চারণটি বলা শেষ করেছে।
  • 'interrupted' : এই উচ্চারণটি speak() বা stop() করার জন্য অন্য একটি কল দ্বারা বাধাপ্রাপ্ত হয়েছিল এবং শেষ হয়নি।
  • 'cancelled' : এই উচ্চারণটি সারিবদ্ধ ছিল, কিন্তু তারপর speak() বা stop() করার জন্য অন্য একটি কল দ্বারা বাতিল করা হয়েছে এবং কখনই কথা বলতে শুরু করেনি।
  • 'error' : একটি ইঞ্জিন-নির্দিষ্ট ত্রুটি ঘটেছে এবং এই উচ্চারণটি বলা যাবে না। বিস্তারিত জানার জন্য event.errorMessage চেক করুন।

ইভেন্টের চারটি ধরন- 'end' , 'interrupted' , 'cancelled' এবং 'error' - চূড়ান্ত । সেই ঘটনাগুলির একটি প্রাপ্তির পরে, এই উচ্চারণটি আর কথা বলবে না এবং এই উচ্চারণ থেকে কোনও নতুন ঘটনা পাওয়া যাবে না।

কিছু ভয়েস সব ধরনের ইভেন্ট সমর্থন নাও করতে পারে, এবং কিছু ভয়েস কোনো ইভেন্ট পাঠাতে পারে না। যদি আপনি একটি ভয়েস ব্যবহার করতে না চান যদি না এটি নির্দিষ্ট ইভেন্ট না পাঠায়, বিকল্প অবজেক্টের requiredEventTypes সদস্যের কাছে আপনার প্রয়োজনীয় ইভেন্টগুলি পাস করুন, অথবা আপনার প্রয়োজনীয়তা পূরণ করে এমন একটি ভয়েস চয়ন করতে getVoices() ব্যবহার করুন৷ উভয়ই নিম্নে বর্ণিত হয়েছে।

SSML মার্কআপ

এই API-এ ব্যবহৃত উচ্চারণগুলি স্পিচ সিন্থেসিস মার্কআপ ল্যাঙ্গুয়েজ (SSML) ব্যবহার করে মার্কআপ অন্তর্ভুক্ত করতে পারে। আপনি যদি SSML ব্যবহার করেন, speak() জন্য প্রথম আর্গুমেন্টটি একটি XML শিরোনাম এবং একটি শীর্ষ-স্তরের <speak> ট্যাগ সহ একটি সম্পূর্ণ SSML নথি হওয়া উচিত, একটি নথির খণ্ড নয়।

যেমন:

chrome.tts.speak(
  '<?xml version="1.0"?>' +
  '<speak>' +
  '  The <emphasis>second</emphasis> ' +
  '  word of this sentence was emphasized.' +
  '</speak>'
);

সমস্ত বক্তৃতা ইঞ্জিন সমস্ত SSML ট্যাগ সমর্থন করবে না, এবং কিছু কিছু SSML সমর্থন নাও করতে পারে, তবে সমস্ত ইঞ্জিনের প্রয়োজন হয় যে তারা সমর্থন করে না এমন কোনো SSML উপেক্ষা করতে এবং এখনও অন্তর্নিহিত পাঠ্যটি বলতে হবে।

একটি ভয়েস চয়ন করুন

ডিফল্টরূপে, ক্রোম ভাষার উপর ভিত্তি করে আপনি কথা বলতে চান এমন প্রতিটি উচ্চারণের জন্য সবচেয়ে উপযুক্ত ভয়েস বেছে নেয়। বেশিরভাগ Windows, Mac OS X, এবং ChromeOS সিস্টেমে, অপারেটিং সিস্টেম দ্বারা প্রদত্ত বক্তৃতা সংশ্লেষণ অন্তত একটি ভাষায় যেকোনো পাঠ্য বলতে সক্ষম হওয়া উচিত। কিছু ব্যবহারকারীর বিভিন্ন ধরনের ভয়েস উপলব্ধ থাকতে পারে, যদিও, তাদের অপারেটিং সিস্টেম থেকে এবং অন্যান্য Chrome এক্সটেনশন দ্বারা প্রয়োগ করা স্পিচ ইঞ্জিন থেকে। এই ক্ষেত্রে, আপনি উপযুক্ত ভয়েস চয়ন করতে, বা পছন্দের তালিকা সহ ব্যবহারকারীকে উপস্থাপন করতে কাস্টম কোড প্রয়োগ করতে পারেন।

সমস্ত ভয়েসের একটি তালিকা পেতে, getVoices() কল করুন এবং এটিকে একটি ফাংশন পাস করুন যা তার যুক্তি হিসাবে TtsVoice অবজেক্টের একটি অ্যারে গ্রহণ করে:

chrome.tts.getVoices(
  function(voices) {
    for (var i = 0; i < voices.length; i++) {
      console.log('Voice ' + i + ':');
      console.log('  name: ' + voices[i].voiceName);
      console.log('  lang: ' + voices[i].lang);
      console.log('  extension id: ' + voices[i].extensionId);
      console.log('  event types: ' + voices[i].eventTypes);
    }
  }
);

প্রকারভেদ

EventType

Chrome 54+

এনাম

"শুরু"

"শেষ"

"শব্দ"

"বাক্য"

"মার্কার"

"বিঘ্নিত"

"বাতিল"

"ত্রুটি"

"বিরতি"

"পুনরাবৃত্ত"

TtsEvent

TTS ইঞ্জিন থেকে একটি ইভেন্ট একটি উচ্চারণের স্থিতি যোগাযোগ করতে।

বৈশিষ্ট্য

  • charIndex

    সংখ্যা ঐচ্ছিক

    উচ্চারণে বর্তমান চরিত্রের সূচক। শব্দ ইভেন্টের জন্য, ইভেন্টটি একটি শব্দের শেষে এবং পরবর্তী শব্দের শুরুর আগে শুরু হয়। charIndex কথ্য পরবর্তী শব্দের শুরুতে পাঠ্যের একটি বিন্দু প্রতিনিধিত্ব করে।

  • errorMessage

    স্ট্রিং ঐচ্ছিক

    ইভেন্টের ধরন error হলে ত্রুটির বিবরণ।

  • দৈর্ঘ্য

    সংখ্যা ঐচ্ছিক

    Chrome 74+

    উচ্চারণের পরবর্তী অংশের দৈর্ঘ্য। উদাহরণস্বরূপ, একটি word ইভেন্টে, এটি শব্দের দৈর্ঘ্য যা পরবর্তীতে বলা হবে। স্পিচ ইঞ্জিন দ্বারা সেট না হলে এটি -1 এ সেট করা হবে।

  • টাইপটি বক্তৃতা শুরু হওয়ার সাথে সাথেই start হতে পারে, word যখন একটি শব্দের সীমানায় পৌঁছে যায়, sentence যখন একটি বাক্যের সীমানায় পৌঁছে যায়, marker যখন একটি SSML চিহ্ন উপাদানে পৌঁছে যায়, তখন end যখন উচ্চারণ শেষ হয়, interrupted যখন উচ্চারণ শেষ পর্যন্ত পৌঁছানোর আগে বন্ধ বা বাধাগ্রস্ত হয়, সংশ্লেষিত হওয়ার আগে সারি থেকে সরানো হলে cancelled , বা অন্য কোনো ত্রুটি ঘটলে error । বক্তৃতা থামানোর সময়, একটি নির্দিষ্ট উচ্চারণ মাঝখানে বিরতি দেওয়া হলে একটি pause ইভেন্ট চালু করা হয় এবং একটি উচ্চারণ পুনরায় বক্তৃতা শুরু করলে resume । মনে রাখবেন যে উচ্চারণের মধ্যে বক্তৃতা বিরাম দেওয়া হলে ইভেন্টগুলি বিরতি এবং পুনরায় শুরু করতে পারে না।

TtsOptions

Chrome 77+

TTS ইঞ্জিনের জন্য বক্তৃতা বিকল্প।

বৈশিষ্ট্য

  • কাঙ্খিত ইভেন্ট টাইপস

    স্ট্রিং[] ঐচ্ছিক

    TTS ইভেন্টের ধরন যা আপনি শুনতে আগ্রহী। অনুপস্থিত হলে, সব ধরনের ইভেন্ট পাঠানো হতে পারে.

  • সারি

    বুলিয়ান ঐচ্ছিক

    সত্য হলে, TTS ইতিমধ্যেই প্রগতিতে থাকলে এই উচ্চারণটি সারিবদ্ধ করে। মিথ্যা হলে (ডিফল্ট), যেকোনো বর্তমান বক্তৃতাকে বাধা দেয় এবং এই নতুন উচ্চারণটি বলার আগে বক্তৃতা সারিটি ফ্লাশ করে।

  • এক্সটেনশন আইডি

    স্ট্রিং ঐচ্ছিক

    ব্যবহার করার জন্য স্পিচ ইঞ্জিনের এক্সটেনশন আইডি, জানা থাকলে।

  • লিঙ্গ
    Chrome 77 থেকে অবরুদ্ধ

    লিঙ্গ অবজ্ঞা করা হয়েছে এবং উপেক্ষা করা হবে।

    সংশ্লেষিত বক্তৃতা জন্য ভয়েস লিঙ্গ.

  • lang

    স্ট্রিং ঐচ্ছিক

    সংশ্লেষণের জন্য যে ভাষাটি ব্যবহার করা হবে, ভাষা আকারে - অঞ্চল । উদাহরণ: 'en', 'en-US', 'en-GB', 'zh-CN'।

  • পিচ

    সংখ্যা ঐচ্ছিক

    0 এবং 2 এর মধ্যে স্পিকিং পিচ অন্তর্ভুক্ত, 0 সর্বনিম্ন এবং 2 সর্বোচ্চ। 1.0 একটি ভয়েস এর ডিফল্ট পিচ অনুরূপ.

  • হার

    সংখ্যা ঐচ্ছিক

    এই ভয়েসের জন্য ডিফল্ট হারের তুলনায় কথা বলার হার। 1.0 হল ডিফল্ট হার, সাধারণত প্রতি মিনিটে প্রায় 180 থেকে 220 শব্দ। 2.0 এর দ্বিগুণ দ্রুত এবং 0.5 এর অর্ধেক দ্রুত। 0.1-এর নীচে বা 10.0-এর উপরে মানগুলি কঠোরভাবে অননুমোদিত, তবে অনেক ভয়েস ন্যূনতম এবং সর্বোচ্চ হারকে আরও সীমাবদ্ধ করবে-উদাহরণস্বরূপ, আপনি 3.0-এর থেকে বড় একটি মান নির্দিষ্ট করলেও একটি নির্দিষ্ট ভয়েস আসলে স্বাভাবিকের চেয়ে 3 গুণ বেশি দ্রুত কথা বলতে পারে না।

  • প্রয়োজনীয় ইভেন্ট প্রকার

    স্ট্রিং[] ঐচ্ছিক

    TTS ইভেন্ট টাইপ ভয়েস সমর্থন করা আবশ্যক.

  • ভয়েস নাম

    স্ট্রিং ঐচ্ছিক

    সংশ্লেষণের জন্য ব্যবহার করা ভয়েসের নাম। খালি থাকলে, যে কোনো উপলব্ধ ভয়েস ব্যবহার করুন।

  • আয়তন

    সংখ্যা ঐচ্ছিক

    0 এবং 1 এর মধ্যে স্পিকিং ভলিউম অন্তর্ভুক্ত, 0 সর্বনিম্ন এবং 1 সর্বোচ্চ, 1.0 ডিফল্ট সহ।

  • একটি ইভেন্ট

    অকার্যকর ঐচ্ছিক

    এই ফাংশনটি উচ্চারণ বলার প্রক্রিয়ার মধ্যে ঘটে এমন ঘটনাগুলির সাথে বলা হয়।

    onEvent ফাংশন এর মত দেখাচ্ছে:

    (event: TtsEvent) => {...}

    • টেক্সট-টু-স্পিচ ইঞ্জিন থেকে আপডেট ইভেন্ট এই উচ্চারণের স্থিতি নির্দেশ করে।

TtsVoice

বক্তৃতা সংশ্লেষণের জন্য উপলব্ধ একটি ভয়েসের বর্ণনা।

বৈশিষ্ট্য

  • ঘটনাপ্রকার

    ইভেন্ট টাইপ [] ঐচ্ছিক

    সমস্ত কলব্যাক ইভেন্ট প্রকার যা এই ভয়েস পাঠাতে সক্ষম৷

  • এক্সটেনশন আইডি

    স্ট্রিং ঐচ্ছিক

    এই ভয়েস প্রদানকারী এক্সটেনশনের আইডি।

  • লিঙ্গ
    Chrome 70 থেকে অবরুদ্ধ

    লিঙ্গ অবজ্ঞা করা হয়েছে এবং উপেক্ষা করা হবে।

    এই ভয়েস এর লিঙ্গ.

  • lang

    স্ট্রিং ঐচ্ছিক

    এই কন্ঠটি যে ভাষাকে সমর্থন করে, তার আকারে ভাষা- অঞ্চল । উদাহরণ: 'en', 'en-US', 'en-GB', 'zh-CN'।

  • দূরবর্তী

    বুলিয়ান ঐচ্ছিক

    সত্য হলে, সংশ্লেষণ ইঞ্জিন একটি দূরবর্তী নেটওয়ার্ক সম্পদ। এটি উচ্চতর বিলম্বিত হতে পারে এবং ব্যান্ডউইথ খরচ বহন করতে পারে।

  • ভয়েস নাম

    স্ট্রিং ঐচ্ছিক

    কণ্ঠের নাম।

VoiceGender

Chrome 54+ Chrome 70 থেকে অবরুদ্ধ

লিঙ্গ অবজ্ঞা করা হয় এবং উপেক্ষা করা হয়।

এনাম

"পুরুষ"

"মহিলা"

পদ্ধতি

getVoices()

প্রতিশ্রুতি
chrome.tts.getVoices(
  callback?: function,
)

সমস্ত উপলব্ধ ভয়েস একটি অ্যারে পায়.

পরামিতি

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    (voices: TtsVoice[]) => void

    • ভয়েস

      tts.TtsVoice অবজেক্টের অ্যারে যা বক্তৃতা সংশ্লেষণের জন্য উপলব্ধ ভয়েসকে প্রতিনিধিত্ব করে।

রিটার্নস

  • প্রতিশ্রুতি< TtsVoice []>

    Chrome 101+

    প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।

isSpeaking()

প্রতিশ্রুতি
chrome.tts.isSpeaking(
  callback?: function,
)

ইঞ্জিন বর্তমানে কথা বলছে কিনা তা পরীক্ষা করে। Mac OS X-এ, যখনই সিস্টেম স্পিচ ইঞ্জিন কথা বলে তখন ফলাফলটি সত্য হয়, এমনকি স্পিচটি Chrome দ্বারা শুরু না হলেও।

পরামিতি

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    (speaking: boolean) => void

    • কথা বলা

      বুলিয়ান

      কথা বললে সত্য, অন্যথায় মিথ্যা।

রিটার্নস

  • প্রতিশ্রুতি<বুলিয়ান>

    Chrome 101+

    প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।

pause()

chrome.tts.pause()

বক্তৃতা সংশ্লেষণে বিরতি দেয়, সম্ভাব্যভাবে একটি উচ্চারণের মাঝখানে। পুনঃসূচনা বা বন্ধ করার একটি কল বক্তৃতা আন-পজ করবে।

resume()

chrome.tts.resume()

যদি বক্তৃতা বিরাম দেওয়া হয়, যেখানে বলা বন্ধ করা হয়েছিল সেখানে আবার বলা শুরু করে।

speak()

প্রতিশ্রুতি
chrome.tts.speak(
  utterance: string,
  options?: TtsOptions,
  callback?: function,
)

একটি টেক্সট-টু-স্পীচ ইঞ্জিন ব্যবহার করে পাঠ্য কথা বলে।

পরামিতি

  • উচ্চারণ

    স্ট্রিং

    কথা বলার জন্য পাঠ্য, হয় প্লেইন টেক্সট বা একটি সম্পূর্ণ, সুগঠিত SSML নথি। যে স্পিচ ইঞ্জিনগুলি SSML সমর্থন করে না সেগুলি ট্যাগগুলি সরিয়ে ফেলবে এবং পাঠ্য কথা বলবে৷ পাঠ্যের সর্বাধিক দৈর্ঘ্য 32,768 অক্ষর।

  • বিকল্প

    TtsOptions ঐচ্ছিক

    বক্তৃতা বিকল্প।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    () => void

রিটার্নস

  • প্রতিশ্রুতি <void>

    Chrome 101+

    প্রতিশ্রুতিগুলি ম্যানিফেস্ট V3 এবং পরবর্তীতে সমর্থিত, তবে পশ্চাদগামী সামঞ্জস্যের জন্য কলব্যাক প্রদান করা হয়। আপনি একই ফাংশন কলে উভয় ব্যবহার করতে পারবেন না। প্রতিশ্রুতিটি একই ধরণের সাথে সমাধান করে যা কলব্যাকে পাস করা হয়।

stop()

chrome.tts.stop()

যেকোনো বর্তমান বক্তৃতা বন্ধ করে এবং কোনো মুলতুবি উচ্চারণের সারি ফ্লাশ করে। উপরন্তু, যদি বক্তৃতা বিরাম দেওয়া হয়, তা এখন কথা বলার জন্য পরবর্তী কলের জন্য আন-পজ করা হবে।

ঘটনা

onVoicesChanged

Chrome 124+
chrome.tts.onVoicesChanged.addListener(
  callback: function,
)

tts.TtsVoice এর তালিকা যা getVoices দ্বারা ফেরত দেওয়া হবে তখন কল করা হয়েছে৷

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    () => void