Sygnały SSML

Gdy zwracasz odpowiedź Asystentowi Google, możesz w nich użyć podzbioru języka znaczników Speech Synthesis Markup Language (SSML). Dzięki SSML możesz sprawić, że odpowiedzi w rozmowie będą wyglądały bardziej jak naturalna mowa. Ten przykład przedstawia znaczniki SSML i odpowiadającą mu ścieżkę dźwiękową z Asystenta Google:

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

Dźwięk

Adresy URL w SSML

Jeśli zdefiniujesz odpowiedź SSML zawierającą tylko adres URL, znaki „&” w tym adresie URL mogą powodować problemy z powodu formatowania XML. Aby zapewnić prawidłowe odwołania do adresu URL, zamień wystąpienia & na &amp;.

Nawet jeśli odpowiedź SSML zawiera tylko adres URL, Actions on Google wymaga wyświetlanego tekstu odpowiedzi. Asystent nie odczytuje tekstu zawartego w tagu <audio>, dlatego możesz wstawić w tagu <audio> tekst wypełnienia lub krótki opis, aby spełnić to wymaganie. Tekst w tagu <audio> nie będzie odczytywany przez Asystenta po odtworzeniu dźwięku i spełnia wymagania Action on Google dotyczące wersji tekstowej SSML dla reklam displayowych.

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 przykładzie powyżej nie zmieniamy znaczenia & w celu 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 kolejnych sekcjach 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 kontrolujący wstrzymywanie lub inne prozodyczne granice między słowami. Używanie <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

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

strength

Określa siłę względnej przerwy na dane wyjściowej. Prawidłowe wartości to: „x-weak”, „słaby”, „średni”, „silny” i „x-strong”. Wartość „none” (brak) oznacza, że nie powinna zostać określona granica przerwy w działaniu prozoodycznej, której można użyć, aby zapobiec przerwie prozoodycznej, którą w innym przypadku mógłby uzyskać procesor. Inne wartości wskazują monotonicznie nie malejącą (zwiększającą się koncepcyjnie) siłę podziałów między tokenami. Silniejszym granicom zazwyczaj towarzyszą przerwy.

Przykład

W tym przykładzie pokazujemy, jak użyć elementu <break> do wstrzymania 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 pozwala wskazać informacje o typie konstrukcji tekstu zawartego w elemencie. Pomaga też określić poziom szczegółowości renderowania zawartego w nim tekstu.

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

Przykłady

