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. W tym przykładzie widać znaczniki SSML i odpowiadającą im ścieżkę audio z Asystent 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
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 &
.
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&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
lubspell-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 poluformat
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 elementudetail='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
lubbleep
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 poluformat
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 polaformat
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'
lubdetail
pominięto, a format godziny to 24-godzinny. Format mówiony to 12-godzinny, jeśli właściwośćdetail='2'
lubdetail
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 soundLevel w 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.