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