ब्यौरा
लिखाई को बोली में बदलने की सुविधा (टीटीएस) को चलाने के लिए, chrome.tts
एपीआई का इस्तेमाल करें. इससे जुड़ा ttsEngine
एपीआई भी देखें. यह एपीआई, स्पीच इंजन को लागू करने के लिए एक्सटेंशन की अनुमति देता है.
Chrome, 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});
डिफ़ॉल्ट रूप से, 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);
}
}
);
इंजन के स्पीच जनरेट करने से पहले, कॉलबैक तुरंत वापस आ जाता है. इसका मकसद कॉलबैक आपको टीटीएस एपीआई के इस्तेमाल में सिंटैक्स की गड़बड़ियों की सूचना देता है, न कि सभी संभावित गड़बड़ियों को ऐसी गड़बड़ियां जो बोली को सिंथेसाइज़ करने और आउटपुट करने की प्रोसेस में हो सकती हैं. इन गड़बड़ियों को पकड़ने के लिए साथ ही, आपको अगले सेक्शन में बताए गए इवेंट लिसनर का इस्तेमाल करना होगा.
इवेंट सुनना
मशीनी आवाज़ की स्थिति के बारे में रीयल-टाइम जानकारी पाने के लिए, किसी इवेंट लिसनर को
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 मार्कअप
इस एपीआई में इस्तेमाल किए गए स्टेटमेंट में, स्पीच सिंथेसिस मार्कअप लैंग्वेज का इस्तेमाल करके मार्कअप शामिल हो सकता है
(एसएसएमएल). अगर SSML का इस्तेमाल किया जाता है, तो speak()
का पहला आर्ग्युमेंट, इसके साथ पूरा SSML दस्तावेज़ होना चाहिए
एक्सएमएल हेडर और टॉप लेवल <speak>
टैग होना चाहिए, न कि दस्तावेज़ का फ़्रैगमेंट.
उदाहरण के लिए:
chrome.tts.speak(
'<?xml version="1.0"?>' +
'<speak>' +
' The <emphasis>second</emphasis> ' +
' word of this sentence was emphasized.' +
'</speak>'
);
सभी वाक इंजन, सभी SSML टैग के साथ काम नहीं करते. साथ ही, ऐसा भी हो सकता है कि कुछ SSML टैग के साथ काम न करते हों. हालांकि, सभी अगर इंजन किसी एसएसएमएल के साथ काम नहीं करते, तो उन्हें अनदेखा कर देना चाहिए. साथ ही, अगर वे मौजूदा टेक्स्ट को बोलते हैं, तो ऐसा करना ज़रूरी है.
कोई आवाज़ चुनें
डिफ़ॉल्ट रूप से, Chrome हर उस बात के लिए सबसे सही आवाज़ चुनता है जिसे आपको बोलना है. भाषा. ज़्यादातर 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
Enum
"शुरू करें"
"end"
"शब्द"
"वाक्य"
"मार्कर"
"बात की गई"
"रद्द किया गया"
"गड़बड़ी"
"रोकें"
"फिर से शुरू करें"
TtsEvent
किसी वाक्य की स्थिति के बारे में बताने के लिए, TTS इंजन का इवेंट.
प्रॉपर्टी
-
charIndex
नंबर वैकल्पिक
उच्चारण में मौजूदा वर्ण का इंडेक्स. वर्ड इवेंट के लिए, इवेंट एक शब्द के अंत में और अगले शब्द की शुरुआत से पहले सक्रिय होता है.
charIndex
, बोले जाने वाले अगले शब्द की शुरुआत में मौजूद एक बिंदु को दिखाता है. -
errorMessage
स्ट्रिंग ज़रूरी नहीं
अगर इवेंट का टाइप
error
है, तो गड़बड़ी की जानकारी. -
लंबाई
नंबर वैकल्पिक
Chrome 74 और उसके बाद वाले वर्शन के लिएवाक्य के अगले हिस्से की लंबाई. उदाहरण के लिए,
word
इवेंट में, यह आगे बोले जाने वाले शब्द की लंबाई है. अगर स्पीच इंजन ने इसे सेट नहीं किया है, तो यह -1 पर सेट हो जाएगी. -
टाइप
यह टाइप, बोलने के शुरू होते ही
start
हो सकता है, शब्द की सीमा तक पहुंचने परword
, वाक्य की सीमा तक पहुंचने परsentence
, एसएसएमएल मार्क एलिमेंट के पहुंचने परmarker
, उच्चारण के खत्म होने परend
, खत्म होने पर उच्चारण बंद होने या उसमें रुकावट आने पर,cancelled
जब सिंथेसाइज़ किए जाने से पहले उसे सूची से हटा दिया जाता है या कोई अन्य गड़बड़ी होने परerror
.interrupted
बातचीत को रोकते समय, अगर किसी खास उच्चारण को बीच में रोका जाता है, तोpause
इवेंट ट्रिगर होता है. साथ ही, किसी उच्चारण से फिर से बोलने पर,resume
ट्रिगर होता है. ध्यान दें कि अगर बातचीत के दौरान बातचीत को रोका जाता है, तो हो सकता है कि रोकने और फिर से शुरू करने वाले इवेंट ट्रिगर न हों.
TtsOptions
टीटीएस इंजन के लिए बोलने के विकल्प.
प्रॉपर्टी
-
desiredEventTypes
स्ट्रिंग[] ज़रूरी नहीं
टीटीएस इवेंट के ऐसे टाइप जिन्हें सुनने में आपकी दिलचस्पी है. अगर यह जानकारी मौजूद नहीं है, तो सभी तरह के इवेंट भेजे जा सकते हैं.
-
कतार में रखना
बूलियन ज़रूरी नहीं
अगर सही है, तो इस वाक्य को क्यू में तब लगाया जाता है, जब TTS पहले से प्रगति में हो. अगर 'गलत है' पर सेट है, तो मौजूदा स्पीच को ठीक करें. इसके अलावा, इस नए उच्चारण को बोलने से पहले, स्पीच की सूची को फ़्लश कर दिया जाता है.
-
extensionId
स्ट्रिंग ज़रूरी नहीं
इस्तेमाल किए जाने वाले स्पीच इंजन का एक्सटेंशन आईडी, अगर पता हो.
-
लिंग
VoiceGender ज़रूरी नहीं
Chrome 77 के बाद से अब तक काम नहीं करतालैंगिक जानकारी के इस्तेमाल पर रोक लगा दी गई है और इसे अनदेखा कर दिया जाएगा.
मशीनी बोली के लिए आवाज़ का लिंग.
-
lang
स्ट्रिंग ज़रूरी नहीं
सिंथेसिस के लिए इस्तेमाल की जाने वाली भाषा, language-region के रूप में. उदाहरण: '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 से बड़ी वैल्यू डाली हो.
-
requiredEventTypes
स्ट्रिंग[] ज़रूरी नहीं
टीटीएस इवेंट के ऐसे टाइप जिनमें वॉइस का इस्तेमाल किया जा सकता है.
-
voiceName
स्ट्रिंग ज़रूरी नहीं
सिंथेसिस के लिए इस्तेमाल की जाने वाली आवाज़ का नाम. अगर खाली है, तो किसी भी उपलब्ध आवाज़ का इस्तेमाल किया जाता है.
-
आवाज़
नंबर वैकल्पिक
आवाज़ 0 से 1 के बीच होती है. इसमें सबसे कम वैल्यू और 1 का मतलब सबसे ज़्यादा होता है. डिफ़ॉल्ट वैल्यू 1.0 होती है.
-
onEvent
अमान्य ज़रूरी नहीं
इस फ़ंक्शन को उन इवेंट के लिए कॉल किया जाता है जो बातचीत के दौरान होते हैं.
onEvent
फ़ंक्शन इस तरह दिखता है:(event: TtsEvent) => {...}
-
इवेंट
लिखाई को बोली में बदलने वाले इंजन से अपडेट होने वाला इवेंट. यह इस उच्चारण की स्थिति को दिखाता है.
-
TtsVoice
बोले जा रहे शब्दों को टेक्स्ट में बदलने की सुविधा के लिए उपलब्ध आवाज़ का ब्यौरा.
प्रॉपर्टी
-
eventTypes
EventType[] ज़रूरी नहीं
इस आवाज़ में मौजूद सभी कॉलबैक इवेंट टाइप.
-
extensionId
स्ट्रिंग ज़रूरी नहीं
यह आवाज़ देने वाले एक्सटेंशन का आईडी.
-
लिंग
VoiceGender ज़रूरी नहीं
Chrome 70 के बाद से अब तक काम नहीं करतालैंगिक जानकारी के इस्तेमाल पर रोक लगा दी गई है और इसे अनदेखा कर दिया जाएगा.
इस आवाज़ का लिंग.
-
lang
स्ट्रिंग ज़रूरी नहीं
इस आवाज़ में इस्तेमाल की जा सकने वाली भाषा, language-region फ़ॉर्म में. उदाहरण: 'en', 'en-US', 'en-GB', 'zh-CN'.
-
रिमोट
बूलियन ज़रूरी नहीं
अगर सही है, तो सिंथेसिस इंजन एक रिमोट नेटवर्क रिसॉर्स है. इसमें इंतज़ार का समय ज़्यादा हो सकता है और बैंडविथ के लिए शुल्क देना पड़ सकता है.
-
voiceName
स्ट्रिंग ज़रूरी नहीं
आवाज़ का नाम.
VoiceGender
लैंगिक जानकारी के इस्तेमाल पर रोक लगा दी गई है और इसे अनदेखा कर दिया गया है.
Enum
"पुरुष"
"महिला"
तरीके
getVoices()
chrome.tts.getVoices(
callback?: function,
)
सभी उपलब्ध आवाज़ों के कलेक्शन को ऐक्सेस करता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:(voices: TtsVoice[]) => void
-
आवाज़ें
TtsVoice[]
स्पीच सिंथेसिस के लिए उपलब्ध आवाज़ों को दिखाने वाले
tts.TtsVoice
ऑब्जेक्ट की कलेक्शन.
-
रिटर्न
-
Promise<TtsVoice[]>
Chrome 101 और उसके बाद वाले वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
isSpeaking()
chrome.tts.isSpeaking(
callback?: function,
)
जांचता है कि क्या इंजन वर्तमान में बोल रहा है. Mac OS X पर, जब भी सिस्टम स्पीच इंजन बोलता है, तो नतीजा सही होता है, भले ही Chrome ने स्पीच शुरू न की हो.
पैरामीटर
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:(speaking: boolean) => void
-
बोलना
बूलियन
सही है, नहीं तो गलत.
-
रिटर्न
-
Promise<boolean>
Chrome 101 और उसके बाद वाले वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
pause()
chrome.tts.pause()
संभावित रूप से किसी उच्चारण के बीच में, स्पीच सिंथेसिस को रोकता है. कॉल को फिर से शुरू करने या रोकने से आवाज़ को फिर से चालू किया जा सकता है.
resume()
chrome.tts.resume()
अगर बोली को रोका गया था, तो वहीं से बोलना फिर से शुरू हो जाता है जहां उसे रोका गया था.
speak()
chrome.tts.speak(
utterance: string,
options?: TtsOptions,
callback?: function,
)
लिखाई को बोली में बदलने वाले इंजन का इस्तेमाल करके, टेक्स्ट पढ़कर सुनाता है.
पैरामीटर
-
बातचीत
स्ट्रिंग
बोलने के लिए टेक्स्ट, जो सादा टेक्स्ट या पूरा और अच्छी तरह से बनाया गया एसएसएमएल दस्तावेज़ हो. ऐसे स्पीच इंजन जो SSML के साथ काम नहीं करते हैं वे टैग हटा देंगे और टेक्स्ट बोलेंगे. टेक्स्ट में ज़्यादा से ज़्यादा 32,768 वर्ण हो सकते हैं.
-
विकल्प
TtsOptions ज़रूरी नहीं
बोलने के विकल्प.
-
कॉलबैक
फ़ंक्शन वैकल्पिक
callback
पैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
प्रॉमिस<void>
Chrome 101 और उसके बाद वाले वर्शनमेनिफ़ेस्ट V3 और उसके बाद के वर्शन में प्रॉमिस काम करते हैं. हालांकि, कॉलबैक की सुविधा इन मामलों में दी जाती है पुराने सिस्टम के साथ काम करने की सुविधा. एक ही फ़ंक्शन कॉल में दोनों का इस्तेमाल नहीं किया जा सकता. कॉन्टेंट बनाने प्रॉमिस उसी टाइप के साथ ठीक होता है जिसे कॉलबैक में पास किया जाता है.
stop()
chrome.tts.stop()
किसी भी मौजूदा भाषण को रोकता है और अधूरी बातचीत की सूची को साफ़ कर देता है. इसके अलावा, अगर बोली को रोका गया था, तो अगले कॉल के दौरान बोलने की उस सुविधा को फिर से चालू कर दिया जाएगा.
इवेंट
onVoicesChanged
chrome.tts.onVoicesChanged.addListener(
callback: function,
)
यह तब कॉल किया गया, जब getVoices से मिलने वाली tts.TtsVoice
की सूची में बदलाव किया गया हो.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर ऐसा दिखता है:() => void