एसएसएमएल (Dialogflow)

Google Assistant को जवाब देते समय, आपके जवाबों में स्पीच सिंथेसिस मार्कअप लैंग्वेज (SSML). इन्होंने बदलाव किया है SSML का इस्तेमाल करके, आप अपनी बातचीत के जवाबों को बोली. एसएसएमएल मार्कअप का उदाहरण नीचे दिया गया है. साथ ही, यह भी बताया गया है कि इसे Google Assistant.

एसएसएमएल
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.ask(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>"
              }
            }
          ]
        }
      }
    }
  ]
}

ऑडियो

SSML, ऐक्शन सिम्युलेटर में काम करता है, लेकिन Dialogflow में काम नहीं करता सिम्युलेटर.

एसएसएमएल में मौजूद यूआरएल

सिर्फ़ यूआरएल वाला एसएसएमएल रिस्पॉन्स तय करते समय, उस यूआरएल में ऐंपरसेंड करता है एक्सएमएल फ़ॉर्मैटिंग की वजह से समस्याएं हो सकती हैं. यह पक्का करने के लिए कि यूआरएल सही तरीके से है रेफ़र किया गया, & के इंस्टेंस को &amp; से बदलें.

भले ही, आपके एसएसएमएल रिस्पॉन्स में सिर्फ़ यूआरएल शामिल हो, लेकिन Actions on Google के लिए ज़रूरी है जवाब के लिए टेक्स्ट दिखाएं. क्योंकि <audio> टैग में मौजूद टेक्स्ट नहीं, बल्कि फ़िलर टेक्स्ट या कम शब्दों वाला ब्यौरा अपने इस शर्त को पूरा करने के लिए, <audio> टैग का इस्तेमाल करें. <audio> टैग में मौजूद टेक्स्ट ऑडियो चलने के बाद Assistant से बात की जाती है और Google के Action के साथ आपके SSML के डिसप्ले टेक्स्ट वर्शन की ज़रूरत है.

यहां समस्या वाले एसएसएमएल रिस्पॉन्स का एक उदाहरण दिया गया है:

<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&amp;token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
  text
  </audio>
</speak>

SSML एलिमेंट के साथ काम करता है

यहां दिए गए सेक्शन में उन एसएसएमएल एलिमेंट और विकल्पों के बारे में बताया गया है जिनका इस्तेमाल आपकी कार्रवाइयों में किया जा सकता है.

<speak>

SSML रिस्पॉन्स का रूट एलिमेंट.

speak एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.

उदाहरण

<speak>
  my SSML content
</speak>

<break>

एक खाली एलिमेंट, जो शब्दों के बीच रोकने या अन्य प्रॉसोडिक सीमाओं को कंट्रोल करता है. टोकन के किसी भी जोड़े के बीच <break> का इस्तेमाल करना ज़रूरी नहीं है. अगर शब्दों के बीच यह एलिमेंट मौजूद नहीं है, तो भाषा के संदर्भ के आधार पर ब्रेक अपने-आप तय हो जाता है.

break एलिमेंट के बारे में ज़्यादा जानने के लिए, W3 की खास बातें देखें.

विशेषताएं

एट्रिब्यूट ब्यौरा
time

ब्रेक की अवधि, सेकंड या मिलीसेकंड के हिसाब से सेट करता है. जैसे, "3 सेकंड" या "250 मि॰से॰".

strength

रिलेटिव ब्रेक की स्ट्रेंथ को संबंधित शब्दों के हिसाब से सेट करता है. मान्य वैल्यू इस तरह हैं: "x-weak", low", "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 मौजूद होता है. यह एट्रिब्यूट तय करता है कि वैल्यू कैसे बोली जाएगी. वैकल्पिक एट्रिब्यूट format और detail का इस्तेमाल खास interpret-as वैल्यू के आधार पर किया जा सकता है.

उदाहरण