Atrybut interpret-as może mieć te wartości:

  • currency

    Poniższy przykład brzmi „czterdzieści dwa dolary i jeden grosz”. Jeśli pominiesz atrybut language, 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 funkcji interpret-as='telephone' w artykule dotyczącym wartości atrybutów W3C SSML 1.0.

    Poniższy przykład jest odczytywany jako „jeden osiem zero dwa zero dwa jeden dwa jeden dwa”. Jeśli pominiesz atrybut „google:style”, zamiast tego atrybut „google:style” będzie odczytywany jako litera O.

    Atrybut „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 piszemy literki:

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

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

    Atrybut detail określa wymawianą formę daty. W przypadku funkcji detail='1' wymagane są tylko pola dnia i jedno z pól miesiąca lub roku, choć można podać oba pola. Jest to ustawienie domyślne, jeśli podasz mniej niż wszystkie 3 pola. Forma mówiona to „{ordinal Day} {month} {year}”.

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

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

    Poniższy przykład jest odczytywany jako „Dziesiąca września”:

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

    W przypadku detail='2' wymagane są pola dnia, miesiąca i roku. Jest to wartość domyślna, jeśli podane są wszystkie 3 pola. Mowa w formie to „{month} {ordinal Day}, {year}”.

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

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

    Poniższy przykład jest odczytywany jako „C A N”:

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

    Poniższy przykład jest mówiony jako „Dwanaście tysięcy trzysta czterdzieści pięć” (w przypadku języka angielskiego w Stanach Zjednoczonych) lub „Dwanaście tysięcy trzysta czterdzieści pięć” (w języku angielskim (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

    Poniższy przykład jest odczytywany jako „pół i pół”:

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

    Poniższy przykład wydaje się sygnałem dźwiękowym, jakby został ocenzurowany:

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

    Przekształca jednostki na liczbę pojedynczą lub mnogą w zależności od liczby. Poniższy przykład jest odczytywany jako „3,5 stóp”:

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

    Poniższy przykład jest odczytywany jako „Dwie trzydzieści rano”:

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

    Atrybut format to sekwencja kodów pola czasu. Obsługiwane kody znaków w polu format to: {h,m, s, Z, 12, 24} oznaczający godzinę, minutę (godzinę), sekundę (minutę), strefę czasową, czas 12-godzinny i 24-godzinny. Jeśli kod pola pojawia się raz na godzinę, minutę lub sekundę, oczekiwana liczba cyfr wynosi odpowiednio 1, 2 i 2. Jeśli kod pola się powtarza, spodziewana liczba cyfr to liczba powtórzeń kodu. Pola w tekście godziny mogą być oddzielone znakami interpunkcyjnymi lub spacjami. Jeśli format godziny, minuta lub sekundy nie jest określony w formacie lub nie ma pasujących cyfr, pole jest traktowane jako wartość 0. Domyślna wartość format to „hms12”.

    Atrybut detail określa, czy godzina ma być formatem 12-godzinnym czy 24-godzinnym. Format mówiony to 24 godziny, jeśli detail='1' lub jeśli pominięto detail i format godziny to 24 godziny. Format mówiony to 12 godzin, jeśli detail='2' lub jeśli detail został pominięty i format czasu to 12 godzin.

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

<audio>

Umożliwia wstawianie nagranych plików audio oraz wstawianie innych formatów audio w połączeniu z generowaniem mowy.

Atrybuty

Atrybut Wymagane Domyślne 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 będący przesunięciem względem momentu rozpoczęcia odtwarzania od źródła dźwięku. Jeśli ta wartość jest równa lub dłuższa od rzeczywistego czasu trwania źródła dźwięku, nie zostanie wstawiony żaden dźwięk.
clipEnd nie nieskończoność TimeDesignation, który określa przesunięcie czasu między rozpoczęciem odtwarzania a zakończeniem odtwarzania ze ź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 się zakończy. Jeśli clipBegin ma wartość większą lub równą clipEnd, nie jest wstawiony dźwięk.
speed nie 100% Współczynnik proporcji wyjściowej szybkości odtwarzania w stosunku do normalnej szybkości przesyłania danych wyrażony w procentach. Format to dodatnia liczba rzeczywista, a po niej %. Aktualnie obsługiwany zakres to [50% (wolna – połowa prędkości)], 200% (szybko – podwójna szybkość)]. Wartości spoza tego zakresu można dostosować (lub nie), aby się w nim mieściły.
repeatCount nie 1 lub 10, jeśli ustawiona jest zasada repeatDur Liczba rzeczywista określająca, ile razy wstawić dźwięk (po przycięciu, jeśli ma miejsce, według wartości clipBegin lub clipEnd). Powtórzenia ułamkowe 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 w takim przypadku ma wartość domyślną.
repeatDur nie nieskończoność TimeDesignation, które 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 niż ta wartość, odtwarzanie się zakończy.
soundLevel nie +0dB Dostosuj poziom dźwięku dźwięku o soundLeveldecybele. Maksymalny zakres to +/-40 dB, ale rzeczywisty zakres może być znacznie mniejszy. W całym zakresie jakość danych wyjściowych może nie być zadowalająca.

Oto obecnie 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 Ogg.
    • 24 tys. próbek na sekundę (superszerokopasmowe)
    • 24–96 tys. bitów na sekundę, stała szybkość
  • Format (wycofany): WAV (RIFF)
    • 16-bitowy PCM, mały endian
    • 24 tys. próbek na sekundę
  • Wszystkie formaty:
    • Preferowany jest 1-kanałowy, ale dozwolony jest stereo.
    • Maksymalny czas trwania: 240 sekund. Jeśli chcesz odtwarzać dźwięk dłużej, rozważ implementację odpowiedzi multimedialnych.
    • Maksymalny rozmiar pliku to 5 megabajtów.
    • Źródłowy adres URL musi używać protokołu HTTPS.
    • Nasz klient użytkownika podczas pobierania pliku audio to „Google-Speech-Actions”.

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

Adres URL src musi też mieć postać adresu URL https (Google Cloud Storage może przechowywać pliki audio pod adresem URL HTTPS).

Więcej informacji o odpowiedziach na żądania multimediów znajdziesz w sekcji poświęconej odpowiedziom na multimedia w przewodniku po odpowiedziach.

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 zdań i akapitów;

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żywaj tagów <s>...</s> do zawijania całych zdań, zwłaszcza jeśli zawierają one elementy SSML, które zmieniają prozody (czyli <audio>, <break>, <emphasis>, <par>, <prosody>, <say-as>, <seq> i <sub>).
  • Jeśli przerwa w mowie ma trwać wystarczająco długo, by można ją było usłyszeć, należy użyć tagów <s>...</s> i wstawić je pomiędzy zdaniami.

<sub>

Zaznacz, że tekst w wartości atrybutu aliasu zastępuje zawarty w nim tekst na potrzeby wymowy.

Możesz też użyć elementu sub, aby uprościć wymowę trudnych do odczytania słów. Ostatni przykład poniżej pokazuje 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żna go użyć, aby odwoływać się do określonej lokalizacji w sekwencji lub wstawić znacznik do strumienia wyjściowego na potrzeby powiadomień 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 tonacji, szybkości wypowiedzi i ilości tekstu w elemencie. Obecnie obsługiwane są atrybuty rate, pitch i volume.

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

Atrybut Opis
name

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

Option Opis
Krewny Podaj wartość względną (np. „niska”, „średnia”, „wysoka” itd.), gdzie „średni” to domyślny ton.
Półtony Zwiększ lub zmniejsz ton o N” półtonów, używając odpowiednio „+Nst” lub „-Nst”. Znaki „+/-” i „st” są wymagane.
Procent Zwiększ lub zmniejsz ton o „N” procent, używając odpowiednio „+N%” lub „-N%”. Symbol „%” jest wymagany, ale znak „+/-” jest opcjonalny.

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

Przykład

W tym przykładzie element <prosody> mówi powoli z dwiema półtonami niższym niż zwykle:

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

<emphasis>

Służy do dodawania i usuwania wyróżnienia tekstu zawartego w elemencie. Element <emphasis> modyfikuje mowę podobnie do elementu <prosody>, ale bez konieczności ustawiania poszczególnych atrybutów mowy.

Ten element obsługuje opcjonalny atrybut „level” o tych prawidłowych wartościach:

  • strong
  • moderate
  • none
  • reduced

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

Przykład

W tym przykładzie użyto elementu <emphasis> do opublikowania ogłoszenia:

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

<par>

Równoległy kontener multimediów, który umożliwia jednoczesne odtwarzanie wielu elementów multimedialnych. Jedyna dozwolona treść to zestaw zawierający co najmniej 1 element <par>, <seq> i <media>. Kolejność elementów <media> nie jest istotna.

Jeśli element podrzędny nie określa innego czasu rozpoczęcia, niejawna godzina rozpoczęcia jest taka sama jak w przypadku kontenera <par>. Jeśli element podrzędny ma ustawioną wartość przesunięcia dla atrybutu begin lub end, przesunięcie elementu będzie względem czasu rozpoczęcia kontenera <par>. W przypadku głównego elementu <par> atrybut start jest ignorowany, a czas rozpoczęcia to moment, w którym proces syntezy mowy SSML zaczyna generować dane wyjściowe dla głównego elementu <par> (czyli w efekcie czas „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 pozwala odtwarzać kolejno elementy multimedialne. Jedyna dozwolona treść to zestaw zawierający co najmniej 1 element <seq>, <par> i <media>. Kolejność elementów multimedialnych określa kolejność ich renderowania.

W atrybutach begin i end elementów podrzędnych można ustawić wartości przesunięcia (patrz Specyfikacja czasu poniżej). Wartości przesunięcia tych elementów podrzędnych będą 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 <speak> lub <audio> SSML. W tabeli poniżej opisujemy prawidłowe atrybuty elementu <media>.

Atrybuty

Atrybut Wymagane Domyślne Wartości
xml:id nie brak wartości Unikalny identyfikator XML tego elementu. Zakodowane encje nie są obsługiwane. Dozwolone wartości identyfikatorów są zgodne z wyrażeniem regularnym "([-_#]|\p{L}|\p{D})+". Więcej informacji znajdziesz w sekcji XML-ID.
rozpoczyna się nie 0 Czas rozpoczęcia wyświetlania tego kontenera multimediów. Ignorowany, jeśli jest to główny element kontenera multimediów (traktowany tak samo jak wartość domyślna „0”). Prawidłowe wartości ciągów znajdziesz w sekcji Specyfikacja czasu poniżej.
end nie brak wartości Specyfikacja czasu zakończenia dla tego kontenera multimediów. Prawidłowe wartości ciągów znajdziesz w sekcji Specyfikacja czasu poniżej.
repeatCount nie 1 Liczba rzeczywista określająca, ile razy wstawić multimedia. Powtórzenia ułamkowe 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 w takim przypadku ma wartość domyślną.
repeatDur nie brak wartości Wartość TimeDesignation, która określa limit czasu trwania wstawionych multimediów. Jeśli czas trwania multimediów jest krótszy od tej wartości, odtwarzanie się zakończy.
soundLevel nie +0dB Dostosuj poziom dźwięku dźwięku o soundLevel dB. Maksymalny zakres to +/-40 dB, ale rzeczywisty zakres może być znacznie mniejszy. W całym zakresie jakość danych wyjściowych może nie być zadowalająca.
fadeInDur nie 0 s Atrybut TimeDesignation, w którym multimedia zmieniają się z wyciszenia do opcjonalnie określonego dyrektywy soundLevel. Jeśli czas trwania multimediów jest krótszy niż ta wartość, rozjaśnienie zatrzyma się po zakończeniu odtwarzania, a poziom dźwięku nie osiągnie określonego poziomu.
fadeOutDur nie 0 s Atrybut TimeDesignation, w którym multimedia są wyszarzone z opcjonalnie określonego elementu soundLevel do momentu ich wyciszenia. Jeśli czas trwania multimediów jest krótszy niż ta wartość, poziom dźwięku jest ustawiany na niższą wartość, aby zapewnić, że po zakończeniu odtwarzania zostanie osiągnięta cisza.

Określony czas

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

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

    Pierwszy ciąg to część dziesiętna, a druga to część dziesiętna. Domyślnym znakiem (np. „(+|-)?”) jest „+”. Wartości jednostkowe odpowiadają odpowiednio godzinom, minutom, sekundom i milisekundom. Domyślna wartość jednostek to „s” (sekundy).

  • Wartość synchronizacji – wartość syncbase jest wartością 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 Symulator > Dźwięk. Wpisz w symulatorze tekst i SSML, a potem kliknij Aktualizuj i posłuchaj, aby usłyszeć wynik zamiany tekstu na mowę.

Możesz też kliknąć przycisk pobierania, aby zapisać plik .mp3 z wynikiem zamiany tekstu na mowę.