বর্ণনা
সংশ্লেষিত টেক্সট-টু-স্পীচ (TTS) চালাতে chrome.tts
API ব্যবহার করুন। এছাড়াও সম্পর্কিত ttsEngine
API দেখুন, যা একটি এক্সটেনশনকে একটি স্পিচ ইঞ্জিন বাস্তবায়নের অনুমতি দেয়।
অনুমতি
tts
ওভারভিউ
ক্রোম অপারেটিং সিস্টেম দ্বারা প্রদত্ত বক্তৃতা সংশ্লেষণ ক্ষমতা ব্যবহার করে Windows (SAPI 5 ব্যবহার করে), Mac OS X এবং ChromeOS-এ বক্তৃতার জন্য স্থানীয় সমর্থন প্রদান করে। সমস্ত প্ল্যাটফর্মে, ব্যবহারকারী এমন এক্সটেনশনগুলি ইনস্টল করতে পারেন যা বিকল্প স্পিচ ইঞ্জিন হিসাবে নিজেদের নিবন্ধন করে।
বক্তৃতা তৈরি করা হচ্ছে
কথা বলার জন্য আপনার এক্সটেনশন থেকে 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
এনাম
"শুরু" "শেষ" "শব্দ" "বাক্য" "মার্কার" "বিঘ্নিত" "বাতিল" "ত্রুটি" "বিরতি" "পুনরাবৃত্ত"
TtsEvent
TTS ইঞ্জিন থেকে একটি ইভেন্ট একটি উচ্চারণের স্থিতি যোগাযোগ করতে।
বৈশিষ্ট্য
- charIndex
সংখ্যা ঐচ্ছিক
উচ্চারণে বর্তমান চরিত্রের সূচক। শব্দ ইভেন্টের জন্য, ইভেন্টটি একটি শব্দের শেষে এবং পরবর্তী শব্দের শুরুর আগে শুরু হয়।
charIndex
কথ্য পরবর্তী শব্দের শুরুতে পাঠ্যের একটি বিন্দু প্রতিনিধিত্ব করে। - errorMessage
স্ট্রিং ঐচ্ছিক
ইভেন্টের ধরন
error
হলে ত্রুটির বিবরণ। - দৈর্ঘ্য
সংখ্যা ঐচ্ছিক
Chrome 74+উচ্চারণের পরবর্তী অংশের দৈর্ঘ্য। উদাহরণস্বরূপ, একটি
word
ইভেন্টে, এটি শব্দের দৈর্ঘ্য যা পরবর্তীতে বলা হবে। স্পিচ ইঞ্জিন দ্বারা সেট না হলে এটি -1 এ সেট করা হবে। - টাইপ
টাইপটি বক্তৃতা শুরু হওয়ার সাথে সাথেই
start
হতে পারে,word
যখন একটি শব্দের সীমানায় পৌঁছে যায়,sentence
যখন একটি বাক্যের সীমানায় পৌঁছে যায়,marker
যখন একটি SSML চিহ্ন উপাদানে পৌঁছে যায়, তখনend
যখন উচ্চারণ শেষ হয়,interrupted
যখন উচ্চারণ শেষ পর্যন্ত পৌঁছানোর আগে বন্ধ বা বাধাগ্রস্ত হয়, সংশ্লেষিত হওয়ার আগে সারি থেকে সরানো হলেcancelled
, বা অন্য কোনো ত্রুটি ঘটলেerror
। বক্তৃতা থামানোর সময়, একটি নির্দিষ্ট উচ্চারণ মাঝখানে বিরতি দেওয়া হলে একটিpause
ইভেন্ট চালু করা হয় এবং একটি উচ্চারণ পুনরায় বক্তৃতা শুরু করলেresume
। মনে রাখবেন যে উচ্চারণের মধ্যে বক্তৃতা বিরাম দেওয়া হলে ইভেন্টগুলি বিরতি এবং পুনরায় শুরু করতে পারে না।
TtsOptions
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
লিঙ্গ অবজ্ঞা করা হয় এবং উপেক্ষা করা হয়।
এনাম
"পুরুষ" "মহিলা"
পদ্ধতি
getVoices()
chrome.tts.getVoices(
callback?: function,
)
সমস্ত উপলব্ধ ভয়েস একটি অ্যারে পায়.
পরামিতি
- কলব্যাক
ফাংশন ঐচ্ছিক
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:(voices: TtsVoice[]) => void
- ভয়েস
TtsVoice [ ]
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.tts.onVoicesChanged.addListener(
callback: function,
)
tts.TtsVoice
এর তালিকা যা getVoices দ্বারা ফেরত দেওয়া হবে তখন কল করা হয়েছে৷
পরামিতি
- কলব্যাক
ফাংশন
callback
প্যারামিটারটি এর মতো দেখাচ্ছে:() => void