interpret-as एट्रिब्यूट में ये वैल्यू इस्तेमाल की जा सकती हैं:

  • currency

    नीचे दिया उदाहरण "बयालीस डॉलर और एक सेंट" के तौर पर बोला गया है. अगर भाषा वाला एट्रिब्यूट मौजूद नहीं है, तो मौजूदा स्थान-भाषा का इस्तेमाल किया जाता है.

    <speak>
      <say-as interpret-as='currency' language='en-US'>$42.01</say-as>
    </speak>
        
  • telephone

    W3C SSML 1.0 say-as एट्रिब्यूट की वैल्यू 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}" का {ordinal day} है.

    इस उदाहरण को "सितंबर का दसवां, उन्नीसठवां" कहा जाता है:

    <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} {ordinal day}, {year}" है.

    इस उदाहरण को "दस सितंबर, उन्नीसठवां" कहा जाता है:

    <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

    इस उदाहरण में कहा गया है, "रात दो बजकर 30 मिनट":

    <speak>
      <say-as interpret-as="time" format="hms12">2:30pm</say-as>
    </speak>
        

    format एट्रिब्यूट, टाइम फ़ील्ड के वर्ण कोड का क्रम होता है. format फ़ील्ड में इस्तेमाल होने वाले वर्ण कोड {h,m, s, Z, 12, 24} घंटे, मिनट (घंटे का), दूसरा (मिनट का), टाइम ज़ोन, 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 नहीं 0 एक TimeDesignation जो ऑडियो सोर्स की शुरुआत से लेकर वीडियो चलाना शुरू करने के समय का ऑफ़सेट होता है. अगर यह वैल्यू ऑडियो सोर्स के असल समय से ज़्यादा या उसके बराबर है, तो कोई ऑडियो नहीं डाला जाता.
clipEnd नहीं इनफ़िनिटी यह TimeDesignation है. यह ऑडियो सोर्स के शुरू से लेकर आखिर तक वीडियो चलाने तक का ऑफ़सेट होता है. अगर ऑडियो सोर्स की असल अवधि इस वैल्यू से कम है, तो उस समय वीडियो चलना बंद हो जाता है. अगर clipBegin, clipEnd से ज़्यादा या इसके बराबर है, तो कोई ऑडियो नहीं डाला जाता.
speed नहीं 100% प्रतिशत के रूप में दिखाई जाने वाली सामान्य इनपुट दर के मुकाबले आउटपुट वीडियो चलाने की दर का अनुपात. फ़ॉर्मैट एक पॉज़िटिव रीयल नंबर होता है, जिसके बाद % होता है. फ़िलहाल, इस रेंज में [50% (धीमी - आधी स्पीड) और 200% (तेज़ - दोगुनी स्पीड)] की वैल्यू दी गई है. उस रेंज से बाहर की वैल्यू को, उसमें शामिल करने के लिए अडजस्ट किया जा सकता है या नहीं भी किया जा सकता.
repeatCount नहीं 1 या अगर repeatDur सेट है, तो 10 एक रीयल नंबर, जो यह बताता है कि ऑडियो कितनी बार डालना है (अगर क्लिप बनाने के बाद, clipBegin और/या clipEnd के ज़रिए). दशमलव के बाद वाले दोहराव का इस्तेमाल नहीं किया जा सकता. इसलिए, वैल्यू को सबसे पास के पूर्णांक में बदल दिया जाएगा. शून्य एक मान्य मान नहीं होता है और इसलिए इसे अनिर्दिष्ट माना जाता है और इस मामले में उसका डिफ़ॉल्ट मान होता है.
repeatDur नहीं इनफ़िनिटी TimeDesignation. यह clipBegin, clipEnd, repeatCount, और speed एट्रिब्यूट के लिए सोर्स को प्रोसेस किए जाने के बाद, शामिल किए गए ऑडियो की अवधि की सीमा होती है. इसके बाद, वीडियो चलाने की सामान्य अवधि होती है. अगर प्रोसेस किए गए ऑडियो की अवधि, इस वैल्यू से कम है, तो उस समय वीडियो चलना बंद हो जाता है.
soundLevel नहीं +0डीबी ऑडियो का साउंड लेवल soundLevelडेसिबल तक कम या ज़्यादा करें. ज़्यादा से ज़्यादा रेंज +/-40dB है, लेकिन असल रेंज इससे कम हो सकती है. ऐसा भी हो सकता है कि आउटपुट क्वालिटी में पूरी रेंज में अच्छे नतीजे न मिलें.

