কথা বলে এমন ওয়েব অ্যাপস - স্পিচ সিন্থেসিস এপিআইয়ের ভূমিকা

ওয়েব স্পিচ এপিআই জাভাস্ক্রিপ্টে ভয়েস রিকগনিশন (স্পিচ টু টেক্সট) এবং স্পিচ সিন্থেসিস (টেক্সট টু স্পিচ) যোগ করে। পোস্টটি সংক্ষেপে পরেরটি কভার করে, যেহেতু API সম্প্রতি Chrome 33 (মোবাইল এবং ডেস্কটপ) এ অবতরণ করেছে। আপনি যদি স্পিচ রিকগনিশনে আগ্রহী হন, Glen Shires কিছুক্ষণ আগে ভয়েস রিকগনিশন ফিচারে " ভয়েস ড্রাইভেন ওয়েব অ্যাপস: ইন্ট্রোডাকশন টু দ্য ওয়েব স্পিচ এপিআই "-এর উপর একটি দুর্দান্ত লেখা ছিল।

বেসিক

সংশ্লেষণ API-এর সবচেয়ে মৌলিক ব্যবহার হল speechSynthesis.speak() এবং উচ্চারণ পাস করা:

var msg = new SpeechSynthesisUtterance('Hello World');
window.speechSynthesis.speak(msg);

যাইহোক, আপনি ভলিউম, স্পিচ রেট, পিচ, ভয়েস এবং ভাষাকে প্রভাবিত করতে পরামিতিগুলিও পরিবর্তন করতে পারেন:

var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[10]; // Note: some voices don't support altering params
msg.voiceURI = 'native';
msg.volume = 1; // 0 to 1
msg.rate = 1; // 0.1 to 10
msg.pitch = 2; //0 to 2
msg.text = 'Hello World';
msg.lang = 'en-US';

msg.onend = function(e) {
    console.log('Finished in ' + event.elapsedTime + ' seconds.');
};

speechSynthesis.speak(msg);

একটি ভয়েস সেট করা হচ্ছে

এপিআই আপনাকে ইঞ্জিন সমর্থন করে এমন ভয়েসের একটি তালিকা পেতে দেয়:

speechSynthesis.getVoices().forEach(function(voice) {
    console.log(voice.name, voice.default ? voice.default :'');
});

তারপর উচ্চারণ বস্তুতে .voice সেট করে একটি ভিন্ন ভয়েস সেট করুন:

var msg = new SpeechSynthesisUtterance('I see dead people!');
msg.voice = speechSynthesis.getVoices().filter(function(voice) { return voice.name == 'Whisper'; })[0];
speechSynthesis.speak(msg);

ডেমো

আমার Google I/O 2013 আলোচনায়, " আরও অসাধারণ ওয়েব: বৈশিষ্ট্য যা আপনি সবসময় চেয়েছিলেন " ( www.moreawesomeweb.com ), আমি Google-এর সাথে ওয়েব স্পিচ API-এর SpeechRecognition পরিষেবা ব্যবহার করার জন্য একটি Google Now/Siri-এর মতো ডেমো দেখিয়েছি মাইক্রোফোন ইনপুটকে অন্য ভাষায় স্বতঃ অনুবাদ করতে API অনুবাদ করুন:

ডেমো: http://www.moreawesomeweb.com/demos/speech_translate.html

দুর্ভাগ্যবশত, এটি বক্তৃতা সংশ্লেষণ করতে একটি অনথিভুক্ত (এবং অনানুষ্ঠানিক API) ব্যবহার করেছে। আচ্ছা এখন আমাদের কাছে অনুবাদের কথা বলার জন্য সম্পূর্ণ ওয়েব স্পিচ API আছে! আমি সংশ্লেষণ API ব্যবহার করার জন্য ডেমো আপডেট করেছি।

ব্রাউজার সমর্থন

ক্রোম 33-এ ওয়েব স্পিচ API-এর জন্য সম্পূর্ণ সমর্থন রয়েছে, যখন iOS7-এর জন্য Safari আংশিক সমর্থন রয়েছে।

বৈশিষ্ট্য সনাক্তকরণ

যেহেতু ব্রাউজারগুলি ওয়েব স্পিচ API এর প্রতিটি অংশকে আলাদাভাবে সমর্থন করতে পারে (যেমন Chromium-এর ক্ষেত্রে), আপনি আলাদাভাবে প্রতিটি বৈশিষ্ট্য সনাক্ত করতে চাইতে পারেন:

if ('speechSynthesis' in window) {
    // Synthesis support. Make your web apps talk!
}

if ('SpeechRecognition' in window) {
    // Speech recognition support. Talk to your apps!
}