SSML (Dialogflow)

Zwracając odpowiedź do Asystenta Google, możesz użyć podzbioru Speech Synthesis Markup Language (SSML) w Twoich odpowiedziach. Według przy użyciu SSML, możesz sprawić, że odpowiedzi w rozmowie będą wyglądały bardziej naturalnie. mowa. Poniżej przedstawiamy przykład znaczników SSML i sposób odczytywania ich przez Asystenta Google.

SSML
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>"
              }
            }
          ]
        }
      }
    }
  ]
}

Dźwięk

SSML jest obsługiwany w symulatorze działań, ale nie w Dialogflow symulatora.

Adresy URL w SSML

Gdy definiujesz odpowiedź SSML, która zawiera tylko adres URL, w tym adresie URL znajduje się znak „&” może powodować problemy z powodu formatowania XML. Aby upewnić się, że adres URL jest prawidłowy , zastąp wystąpienia & elementem &amp;.

Nawet jeśli odpowiedź SSML zawiera tylko adres URL, działania w Actions on Google wymagają Wyświetlać tekst odpowiedzi. Tekst w tagu <audio> nie będzie mówionych przez Asystenta, możesz wstawić tekst uzupełniający lub krótki opis <audio> tag, aby spełnić to wymaganie. Tekst w tagu <audio> nie będzie odczytywane przez Asystenta po odtworzeniu dźwięku i wykorzystywane do działania funkcji Action wymagany dla wersji SSML do wyświetlania w formacie tekstowym.

Oto przykład problematycznej odpowiedzi 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>

W powyższym przykładzie nie ma znaczenia & dla prawidłowego formatowania XML.

Poprawiona wersja tej samej odpowiedzi SSML wygląda tak:

<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>

Obsługa elementów SSML

W sekcjach poniżej opisujemy elementy i opcje SSML, których można używać w działaniach.

<speak>

Element główny odpowiedzi SSML.

Więcej informacji o elemencie speak znajdziesz w specyfikacji W3.

Przykład

<speak>
  my SSML content
</speak>
.

<break>

Pusty element, który kontroluje wstrzymywanie lub tworzenie innych granic między słowami. Używanie elementu <break> między dowolną parą tokenów jest opcjonalne. Jeśli ten element nie występuje między słowami, przerwa jest określana automatycznie na podstawie kontekstu językowego.

Więcej informacji o elemencie break znajdziesz w specyfikacji W3.

Atrybuty

Atrybut Opis
time

Ustawia długość przerwy w sekundach lub milisekundach (np. „3 s” lub „250 ms”).

strength

Określa siłę przerw w działaniu danych wyjściowych według haseł względnych. Prawidłowe wartości to: „x-weak”, „słabe”, „medium”, „strong” i „x-strong”. Wartość „none” (brak). wskazuje, że nie powinna zostać wysłana granica przerwania prosodii, co może pomóc w zapobieżeniu przerwa w działaniu, którą w innym przypadku mógłby uzyskać procesor. Pozostałe wartości wskazują monotonicznie niezmniejszającą się (koncepcyjnie zwiększającą się) siłę pęknięć między tokenami. Silniejszym granicom zwykle towarzyszą pauzy.

Przykład

Ten przykład pokazuje, jak używać elementu <break> do wstrzymywania między krokami:

<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>

Ten element umożliwia wskazanie informacji o typie tekstu, który jest w nim zawarty. Pomaga także określić poziom szczegółowości renderowania zawartego tekstu.

Element <say‑as> ma wymagany atrybut interpret-as, który określa sposób odczytywania wartości. W zależności od konkretnej wartości interpret-as mogą być używane opcjonalne atrybuty format i detail.

Przykłady

