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

एरिक बिडेलमैन

Web Speech API, JavaScript में बोली की पहचान (बोली को लिखाई में बदलना) और बोली को लिखाई में बदलना (लिखाई को बोली में बदलने की सुविधा) जोड़ता है. इस पोस्ट में, बाद वाले वर्शन के बारे में कुछ जानकारी दी गई है, क्योंकि एपीआई हाल ही में Chrome 33 (मोबाइल और डेस्कटॉप) पर उपलब्ध है. अगर बोली पहचानने में आपकी दिलचस्पी है, तो कुछ समय पहले Glan Shires ने आवाज़ की पहचान करने वाली सुविधा "वॉइस ड्रिवन वेब ऐप्लिकेशन: वेब स्पीच एपीआई का परिचय" पर अच्छी तरह से लिखा था.

बुनियादी बातें

सिंथेसिस एपीआई का सबसे बुनियादी इस्तेमाल, 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), मैंने माइक्रोफ़ोन इनपुट का अपने-आप अनुवाद करने के लिए, Web Speech API की SpeechRecognition सेवा को Google Translate API के साथ इस्तेमाल करने का Google Now/Siri जैसा डेमो दिखाया. यह डेमो किसी दूसरी भाषा में अपने-आप अनुवाद हो गया:

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

माफ़ करें, बोली को लेख में बदलने के लिए, इसने एक दस्तावेज़ न वाले और गैर-आधिकारिक एपीआई का इस्तेमाल किया. अब अनुवाद की बात करने के लिए हमारे पास पूरा Web 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!
}