बात करने वाले वेब ऐप्लिकेशन - Speech Synthesis API के बारे में जानकारी

Web Speech API, JavaScript में बोली को पहचानने (बोली को टेक्स्ट में बदलने) और बोली को लिखाई में बदलने (टेक्स्ट को बोली में बदलने) की सुविधा जोड़ता है. इस पोस्ट में, दूसरे एपीआई के बारे में कम शब्दों में बताया गया है, क्योंकि यह एपीआई हाल ही में Chrome 33 (मोबाइल और डेस्कटॉप) में लॉन्च हुआ है. अगर आपको बोली पहचानने की सुविधा में दिलचस्पी है, तो ग्लेन शिरेस ने कुछ समय पहले, बोली पहचानने की सुविधा के बारे में एक बेहतरीन लेख लिखा था. इस लेख का टाइटल है, "बोली से चलने वाले वेब ऐप्लिकेशन: Web Speech 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 के दौरान दिए गए अपने टॉक, "More Awesome Web: features you've always wanted" (www.moreawesomeweb.com) में, मैंने Google Now/Siri जैसे डेमो दिखाए. इनमें, वेब स्पीच एपीआई की SpeechRecognition सेवा का इस्तेमाल करके, Google Translate API की मदद से माइक्रोफ़ोन इनपुट को किसी दूसरी भाषा में अपने-आप अनुवाद करने की सुविधा के बारे में बताया गया था:

डेमो: http://www.moreawesomeweb.com/demos/speech_translate.html

माफ़ करें, बोली को टेक्स्ट में बदलने के लिए, इस ऐप्लिकेशन ने बिना दस्तावेज़ वाले और अनौपचारिक एपीआई का इस्तेमाल किया है. अब हमारे पास अनुवाद को बोलकर सुनाने के लिए, वेब Speech API का पूरा वर्शन है! मैंने सिंथेसिस एपीआई का इस्तेमाल करने के लिए, डेमो को अपडेट कर दिया है.

ब्राउज़र के इस्तेमाल से जुड़ी सहायता

Chrome 33 में Web Speech API की पूरी सुविधा काम करती है, जबकि iOS7 के लिए Safari में यह सुविधा कुछ हद तक काम करती है.

फ़ीचर का पता लगाना

ब्राउज़र, Web Speech API के हर हिस्से के साथ अलग-अलग काम कर सकते हैं.उदाहरण के लिए, Chromium के मामले में ऐसा होता है. इसलिए, हो सकता है कि आप हर सुविधा का अलग से पता लगाना चाहें:

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

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