Google Assistant को जवाब देते समय, अपने जवाबों में स्पीच सिंथेसिस मार्कअप लैंग्वेज (SSML) के सबसेट का इस्तेमाल किया जा सकता है. SSML का इस्तेमाल करके, आप अपनी बातचीत के जवाबों को स्वाभाविक आवाज़ जैसे बना सकते हैं. नीचे दिए गए उदाहरण में एसएसएमएल मार्कअप और Google Assistant से जुड़ा ऑडियो दिखाया गया है:
Node.js
function saySSML(conv) { const ssml = '<speak>' + 'Here are <say-as interpret-as="characters">SSML</say-as> samples. ' + 'I can pause <break time="3" />. ' + 'I can play a sound <audio src="https://www.example.com/MY_WAVE_FILE.wav">your wave file</audio>. ' + 'I can speak in cardinals. Your position is <say-as interpret-as="cardinal">10</say-as> in line. ' + 'Or I can speak in ordinals. You are <say-as interpret-as="ordinal">10</say-as> in line. ' + 'Or I can even speak in digits. Your position in line is <say-as interpret-as="digits">10</say-as>. ' + 'I can also substitute phrases, like the <sub alias="World Wide Web Consortium">W3C</sub>. ' + 'Finally, I can speak a paragraph with two sentences. ' + '<p><s>This is sentence one.</s><s>This is sentence two.</s></p>' + '</speak>'; conv.add(ssml); }
JSON
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.TEXT" } ], "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "<speak>Here are <say-as interpret-as=\"characters\">SSML</say-as> samples. I can pause <break time=\"3\" />. I can play a sound <audio src=\"https://www.example.com/MY_WAVE_FILE.wav\">your wave file</audio>. I can speak in cardinals. Your position is <say-as interpret-as=\"cardinal\">10</say-as> in line. Or I can speak in ordinals. You are <say-as interpret-as=\"ordinal\">10</say-as> in line. Or I can even speak in digits. Your position in line is <say-as interpret-as=\"digits\">10</say-as>. I can also substitute phrases, like the <sub alias=\"World Wide Web Consortium\">W3C</sub>. Finally, I can speak a paragraph with two sentences. <p><s>This is sentence one.</s><s>This is sentence two.</s></p></speak>" } } ] } } } ] }
ऑडियो
एसएसएमएल में यूआरएल
ऐसे एसएसएमएल रिस्पॉन्स के बारे में बताते समय जिसमें सिर्फ़ यूआरएल शामिल है, उस यूआरएल में ऐंपरसेंड की वजह से एक्सएमएल फ़ॉर्मैटिंग की समस्या हो सकती है. यह पक्का करने के लिए कि यूआरएल सही तरीके से
रेफ़रंस करें, &
के इंस्टेंस को &
से बदलें.
भले ही, आपके एसएसएमएल रिस्पॉन्स में सिर्फ़ यूआरएल शामिल हो, Actions on Google को जवाब के लिए डिसप्ले टेक्स्ट की ज़रूरत होती है. Assistant, <audio>
टैग में मौजूद टेक्स्ट को
नहीं पढ़कर सुनाएगी. इसलिए, इस ज़रूरी शर्त को पूरा करने के लिए,
<audio>
टैग में फ़िलर टेक्स्ट या कम शब्दों में जानकारी शामिल की जा सकती है. ऑडियो चलने के बाद, <audio>
टैग में मौजूद टेक्स्ट को Assistant नहीं पढ़कर सुनाएगी. साथ ही, यह, आपके एसएसएमएल
के डिसप्ले टेक्स्ट वर्शन के लिए Google की ज़रूरी शर्तों के मुताबिक है.
यहां समस्या से जुड़े एसएसएमएल रिस्पॉन्स का एक उदाहरण दिया गया है:
<speak>
<audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
</audio>
</speak>
ऊपर दिए गए उदाहरण में, सही एक्सएमएल फ़ॉर्मैट के लिए &
को एस्केप नहीं किया गया है.
एक ही एसएसएमएल रिस्पॉन्स का तय किया गया वर्शन ऐसा दिखता है:
<speak>
<audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
text
</audio>
</speak>
एसएसएमएल एलिमेंट के लिए सहायता
यहां दिए गए सेक्शन, एसएसएमएल एलिमेंट और उन विकल्पों के बारे में बताते हैं जिनका इस्तेमाल आपकी कार्रवाइयों में किया जा सकता है.
<speak>
एसएसएमएल रिस्पॉन्स का रूट एलिमेंट.
speak
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
<speak> my SSML content </speak>
<break>
एक खाली एलिमेंट, जो शब्दों के बीच की रोकने या दूसरी प्रोसोडिक सीमाओं को कंट्रोल करता है. टोकन के किसी भी जोड़े के बीच <break>
का इस्तेमाल करना ज़रूरी नहीं है. अगर यह एलिमेंट शब्दों के बीच मौजूद नहीं होता, तो भाषा के संदर्भ के आधार पर ब्रेक अपने-आप तय हो जाता है.
break
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
एट्रिब्यूट
एट्रिब्यूट | ब्यौरा |
---|---|
time |
ब्रेक की अवधि को सेकंड या मिलीसेकंड से सेट करता है (जैसे, "3 सेकंड" या "250 मि॰से॰"). |
strength |
सापेक्ष शर्तों के हिसाब से आउटपुट के प्रोसोडिक ब्रेक की मज़बूती सेट करता है. मान्य वैल्यू हैं: "x-weak", किफ़ायती", "medium", "strong", और "x-strong". "कोई नहीं" वैल्यू से पता चलता है कि कोई प्रोसोडिक ब्रेक सीमा आउटपुट नहीं होनी चाहिए. इसका इस्तेमाल ऐसे प्रोसोडिक ब्रेक को रोकने के लिए किया जा सकता है जो प्रोसेसर की वजह से नहीं होता. अन्य वैल्यू, टोकन के बीच ब्रेक की क्षमता को एक के हिसाब से कम नहीं कर रही हैं (कॉन्सेप्टिक तौर पर बढ़ती है). आम तौर पर, मज़बूत सीमाएं साथ में होती हैं. |
उदाहरण
यहां दिए गए उदाहरण में, चरणों को रोकने के लिए, <break>
एलिमेंट का इस्तेमाल करने का तरीका बताया गया है:
<speak> Step 1, take a deep breath. <break time="200ms"/> Step 2, exhale. Step 3, take a deep breath again. <break strength="weak"/> Step 4, exhale. </speak>
<say‑as>
इस एलिमेंट की मदद से, एलिमेंट में शामिल टेक्स्ट कंस्ट्रक्ट के टाइप के बारे में जानकारी दी जा सकती है. इससे शामिल टेक्स्ट को रेंडर करने के लिए, जानकारी का लेवल तय करने में भी मदद मिलती है.
<say‑as>
एलिमेंट में ज़रूरी एट्रिब्यूट interpret-as
है, जिससे तय होता है कि वैल्यू को कैसे बोला जाएगा. interpret-as
की किसी खास वैल्यू के आधार पर, format
और detail
वैकल्पिक एट्रिब्यूट का इस्तेमाल किया जा सकता है.
उदाहरण
interpret-as
एट्रिब्यूट में ये वैल्यू इस्तेमाल की जा सकती हैं:
-
currency
नीचे दिया गया उदाहरण "चालीस डॉलर और एक सेंट" के तौर पर बोला गया है. अगर भाषा एट्रिब्यूट को शामिल नहीं किया जाता है, तो वह मौजूदा स्थान-भाषा का इस्तेमाल करती है.
<speak> <say-as interpret-as='currency' language='en-US'>$42.01</say-as> </speak>
-
telephone
W3C एसएसएमएल 1.0 जैसे कि एट्रिब्यूट की वैल्यू वाले WG नोट में,
interpret-as='telephone'
का ब्यौरा देखें.आगे दिए गए उदाहरण को "एक आठ शून्य शून्य दो शून्य दो एक दो एक दो" के तौर पर बोला गया है. अगर "google:style" एट्रिब्यूट को शामिल नहीं किया जाता है, तो यह शून्य को अक्षर O के तौर पर दिखाता है.
"google:style='zero-as-zero'" एट्रिब्यूट अभी सिर्फ़ अंग्रेज़ी भाषा में काम करता है.
<speak> <say-as interpret-as='telephone' google:style='zero-as-zero'>1800-202-1212</say-as> </speak>
-
verbatim
याspell-out
नीचे दिए गए उदाहरण को अक्षर दर अक्षर लिखा गया है:
<speak> <say-as interpret-as="verbatim">abcdefg</say-as> </speak>
-
date
format
एट्रिब्यूट, तारीख फ़ील्ड के वर्ण कोड का क्रम होता है. साल, महीने, और महीने के दिन के लिए,format
में {y
,m
,d
} फ़ील्ड वर्ण कोड इस्तेमाल किए जा सकते हैं. अगर फ़ील्ड कोड साल, महीने या दिन के लिए एक बार दिखता है, तो अंकों की संख्या क्रमश: 4, 2, और 2 होगी. अगर फ़ील्ड कोड दोहराया जाता है, तो अनुमानित अंकों की संख्या का मतलब कोड के दोहराए जाने की संख्या से है. तारीख के टेक्स्ट के फ़ील्ड, विराम चिह्न और/या खाली जगह से अलग किए जा सकते हैं.detail
एट्रिब्यूट, तारीख के बोले गए फ़ॉर्मैट को कंट्रोल करता है.detail='1'
के लिए, सिर्फ़ दिन का फ़ील्ड और महीना या साल में से कोई एक फ़ील्ड ज़रूरी हैं. हालांकि, दोनों दिए जा सकते हैं. तीनों फ़ील्ड से कम फ़ील्ड दिए जाने पर, यह डिफ़ॉल्ट सेटिंग लागू होती है. बोला गया फ़ॉर्म "{month}, {year}" का {ordinalday} है.नीचे दिया गया उदाहरण "दस सितंबर, उन्नीस साठ" के रूप में बोला गया है:
<speak> <say-as interpret-as="date" format="yyyymmdd" detail="1"> 1960-09-10 </say-as> </speak>
नीचे दिया गया उदाहरण "सितंबर का दसवां दिन" बोला गया है:
<speak> <say-as interpret-as="date" format="dm">10-9</say-as> </speak>
detail='2'
के लिए दिन, महीना, और साल वाले फ़ील्ड ज़रूरी हैं. ये तीनों फ़ील्ड दिए जाने पर डिफ़ॉल्ट तौर पर सेट होते हैं. बोला गया फ़ॉर्म "{month} {ordinalday}, {year}" है.नीचे दिया गया उदाहरण "10 सितंबर, 1960" के तौर पर बोला गया है:
<speak> <say-as interpret-as="date" format="dmy" detail="2"> 10-9-1960 </say-as> </speak>
-
characters
नीचे दिया गया उदाहरण "C A N" है:
<speak> <say-as interpret-as="characters">can</say-as> </speak>
-
cardinal
इस उदाहरण को "बारह हज़ार तीन सौ पैंतालीस" (यूएस अंग्रेज़ी के लिए) या "बारह हज़ार तीन सौ पैंतालीस (यूके अंग्रेज़ी के लिए)" के तौर पर बोला गया है:
<speak> <say-as interpret-as="cardinal">12345</say-as> </speak>
-
ordinal
नीचे दिए गए उदाहरण को "फ़र्स्ट" के तौर पर बोला गया है:
<speak> <say-as interpret-as="ordinal">1</say-as> </speak>
-
fraction
नीचे दिया गया उदाहरण "साढ़े पांच" के रूप में बोला गया है:
<speak> <say-as interpret-as="fraction">5+1/2</say-as> </speak>
-
expletive
याbleep
यह उदाहरण बीप की तरह आता है, लगता है कि इसे सेंसर कर दिया गया है:
<speak> <say-as interpret-as="expletive">censor this</say-as> </speak>
-
unit
संख्या के आधार पर इकाइयों को एकवचन या बहुवचन में बदलता है. नीचे दिया गया उदाहरण "10 फ़ीट" बोला गया है:
<speak> <say-as interpret-as="unit">10 foot</say-as> </speak>
-
time
नीचे दिया गया उदाहरण "दोपहर दो तीस बजे" कहा गया है:
<speak> <say-as interpret-as="time" format="hms12">2:30pm</say-as> </speak>
format
एट्रिब्यूट, टाइम फ़ील्ड के वर्ण कोड का क्रम है.format
में घंटे,मिनट (घंटे का), सेकंड (मिनट का), टाइम ज़ोन, 12 घंटे के समय, और 24 घंटे के लिए {h
,m
,s
,Z
,12
,24
} फ़ील्ड वर्ण कोड इस्तेमाल किए जा सकते हैं. अगर फ़ील्ड कोड घंटे, मिनट या सेकंड के लिए एक बार दिखता है, तो अंकों की अनुमानित संख्या 1, 2, और 2 होगी. अगर फ़ील्ड कोड दोहराया जाता है, तो अनुमानित अंकों की संख्या का मतलब कोड के दोहराए जाने की संख्या से है. समय वाले टेक्स्ट के फ़ील्ड, विराम चिह्न और/या खाली जगह से अलग किए जा सकते हैं. अगर घंटे, मिनट या सेकंड के फ़ॉर्मैट में वैल्यू नहीं दी गई है या मेल खाने वाला कोई अंक नहीं है, तो फ़ील्ड को शून्य वैल्यू माना जाएगा. डिफ़ॉल्टformat
"hms12" है.detail
एट्रिब्यूट की मदद से, यह कंट्रोल किया जाता है कि समय का बोला गया रूप 12 घंटे के समय का है या 24 घंटे के समय का. अगरdetail='1'
याdetail
को शामिल नहीं किया गया है और समय का फ़ॉर्मैट 24 घंटे है, तो बोला गया फ़ॉर्म 24 घंटे का है. अगरdetail='2'
याdetail
को शामिल नहीं किया गया है और समय का फ़ॉर्मैट 12 घंटे है, तो बोला गया फ़ॉर्म 12 घंटे का है.
say-as
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
<audio>
रिकॉर्ड की गई ऑडियो फ़ाइलों को शामिल करने और संश्लेषित वाक् आउटपुट के साथ अन्य ऑडियो फ़ॉर्मैट भी शामिल करने की सुविधा देता है.
एट्रिब्यूट
एट्रिब्यूट | ज़रूरी है | डिफ़ॉल्ट | वैल्यू |
---|---|---|---|
src |
हाँ | लागू नहीं | ऑडियो मीडिया सोर्स के बारे में बताने वाला यूआरआई. https प्रोटोकॉल का इस्तेमाल किया जा सकता है. |
clipBegin |
no | 0 | एक TimeDesignation, जो कि ऑडियो सोर्स के वीडियो चलाने की शुरुआत से ऑफ़सेट होता है. अगर यह वैल्यू ऑडियो सोर्स के असल समय से ज़्यादा या उसके बराबर है, तो कोई ऑडियो नहीं जोड़ा जाएगा. |
clipEnd |
no | इनफ़िनिटी | एक TimeDesignation, जो ऑडियो सोर्स के शुरू से लेकर, खत्म होने तक का ऑफ़सेट होता है. अगर ऑडियो सोर्स का असल समय इस वैल्यू से कम है, तो वीडियो उस समय दिखना बंद हो जाएगा. अगर clipBegin की वैल्यू clipEnd से ज़्यादा या इसके बराबर है, तो कोई ऑडियो नहीं डाला जाएगा. |
speed |
no | 100% | इनपुट की सामान्य दर के सापेक्ष आउटपुट प्लेबैक दर का अनुपात, जिसे प्रतिशत के रूप में दिखाया जाता है. फ़ॉर्मैट एक पॉज़िटिव रीयल नंबर है, जिसके बाद % का इस्तेमाल किया जाता है. फ़िलहाल, यह रेंज [50% (धीमी - आधी स्पीड), 200% (तेज़ - दोगुनी स्पीड)] है. उस सीमा से बाहर के वैल्यू को उसमें शामिल होने के लिए अडजस्ट किया जा सकता है (या नहीं भी किया जा सकता). |
repeatCount |
no | 1 या अगर repeatDur सेट है, तो 10 |
एक रीयल नंबर, जिससे यह पता चलता है कि ऑडियो को कितनी बार शामिल करना है (क्लिपिंग करने के बाद, अगर कोई हो, तो clipBegin और/या clipEnd से). दशमलव को दोहराने की सुविधा नहीं है. इसलिए, वैल्यू को सबसे करीबी पूर्णांक में बदल दिया जाएगा. शून्य एक मान्य मान नहीं है और इसलिए उसे अनिर्दिष्ट माना जाता है और उस मामले में उसका डिफ़ॉल्ट मान होता है. |
repeatDur |
no | इनफ़िनिटी | एक TimeDesignation, जो कि clipBegin , clipEnd , repeatCount , और speed एट्रिब्यूट के लिए, सोर्स प्रोसेस होने के बाद डाले गए ऑडियो की अवधि की सीमा होती है, न कि वीडियो चलाने में लगने वाले सामान्य समय के लिए. अगर प्रोसेस किए गए ऑडियो की अवधि इस वैल्यू से कम है, तो वीडियो चलाने की अवधि उस समय पर खत्म हो जाएगी. |
soundLevel |
no | +0 डीबी | ऑडियो के साउंड लेवल को soundLevel डेसीबेल तक अडजस्ट करें. ज़्यादा से ज़्यादा रेंज +/-40dB है, लेकिन असल रेंज असरदार तरीके से कम हो सकती है. साथ ही, हो सकता है कि आउटपुट क्वालिटी पूरी रेंज में अच्छे नतीजे न दे. |
फ़िलहाल, ऑडियो के लिए ये सेटिंग काम करती हैं:
- फ़ॉर्मैट: MP3 (MPEG v2)
- हर सेकंड 24 हज़ार सैंपल
- 24 हज़ार ~ 96 हज़ार बिट प्रति सेकंड, फ़िक्स्ड रेट
- फ़ॉर्मैट: Ogg में Opus
- हर सेकंड 24 हज़ार सैंपल (सुपर-वाइडबैंड)
- 24K - 96K बिट प्रति सेकंड, फ़िक्स्ड रेट
- फ़ॉर्मैट (अब सेवा में नहीं है): WAV (RIFF)
- PCM 16-बिट साइन किया हुआ, लिटिल एंडियन
- हर सेकंड 24 हज़ार सैंपल
- सभी फ़ॉर्मैट के लिए:
- एक चैनल को प्राथमिकता दी जाती है, लेकिन स्टीरियो को स्वीकार किया जाता है.
- ज़्यादा से ज़्यादा 240 सेकंड. अगर आपको लंबी अवधि वाला ऑडियो चलाना है, तो मीडिया रिस्पॉन्स लागू करें.
- फ़ाइल का साइज़ पांच मेगाबाइट से ज़्यादा हो सकता है.
- सोर्स यूआरएल में एचटीटीपीएस प्रोटोकॉल का इस्तेमाल करना ज़रूरी है.
- ऑडियो फ़ेच करते समय, हमारा UserAgent "Google-Speech-Actions" दिखता है.
<audio>
एलिमेंट का कॉन्टेंट इस्तेमाल करना ज़रूरी नहीं है. इनका इस्तेमाल तब किया जाता है, जब ऑडियो फ़ाइल को चलाया न जा सके या आउटपुट डिवाइस पर ऑडियो काम न करता हो. कॉन्टेंट में <desc>
एलिमेंट शामिल हो सकता है. ऐसे में, उस एलिमेंट के टेक्स्ट कॉन्टेंट को दिखाने के लिए इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, जवाबों की चेकलिस्ट में रिकॉर्ड किया गया ऑडियो सेक्शन देखें.
src
का यूआरएल, एक एचटीटीपीएस यूआरएल भी होना चाहिए. Google Cloud Storage, एचटीटीपीएस यूआरएल पर आपकी ऑडियो फ़ाइलों को होस्ट कर सकता है.
मीडिया जवाबों के बारे में ज़्यादा जानने के लिए, जवाब गाइड में मीडिया जवाब सेक्शन देखें.
audio
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
<speak> <audio src="cat_purr_close.ogg"> <desc>a cat purring</desc> PURR (sound didn't load) </audio> </speak>
<p>,<s>
वाक्य और पैराग्राफ़ के एलिमेंट.
p
और s
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
<p><s>This is sentence one.</s><s>This is sentence two.</s></p>
सबसे सही तरीके
- पूरे वाक्यों को रैप करने के लिए, <s>...</s> टैग का इस्तेमाल करें. खास तौर पर तब, जब उनमें ऐसे एसएसएमएल एलिमेंट शामिल हों जो प्रोसोडी में बदलाव करते हैं (जैसे, <audio>, <break>, <emphasis>, <par>, <prosody>, <say-as>, <seq>, और <sub>).
- अगर बोलने का ब्रेक इतना लंबा होना चाहिए कि उसे आसानी से सुना जा सके, तो <s>...</s> टैग का इस्तेमाल करें और इस ब्रेक को वाक्यों के बीच रखें.
<sub>
यह बताएं कि उपनाम एट्रिब्यूट की वैल्यू में शामिल टेक्स्ट, उच्चारण के लिए शामिल टेक्स्ट की जगह ले लेता है.
sub
एलिमेंट का इस्तेमाल, पढ़ने में मुश्किल शब्द का आसान उच्चारण देने के लिए भी किया जा सकता है. नीचे दिए गए उदाहरण में, जैपनीज़ में इस्तेमाल के इस उदाहरण को दिखाया गया है.
sub
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
<sub alias="World Wide Web Consortium">W3C</sub>
<sub alias="にっぽんばし">日本橋</sub>
<mark>
कोई खाली एलिमेंट, जो टेक्स्ट या टैग के क्रम में मार्कर लगाता है. इसका इस्तेमाल क्रम में किसी खास जगह के बारे में बताने या एसिंक्रोनस सूचना के लिए आउटपुट स्ट्रीम में मार्कर लगाने के लिए किया जा सकता है.
mark
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
<speak> Go from <mark name="here"/> here, to <mark name="there"/> there! </speak>
<prosody>
इसका इस्तेमाल, एलिमेंट में शामिल टेक्स्ट की पिच, बोलने की दर, और वॉल्यूम को पसंद के मुताबिक बनाने के लिए किया जाता है. फ़िलहाल, rate
, pitch
, और volume
एट्रिब्यूट इस्तेमाल किए जा सकते हैं.
rate
और volume
एट्रिब्यूट को W3 की खास बातों के हिसाब से सेट किया जा सकता है. pitch
एट्रिब्यूट की वैल्यू सेट करने के तीन विकल्प हैं:
एट्रिब्यूट | ब्यौरा |
---|---|
name |
हर निशान के लिए स्ट्रिंग आईडी. |
विकल्प | ब्यौरा |
---|---|
संबंधी | अगर "मीडियम" डिफ़ॉल्ट पिच है, तो मिलती-जुलती वैल्यू बताएं. जैसे, "कम", "मीडियम", "ज़्यादा" वगैरह. |
सेमिटोन | पिच को "N" सेमीटोन तक बढ़ाने या घटाने के लिए, क्रम से "+Nst" या "-Nst" का इस्तेमाल करें. ध्यान दें कि "+/-" और "st" ज़रूरी हैं. |
प्रतिशत | पिच को "N" प्रतिशत तक बढ़ाने या घटाने के लिए, "+N%" या "-N%" का इस्तेमाल करें. ध्यान दें कि "%" ज़रूरी है, लेकिन "+/-" ज़रूरी नहीं है. |
prosody
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
इस उदाहरण में, सामान्य से कम दो सेमीटोन में धीरे बोलने के लिए <prosody>
एलिमेंट का इस्तेमाल किया गया है:
<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>
<emphasis>
इसका इस्तेमाल, एलिमेंट में शामिल टेक्स्ट पर ज़ोर देने या उसे हटाने के लिए किया जाता है. <emphasis>
एलिमेंट, बोले गए शब्दों में बदलाव करता है. यह बदलाव <prosody>
की तरह ही होता है. हालांकि, इसके लिए बोली के अलग-अलग एट्रिब्यूट सेट करने की ज़रूरत नहीं होती.
यह एलिमेंट, नीचे दी गई मान्य वैल्यू के साथ एक वैकल्पिक "लेवल" एट्रिब्यूट के साथ काम करता है:
strong
moderate
none
reduced
emphasis
एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.
उदाहरण
इस उदाहरण में, कोई सूचना देने के लिए <emphasis>
एलिमेंट का इस्तेमाल किया गया है:
<emphasis level="moderate">This is an important announcement</emphasis>
<par>
एक पैरलल मीडिया कंटेनर, जो आपको एक साथ कई मीडिया एलिमेंट चलाने की सुविधा देता है. सिर्फ़ एक या उससे ज़्यादा <par>
, <seq>
, और <media>
एलिमेंट के सेट को ही कॉन्टेंट की अनुमति दी जा सकती है. <media>
एलिमेंट का क्रम अहम नहीं है.
जब तक कोई चाइल्ड एलिमेंट अलग शुरुआती समय तय नहीं करता, तब तक एलिमेंट के शुरू होने का इंप्लिसिट समय वही होता है जो <par>
कंटेनर में होता है. अगर किसी चाइल्ड एलिमेंट में begin या end एट्रिब्यूट के लिए ऑफ़सेट वैल्यू सेट की गई है, तो एलिमेंट का ऑफ़सेट <par>
कंटेनर की शुरुआत के समय के मुताबिक होगा. रूट <par>
एलिमेंट के लिए, शुरुआती एट्रिब्यूट को अनदेखा कर दिया जाता है और शुरुआत का समय तब होता है, जब एसएसएमएल स्पीच सिंथेसिस प्रोसेस, रूट <par>
एलिमेंट के लिए आउटपुट जनरेट करना शुरू करती है. इसका मतलब है कि समय "शून्य" हो सकता है.
उदाहरण
<speak> <par> <media xml:id="question" begin="0.5s"> <speak>Who invented the Internet?</speak> </media> <media xml:id="answer" begin="question.end+2.0s"> <speak>The Internet was invented by cats.</speak> </media> <media begin="answer.end-0.2s" soundLevel="-6dB"> <audio src="https://actions.google.com/.../cartoon_boing.ogg"/> </media> <media repeatCount="3" soundLevel="+2.28dB" fadeInDur="2s" fadeOutDur="0.2s"> <audio src="https://actions.google.com/.../cat_purr_close.ogg"/> </media> </par> </speak>
<seq>
क्रम में चलने वाला मीडिया कंटेनर, जो आपको मीडिया के एलिमेंट को एक के बाद एक चलाने की सुविधा देता है. सिर्फ़ एक या उससे ज़्यादा <seq>
, <par>
, और <media>
एलिमेंट के सेट को ही कॉन्टेंट की अनुमति दी जा सकती है. मीडिया एलिमेंट का क्रम, उन्हें रेंडर करने का क्रम होता है.
चाइल्ड एलिमेंट के begin और end एट्रिब्यूट को ऑफ़सेट वैल्यू पर सेट किया जा सकता है (नीचे समय की जानकारी देखें). उन चाइल्ड एलिमेंट की ऑफ़सेट वैल्यू, क्रम में मौजूद पिछले एलिमेंट के आखिरी एलिमेंट से मिलती-जुलती होंगी. इसके अलावा, क्रम में पहले एलिमेंट के मामले में, वे अपने <seq>
कंटेनर की शुरुआत में दी गई वैल्यू से भी मिलती-जुलती होंगी.
उदाहरण
<speak> <seq> <media begin="0.5s"> <speak>Who invented the Internet?</speak> </media> <media begin="2.0s"> <speak>The Internet was invented by cats.</speak> </media> <media soundLevel="-6dB"> <audio src="https://actions.google.com/.../cartoon_boing.ogg"/> </media> <media repeatCount="3" soundLevel="+2.28dB" fadeInDur="2s" fadeOutDur="0.2s"> <audio src="https://actions.google.com/.../cat_purr_close.ogg"/> </media> </seq> </speak>
<media>
यह <par>
या <seq>
एलिमेंट में मीडिया लेयर दिखाता है. <media>
एलिमेंट का कॉन्टेंट, एसएसएमएल <speak>
या <audio>
एलिमेंट के तौर पर इस्तेमाल किया जा सकता है. नीचे दी गई टेबल में, <media>
एलिमेंट के मान्य एट्रिब्यूट के बारे में बताया गया है.
एट्रिब्यूट
एट्रिब्यूट | ज़रूरी है | डिफ़ॉल्ट | वैल्यू |
---|---|---|---|
xml:id | no | कोई भी मान नहीं | इस एलिमेंट के लिए यूनीक एक्सएमएल आइडेंटिफ़ायर. कोड में बदली गई इकाइयां काम नहीं करतीं. इस्तेमाल किए जा सकने वाले आइडेंटिफ़ायर की वैल्यू, रेगुलर एक्सप्रेशन "([-_#]|\p{L}|\p{D})+" से मैच करती हैं. ज़्यादा जानकारी के लिए, XML-ID देखें. |
शुरू करें | no | 0 | इस मीडिया कंटेनर के लिए शुरुआत का समय. अगर यह रूट मीडिया कंटेनर एलिमेंट है, तो इसे अनदेखा किया जाता है. इसे "0" के डिफ़ॉल्ट एलिमेंट की तरह माना जाता है. मान्य स्ट्रिंग वैल्यू के लिए, नीचे दिया गया समय की जानकारी सेक्शन देखें. |
खत्म | no | कोई भी मान नहीं | इस मीडिया कंटेनर के खत्म होने के समय की खास जानकारी. मान्य स्ट्रिंग वैल्यू के लिए, नीचे दिया गया समय की जानकारी सेक्शन देखें. |
repeatCount | no | 1 | एक रीयल नंबर, जिसमें यह बताया जाता है कि मीडिया को कितनी बार शामिल करना है. दशमलव के बाद के किसी अंक को दोहराया नहीं जा सकता. इसलिए, वैल्यू को नज़दीकी पूर्णांक में बदल दिया जाएगा. शून्य एक मान्य मान नहीं है और इसलिए उसे अनिर्दिष्ट माना जाता है और उस मामले में उसका डिफ़ॉल्ट मान होता है. |
repeatDur | no | कोई भी मान नहीं | TimeDesignation, जो डाले गए मीडिया की अवधि की सीमा होता है. अगर मीडिया की अवधि इस मान से कम है, तो वीडियो उस समय खत्म हो जाएगा. |
soundLevel | no | +0 डीबी | ऑडियो के आवाज़ के लेवल को soundLevel डेसिबल तक कम या ज़्यादा करें. ज़्यादा से ज़्यादा रेंज +/-40dB है, लेकिन असल रेंज असरदार तरीके से कम हो सकती है. साथ ही, हो सकता है कि आउटपुट क्वालिटी पूरी रेंज में अच्छे नतीजे न दे. |
fadeInDur | no | 0 सेकंड | ऐसा TimeDesignation, जिस पर मीडिया साइलेंट मोड से हटाकर, वैकल्पिक तौर पर तय किए गए soundLevel में फ़ेड इन हो जाएगा. अगर मीडिया की अवधि इस मान से कम है, तो प्लेबैक खत्म होने पर फ़ेड इन बंद हो जाएगा और आवाज़ का स्तर तय आवाज़ तक नहीं पहुंचेगा. |
fadeOutDur | no | 0 सेकंड | ऐसा TimeDesignation जिस पर मीडिया, वैकल्पिक तौर पर बताए गए soundLevel से तब तक फ़ेड आउट हो जाएगा, जब तक वह साइलेंट नहीं हो जाता. अगर मीडिया की अवधि इस मान से कम है, तो आवाज़ का स्तर कम मान पर सेट होता है, ताकि यह पक्का किया जा सके कि प्लेबैक खत्म होने पर साइलेंस तक पहुंच जाए. |
समय की जानकारी
<media>
एलिमेंट और मीडिया कंटेनर (<par>
और <seq>
एलिमेंट) के `begin` और `end` एट्रिब्यूट की वैल्यू के लिए इस्तेमाल किया जाने वाला समय स्पेसिफ़िकेशन, ऑफ़सेट वैल्यू (उदाहरण के लिए, +2.5s
) या सिंकबेस वैल्यू (उदाहरण के लिए, foo_id.end-250ms
) होता है.
- ऑफ़सेट वैल्यू - टाइम ऑफ़सेट वैल्यू एक SMIL टाइमकाउंट-वैल्यू है, जो रेगुलर एक्सप्रेशन से मेल खाने वाली वैल्यू की अनुमति देती है:
"\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"
पहले अंक की स्ट्रिंग, दशमलव संख्या का पूरा हिस्सा होती है और दूसरे अंक की स्ट्रिंग, दशमलव भिन्न वाला हिस्सा होती है. डिफ़ॉल्ट चिह्न (यानी "(+|-)?") है "+". यूनिट वैल्यू क्रमश: घंटे, मिनट, सेकंड, और मिलीसेकंड के हिसाब से होती हैं. यूनिट के लिए डिफ़ॉल्ट वैल्यू "s" (सेकंड) है.
- Syncbase वैल्यू - सिंकबेस वैल्यू, SMIL Syncbase-वैल्यू है. इससे रेगुलर एक्सप्रेशन से मेल खाने वाली वैल्यू को इस्तेमाल करने की अनुमति मिलती है:
"([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"
अंकों और इकाइयों को ऑफ़सेट वैल्यू की तरह ही समझा जाता है.
टीटीएस सिम्युलेटर
कार्रवाई कंसोल में एक टीटीएस सिम्युलेटर होता है, जिसका इस्तेमाल करके आप ऊपर दिए गए किसी भी एलिमेंट के साथ एसएसएमएल की जांच कर सकते हैं. कंसोल में सिम्युलेटर > ऑडियो में जाकर, टीटीएस सिम्युलेटर देखा जा सकता है. सिम्युलेटर में अपना टेक्स्ट और एसएसएमएल टाइप करें और टीटीएस आउटपुट सुनने के लिए, अपडेट करें और सुनें पर क्लिक करें.
आप टीटीएस आउटपुट की .mp3
फ़ाइल सेव करने के लिए भी 'डाउनलोड करें' बटन पर क्लिक कर सकते हैं.