फ़िलहाल, ऑडियो के लिए ये सेटिंग काम करती हैं:

  • फ़ॉर्मैट: MP3 (MPEG v2)
    • 24 हज़ार सैंपल प्रति सेकंड
    • 24K ~ 96K बिट प्रति सेकंड, तय दर
  • फ़ॉर्मैट: Ogg में Opus
    • 24K सैंपल प्रति सेकंड (सुपर-वाइडबैंड)
    • 24K - 96K बिट प्रति सेकंड, तय दर
  • फ़ॉर्मैट (अब सेवा में नहीं है): WAV (RIFF)
    • PCM 16-बिट साइन किया हुआ, लिटिल एंडियन
    • 24 हज़ार सैंपल प्रति सेकंड
  • सभी फ़ॉर्मैट के लिए:
    • एक चैनल को प्राथमिकता दी जाती है, लेकिन स्टीरियो का उपयोग भी किया जा सकता है.
    • ज़्यादा से ज़्यादा 240 सेकंड. अगर आपको लंबी अवधि वाला ऑडियो चलाना है, तो मीडिया रिस्पॉन्स का इस्तेमाल करें.
    • फ़ाइल का साइज़ 5 मेगाबाइट से ज़्यादा नहीं होना चाहिए.
    • सोर्स यूआरएल में एचटीटीपीएस प्रोटोकॉल का इस्तेमाल किया जाना चाहिए.
    • ऑडियो फ़ेच करने के दौरान हमारा 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 की खास बातें देखें.

उदाहरण


<prosody>

इसका इस्तेमाल एलिमेंट में मौजूद टेक्स्ट की पिच, बोलने की दर, और वॉल्यूम को पसंद के मुताबिक बनाने के लिए किया जाता है. फ़िलहाल, rate, pitch, और volume एट्रिब्यूट काम करते हैं.

rate और volume एट्रिब्यूट को W3 की खास बातों के हिसाब से सेट किया जा सकता है. pitch एट्रिब्यूट की वैल्यू सेट करने के तीन विकल्प हैं:

<speak>
Go from <mark name="here"/> here, to <mark name="there"/> there!
</speak>
एट्रिब्यूट ब्यौरा
name

हर मार्क का स्ट्रिंग आईडी.

विकल्प ब्यौरा
संबंधी कोई रिलेटिव वैल्यू बताएं (जैसे, "low", "medium", "high" वगैरह) जहां "Medium" डिफ़ॉल्ट पिच है.
सिमिटोन पिच को "N" तक बढ़ाएं या घटाएं "+Nst" का इस्तेमाल करने वाले सेमीटोन या "-Nst" क्रम से. ध्यान दें कि "+/-" और "स्टोन" आवश्यक हैं.
प्रतिशत पिच को "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> एलिमेंट के लिए मान्य एट्रिब्यूट के बारे में बताया गया है.

विशेषताएं