Atrybut interpret-as obsługuje te wartości:

  • currency

    W następującym przykładzie mówi się „czterdzieści dwa dolary i jeden grosz”. Jeśli pominiesz atrybut język, używany będzie bieżący język.

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

    Zapoznaj się z opisem atrybutu interpret-as='telephone' w notatce WG W3C SSML 1.0 poświęconej wartościom atrybutów.

    Poniższy przykład jest odczytywany jako „jeden osiem zero zero dwa zero dwa jeden dwa jeden dwa”. Jeśli w tagu „google:style” jest pomijany, ma postać 0 jako litery O.

    Opcja „google:style='zero-as-zero'” obecnie działa tylko w języku angielskim.

          <speak>
            <say-as interpret-as='telephone' google:style='zero-as-zero'>1800-202-1212</say-as>
          </speak>
        
  • verbatim lub spell-out

    W tym przykładzie pisze się litera po literze:

    <speak>
      <say-as interpret-as="verbatim">abcdefg</say-as>
    </speak>
        
    .
  • date

    Atrybut format jest sekwencją kodów znaków pól daty. Obsługiwane kody znaków pól w polu format to {y, m, d} odpowiednio dla roku, miesiąca i dnia (dnia miesiąca). Jeśli kod pola pojawia się raz dla roku, miesiąca lub dnia, oczekiwana liczba cyfr to odpowiednio 4, 2 i 2. Jeśli kod pola się powtarza, oczekiwana liczba cyfr to liczba powtórzeń kodu. Pola w tekście daty mogą być rozdzielone spacjami lub znakami interpunkcyjnymi.

    Atrybut detail określa mówioną formę daty. W przypadku elementu detail='1' wymagane są tylko pola dnia oraz jedno pole miesiąca lub roku, choć można podać oba te pola. Jest to ustawienie domyślne, jeśli podano mniej niż wszystkie 3 pola. Używana forma wypowiedzi to „{dzień} {miesiąc}, {rok}.

    Poniższy przykład jest używany jako „Dziesiąty września dziewiętnaście sześćdziesiątego”:

    <speak>
      <say-as interpret-as="date" format="yyyymmdd" detail="1">
        1960-09-10
      </say-as>
    </speak>
        
    .

    Poniższy przykład jest używany jako „Dziesiąty września”:

    <speak>
      <say-as interpret-as="date" format="dm">10-9</say-as>
    </speak>
        
    .

    W przypadku detail='2' pola dnia, miesiąca i roku są wymagane. Jest to wartość domyślna, gdy wypełnione są wszystkie 3 pola. Postać mówiona to „{month} {ordinal Day}, {year}”.

    Poniższy przykład jest używany jako „Dziesiąty września 1960”:

    <speak>
      <say-as interpret-as="date" format="dmy" detail="2">
        10-9-1960
      </say-as>
    </speak>
        
    .
  • characters

    Następujący przykład jest odczytywany jako „C A N”:

    <speak>
      <say-as interpret-as="characters">can</say-as>
    </speak>
        
    .
  • cardinal

    Poniższy przykład jest wypowiadany jako „Dwanaście tysięcy trzysta czterdzieści pięć” (dla języka angielskiego – USA) lub „Dwanaście tysięcy trzysta czterdzieści pięć (dla języka angielskiego – Wielka Brytania)”:

    <speak>
      <say-as interpret-as="cardinal">12345</say-as>
    </speak>
        
    .
  • ordinal

    Poniższy przykład jest odczytywany jako „Pierwszy”:

    <speak>
      <say-as interpret-as="ordinal">1</say-as>
    </speak>
        
    .
  • fraction

    Następujący przykład jest wypowiadany jako „pięć i pół”:

    <speak>
      <say-as interpret-as="fraction">5+1/2</say-as>
    </speak>
        
    .
  • expletive lub bleep

    Następujący przykład jest zasygnalizowany sygnałem dźwiękowym, jakby został ocenzurowany:

    <speak>
      <say-as interpret-as="expletive">censor this</say-as>
    </speak>
        
    .
  • unit

    Konwertuje jednostkę na liczbę pojedynczą lub mnogą w zależności od liczby. Następujący przykład jest odczytywany jako „10 stóp”:

    <speak>
      <say-as interpret-as="unit">10 foot</say-as>
    </speak>
        
    .
  • time

    Poniższy przykład jest odczytywany jako „Dwadzieścia trzydzieści”:

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

    Atrybut format jest sekwencją kodów znaków pól czasu. Obsługiwane kody znaków w polu format to odpowiednio {h,m, s, Z, 12, 24} oznaczające godzinę, minutę (godziny), sekundy (minutę), strefę czasową, 12-godzinny i 24-godzinny format czasu. Jeśli kod pola pojawia się raz na godzinę, minutę lub sekundę, oczekiwana liczba cyfr to odpowiednio 1, 2 i 2. Jeśli kod pola się powtarza, oczekiwana liczba cyfr to liczba powtórzeń kodu. Pola w tekście godziny mogą być rozdzielone spacjami lub znakami interpunkcyjnymi. Jeśli w formacie nie określono godziny, minuty lub sekundy albo nie ma pasujących cyfr, pole jest traktowane jako wartość zerowa. Wartość domyślna pola format to „hms12”.

    Atrybut detail określa, czy godzina ma być w formacie 12-godzinnym czy 24-godzinnym. Format mówiony to 24-godzinny, jeśli wartość detail='1' lub detail pominięto, a format godziny to 24-godzinny. Format mówiony to 12-godzinny, jeśli właściwość detail='2' lub detail pominięto, a format godziny to 12-godzinny.

Więcej informacji o elemencie say-as znajdziesz w specyfikacji W3.

<audio>

Obsługuje wstawianie nagranych plików audio oraz innych formatów audio w połączeniu z syntezatorem mowy.

Atrybuty

Atrybut Wymagane Domyślny Wartości
src tak nie dotyczy Identyfikator URI odnoszący się do źródła multimediów audio. Obsługiwany protokół to https.
clipBegin nie 0 TimeDesignation, czyli przesunięcie od początku odtwarzania źródła dźwięku. Jeśli ta wartość jest większa lub równa rzeczywistemu czasowi trwania źródła dźwięku, dźwięk nie zostanie wstawiony.
clipEnd nie nieskończoność Wartość TimeDesignation określa przesunięcie od momentu rozpoczęcia do zakończenia odtwarzania źródła dźwięku. Jeśli rzeczywisty czas trwania źródła dźwięku jest krótszy od tej wartości, odtwarzanie kończy się o tej godzinie. Jeśli clipBegin ma wartość większą lub równą clipEnd, dźwięk nie zostanie wstawiony.
speed nie 100% Współczynnik wyjściowej szybkości odtwarzania w stosunku do normalnej szybkości wejściowej wyrażonej w procentach. Format to dodatni liczba rzeczywista, po której następuje znak %. Obecnie obsługiwany zakres to [50% (wolna - połowa prędkości), 200% (szybka – podwójna prędkość)]. Wartości spoza tego zakresu mogą (lub nie) zostać dostosowane, aby mieściły się w nim.
repeatCount nie 1 lub 10, jeśli ustawiono repeatDur Liczba rzeczywista określająca, ile razy dźwięk ma zostać wstawiony (po przycięciu, jeśli występuje, przez clipBegin lub clipEnd). Ułamkowe powtórzenia nie są obsługiwane, więc wartość zostanie zaokrąglona do najbliższej liczby całkowitej. 0 nie jest prawidłową wartością i dlatego jest traktowane jako nieokreślone i ma w tym przypadku wartość domyślną.
repeatDur nie nieskończoność TimeDesignation, który określa limit czasu trwania wstawionego dźwięku po przetworzeniu źródła dla atrybutów clipBegin, clipEnd, repeatCount i speed (zamiast normalnego czasu odtwarzania). Jeśli czas trwania przetworzonego dźwięku jest krótszy od tej wartości, odtwarzanie się zakończy.
soundLevel nie +0dB Dostosuj poziom dźwięku dźwięku soundLevelw decybelach. Maksymalny zakres to +/-40 dB, ale rzeczywisty zakres może być mniejszy, a jakość wyjścia może nie dawać dobrych wyników w całym zakresie.