एट्रिब्यूट ज़रूरी है डिफ़ॉल्ट वैल्यू
एक्सएमएल:आईडी नहीं कोई भी मान नहीं इस एलिमेंट के लिए यूनीक एक्सएमएल आइडेंटिफ़ायर. कोड में बदली गई इकाइयां काम नहीं करतीं. आइडेंटिफ़ायर के लिए मंज़ूर की गई वैल्यू, रेगुलर एक्सप्रेशन "([-_#]|\p{L}|\p{D})+" से मेल खाती हैं. ज़्यादा जानकारी के लिए एक्सएमएल-आईडी देखें.
शुरू करें नहीं 0 इस मीडिया कंटेनर के लिए शुरुआत का समय. अगर यह रूट मीडिया कंटेनर एलिमेंट है, तो इस पर ध्यान नहीं दिया जाता (इसे डिफ़ॉल्ट "0" के तौर पर माना जाता है). मान्य स्ट्रिंग वैल्यू के लिए, नीचे समय की जानकारी सेक्शन देखें.
खत्म नहीं कोई भी मान नहीं इस मीडिया कंटेनर के खत्म होने के समय के लिए खास जानकारी. मान्य स्ट्रिंग वैल्यू के लिए, नीचे समय की जानकारी सेक्शन देखें.
repeatCount नहीं 1 एक रीयल नंबर जो बताता है कि मीडिया को कितनी बार डालना है. दशमलव के बाद वाले दोहराव का इस्तेमाल नहीं किया जा सकता. इसलिए, वैल्यू को सबसे पास के पूर्णांक में बदल दिया जाएगा. शून्य एक मान्य मान नहीं होता है और इसलिए इसे अनिर्दिष्ट माना जाता है और इस मामले में उसका डिफ़ॉल्ट मान होता है.
repeatDur नहीं कोई भी मान नहीं TimeDesignation. इसमें शामिल किए गए मीडिया की समयावधि के बारे में बताया जाता है. अगर मीडिया की अवधि इस वैल्यू से कम है, तो वीडियो उसी समय खत्म हो जाएगा.
soundLevel नहीं +0डीबी ऑडियो का साउंड लेवल soundLevel डेसिबल तक कम या ज़्यादा करें. ज़्यादा से ज़्यादा रेंज +/-40dB है, लेकिन असल रेंज इससे कम हो सकती है. ऐसा भी हो सकता है कि आउटपुट क्वालिटी में पूरी रेंज में अच्छे नतीजे न मिलें.
fadeInDur नहीं 0 सेकंड ऐसा TimeDesignation जिसमें मीडिया, साइलेंट मोड से मोड करके तय किए गए soundLevel में फ़ेड इन हो जाएगा. अगर मीडिया की अवधि इस वैल्यू से कम है, तो वीडियो खत्म होने पर फ़ेड इन होना बंद हो जाएगा. साथ ही, साउंड का लेवल, तय किए गए साउंड लेवल तक नहीं पहुंचेगा.
fadeOutDur नहीं 0 सेकंड ऐसा TimeDesignation जिसमें मीडिया, विकल्प के तौर पर तय किए गए soundLevel से तब तक फ़ेड आउट हो जाएगा, जब तक यह म्यूट नहीं हो जाता. अगर मीडिया की अवधि इस वैल्यू से कम है, तो साउंड का लेवल कम पर सेट किया जाता है, ताकि यह पक्का किया जा सके कि वीडियो खत्म होने के बाद आवाज़ बंद हो.

समय विवरण

<media> एलिमेंट और मीडिया कंटेनर (<par> और <seq> एलिमेंट) के `begin` और `end` एट्रिब्यूट की वैल्यू के लिए इस्तेमाल किया जाने वाला टाइम स्पेसिफ़िकेशन. यह वैल्यू, ऑफ़सेट वैल्यू (जैसे, +2.5s) या सिंकबेस वैल्यू (जैसे, foo_id.end-250ms) होती है.

  • ऑफ़सेट वैल्यू - टाइम ऑफ़सेट वैल्यू, एक एसएमआईएल टाइमकाउंट-वैल्यू है, जो रेगुलर एक्सप्रेशन से मैच करने वाली वैल्यू को अनुमति देती है: "\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    पहले अंक की स्ट्रिंग दशमलव संख्या का पूरा हिस्सा होती है और दूसरे अंक की स्ट्रिंग दशमलव भिन्नात्मक भाग होती है. डिफ़ॉल्ट चिह्न (जैसे कि "(+|-)?") "+" है. यूनिट की वैल्यू घंटे, मिनट, सेकंड, और मिलीसेकंड के हिसाब से होती हैं. इकाइयों का डिफ़ॉल्ट मान "s" है (सेकंड).

  • सिंकबेस वैल्यू - सिंकबेस वैल्यू एक एसएमआईएल सिंकबेस-वैल्यू होती है, जो रेगुलर एक्सप्रेशन से मेल खाने वाली वैल्यू को अनुमति देती है: "([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    अंकों और इकाइयों की व्याख्या ऑफ़सेट मान की तरह ही की जाती है.

टीटीएस सिम्युलेटर

कार्रवाइयां कंसोल में एक टीटीएस सिम्युलेटर होता है, जिसका इस्तेमाल आप एसएसएमएल की जांच करने के लिए कर सकते हैं ध्यान दें. कंसोल में टीटीएस सिम्युलेटर को ढूंढा जा सकता है सिम्युलेटर > ऑडियो. सिम्युलेटर में अपना टेक्स्ट और एसएसएमएल डालें और क्लिक करें टीटीएस आउटपुट को सुनने के लिए, अपडेट करें और सुनें.

अपने टीटीएस की .mp3 फ़ाइल को सेव करने के लिए, डाउनलोड बटन पर भी क्लिक किया जा सकता है आउटपुट.