Oto aktualnie obsługiwane ustawienia dźwięku:

  • Format: MP3 (MPEG v2)
    • 24 tys. próbek na sekundę
    • 24 KB ~ 96 tys. bitów na sekundę, stała szybkość
  • Format: opus w formacie Ogg
    • 24 tys. próbek na sekundę (superszerokopasmowe)
    • 24 tys.–96 tys. bitów na sekundę, stała szybkość
  • Format (wycofany): WAV (RIFF)
    • PCM 16-bitowy ze znakiem, little endian
    • 24 tys. próbek na sekundę
  • Wszystkie formaty:
    • Preferowane są kanały jednokanałowe, ale dźwięk stereo jest dozwolony.
    • Maksymalny czas trwania to 240 sekund. Jeśli chcesz odtwarzać dźwięk przez dłuższy czas, rozważ wdrożenie reakcji na multimedia.
    • Limit rozmiaru pliku to 5 megabajtów.
    • Źródłowy adres URL musi używać protokołu HTTPS.
    • Nasz klient użytkownika podczas pobierania danych dźwiękowych to „Google-Speech-Actions”.

Zawartość elementu <audio> jest opcjonalna i używana, jeśli nie można odtworzyć pliku audio lub gdy urządzenie wyjściowe nie obsługuje dźwięku. Treść może zawierać element <desc>. Oznacza to, że do wyświetlenia jest wykorzystywana zawartość tekstowa tego elementu. Więcej informacji znajdziesz w sekcji „Nagrany dźwięk” na liście kontrolnej odpowiedzi.

Adres URL src musi też być adresem https (Twoje pliki audio mogą być przechowywane w Google Cloud Storage pod adresem URL https).

Więcej informacji o odpowiedziach w mediach znajdziesz w sekcji dotyczącej odpowiedzi w mediach w przewodniku dotyczącym odpowiedzi.

Więcej informacji o elemencie audio znajdziesz w specyfikacji W3.

Przykład

<speak>
  <audio src="cat_purr_close.ogg">
    <desc>a cat purring</desc>
    PURR (sound didn't load)
  </audio>
</speak>
.

<p>,<s>

Elementy zdania i akapitu.

Więcej informacji o elementach p i s znajdziesz w specyfikacji W3.

Przykład

<p><s>This is sentence one.</s><s>This is sentence two.</s></p>
.

Sprawdzone metody

  • Użyj tagu <s>...</s> zawijaj całe zdania, zwłaszcza jeśli zawierają elementy SSML, które zmieniają prozodię (czyli <audio>, <break>, <emphasis>, <par>, <prosody>, <say-as>, <seq> i <sub>).
  • Jeśli przerwa w mowie ma być wystarczająco długa, żeby można było ją usłyszeć, użyj funkcji <s>...</s> i umieścić ten podział między zdania.

<sub>

Wskaż, że tekst w wartości atrybutu alias zastępuje zawarty w niej tekst wymowy.

Możesz też użyć elementu sub, aby uprościć wymowę trudnych do odczytania słów. Ostatni przykład poniżej przedstawia ten przypadek użycia w języku japońskim.

Więcej informacji o elemencie sub znajdziesz w specyfikacji W3.

Przykłady

<sub alias="World Wide Web Consortium">W3C</sub>
.
<sub alias="にっぽんばし">日本橋</sub>
.

<mark>

Pusty element, który umieszcza znacznik w tekście lub sekwencji tagów. Może służyć jako odwołanie do określona lokalizacja w sekwencji lub wstawienie znacznika do strumienia wyjściowego, dla powiadomienia asynchronicznego.

. .

Więcej informacji o elemencie mark znajdziesz w specyfikacji W3.

Przykład

<speak>
Go from <mark name="here"/> here, to <mark name="there"/> there!
</speak>

.

<prosody>

Służy do dostosowania wysokości, tempa wypowiedzi i objętości tekstu zawartego w elemencie. Obecnie obsługiwane są atrybuty rate, pitch oraz volume.

Atrybuty rate i volume można ustawić zgodnie ze specyfikacją W3. Wartość atrybutu pitch możesz ustawić na 3 sposoby:

Atrybut Opis
name

Identyfikator ciągu znaków dla każdego znaku.

Opcja Opis
Krewny Podaj wartość względną (np. „niska”, „średnia”, „wysoka” itp.), gdzie „średnia” to domyślny ton.
Półtony Zwiększ lub zmniejsz tonację o „N” półton z użyciem „+Nst” lub „-Nst” . Zapis „+/-” i „st” są wymagane.
Procent Zwiększ lub zmniejsz tonację o „N” procent, stosując „+N%” lub „-N%” . Pamiętaj, że „%” jest wymagany, ale „+/-” jest opcjonalna.

Więcej informacji o elemencie prosody znajdziesz w specyfikacji W3.

Przykład

W tym przykładzie użyto elementu <prosody>, aby mówić wolniej w 2 półtonach niższych niż zwykle:

<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>
.

<emphasis>

Służy do dodawania lub usuwania podkreślenia tekstu w elemencie. Element <emphasis> modyfikuje mowę podobnie jak <prosody>, ale nie ma potrzeby ustawiania poszczególnych atrybutów mowy.

Ten element obsługuje opcjonalny „poziom” o następujących prawidłowych wartościach:

  • strong
  • moderate
  • none
  • reduced

Więcej informacji o elemencie emphasis znajdziesz w specyfikacji W3.

Przykład

Ten przykładowy kod pozwala opublikować ogłoszenie za pomocą elementu <emphasis>:

<emphasis level="moderate">This is an important announcement</emphasis>
.

<par>

Równoległy kontener multimediów, który umożliwia odtwarzanie wielu elementów multimedialnych jednocześnie. Jedyną dozwoloną treścią jest zestaw co najmniej 1 elementu <par>, <seq> i <media>. Kolejność elementów <media> nie jest istotna.

O ile element podrzędny nie określa innego czasu rozpoczęcia, niejawny czas rozpoczęcia elementu jest taki sam jak w kontenerze <par>. Jeśli element podrzędny ma wartość przesunięcia dla atrybutu begin lub end, przesunięcie elementu będzie określone względem czasu rozpoczęcia kontenera <par>. W przypadku głównego elementu <par> atrybut początkowy jest ignorowany, a godziną rozpoczęcia jest moment, w którym proces syntezy mowy SSML rozpoczyna generowanie danych wyjściowych dla głównego elementu <par> (czyli w efekcie otrzymuje wartość „zero”).

Przykład

<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>

Sekwencyjny kontener multimediów, który umożliwia odtwarzanie elementów multimedialnych jeden po drugim. Jedyną dozwoloną treścią jest zestaw co najmniej 1 elementu <seq>, <par> i <media>. Kolejność elementów multimedialnych to kolejność ich renderowania.

W atrybutach begin i end elementów podrzędnych można ustawić wartości przesunięcia (patrz Specyfikacja czasu poniżej). Te elementy podrzędne wartości przesunięcia będą określone względem końca poprzedniego elementu w sekwencji lub, w przypadku pierwszego elementu w sekwencji, względem początku jego kontenera <seq>.

Przykład

<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>

Reprezentuje warstwę multimediów w elemencie <par> lub <seq>. Dozwolona zawartość elementu <media> to element SSML <speak> lub <audio>. W tabeli poniżej znajdziesz opisy prawidłowych atrybutów elementu <media>.

Atrybuty

Atrybut Wymagane Domyślny Wartości
xml:id nie brak wartości Unikalny identyfikator XML tego elementu. Encje zakodowane nie są obsługiwane. Dozwolone wartości identyfikatorów pasują do wyrażenia regularnego "([-_#]|\p{L}|\p{D})+". Więcej informacji znajdziesz w sekcji XML-ID.
początek nie 0 Czas rozpoczęcia tego kontenera multimediów. Ignorowana, jeśli jest to główny element kontenera multimediów (traktowany tak samo jak wartość domyślną, czyli „0”). Prawidłowe wartości ciągów znaków znajdziesz w sekcji Specyfikacja czasu poniżej.
end nie brak wartości Specyfikacja czasu zakończenia tego kontenera multimediów. Prawidłowe wartości ciągów znaków znajdziesz w sekcji Specyfikacja czasu poniżej.
repeatCount nie 1 Liczba rzeczywista, która określa, ile razy trzeba wstawić multimedia. Ułamkowe powtórzenia nie są obsługiwane, więc wartość zostanie zaokrąglona do najbliższej liczby całkowitej. 0 nie jest prawidłową wartością i dlatego jest traktowane jako nieokreślone i ma w tym przypadku wartość domyślną.
repeatDur nie brak wartości TimeDesignation, który określa limit czasu trwania wstawionych multimediów. Jeśli czas trwania multimediów jest krótszy od tej wartości, odtwarzanie kończy się w tym momencie.
soundLevel nie +0dB Dostosuj poziom dźwięku dźwięku o soundLevel decybele. Maksymalny zakres to +/-40 dB, ale rzeczywisty zakres może być mniejszy, a jakość wyjścia może nie dawać dobrych wyników w całym zakresie.
fadeInDur nie 0 s Ustawienie TimeDesignation, po którym multimedia zmieniają się z wyciszenia do opcjonalnie określonego soundLevel. Jeśli czas trwania multimediów będzie krótszy niż ta wartość, po zakończeniu odtwarzania wyciszanie zostanie zatrzymane, a poziom dźwięku nie osiągnie określonego poziomu.
fadeOutDur nie 0 s Pole TimeDesignation, w którym multimedia mają zanikać z określonego opcjonalnie soundLevel, aż do momentu wyciszenia. Jeśli czas trwania multimediów jest krótszy niż ta wartość, poziom dźwięku jest ustawiany na niższą, tak aby na końcu odtwarzania została osiągnięta cisza.

Określenie czasu

Specyfikacja czasu używana dla wartości atrybutów „begin” i „end” elementów <media> i kontenerów multimediów (elementów <par> i <seq>) jest wartością przesunięcia (np. +2.5s) lub wartością synchronizacji bazy danych (np. foo_id.end-250ms).

  • Wartość przesunięcia – wartość przesunięcia czasu to wartość czasu SMIL, która dopuszcza wartości pasujące do wyrażenia regularnego: "\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    Pierwszy ciąg cyfr to część liczby dziesiętnej, a drugi to ułamek dziesiętny. Domyślny znak (np. „(+|-)?”) to „+”. Wartości jednostek odpowiadają godzinom, minutom, sekundom i milisekundom. Wartość domyślna jednostek to „s”. (sekundy).

  • Syncbase value – wartość syncbase to wartość parametru syncbase SMIL, która zezwala na wartości pasujące do wyrażenia regularnego: "([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    Cyfry i jednostki są interpretowane w taki sam sposób jak wartość przesunięcia.

Symulator zamiany tekstu na mowę

Konsola Actions zawiera symulator zamiany tekstu na mowę, którego możesz używać do testowania SSML. z dowolnymi z powyższych elementów. Symulator zamiany tekstu na mowę znajdziesz w konsoli w sekcji Simulator > Audio. Wpisz tekst i SSML w symulatorze, a następnie kliknij Zaktualizuj i słuchaj, aby usłyszeć sygnał zamiany tekstu na mowę.

Możesz też kliknąć przycisk pobierania, aby zapisać plik .mp3 TTS. dane wyjściowe.