Dokumentacja Speech Synthesis Markup Language (SSML) (beta)

Platforma Actions on Google obsługuje liczne funkcje SSML w wersji beta, Standardowe elementy SSML Actions on Google.

Podsumowanie obsługiwanych funkcji SSML w wersji beta:

  • <phoneme>: pozwala dostosować wymowę poszczególnych słów.
  • <say-as interpret-as="duration">: określ czasy trwania.
  • <voice>: przełączanie się między głosami w ramach tego samego żądania.
  • <lang>: użyj wielu języków w tej samej prośbie.
  • Punkty czasowe: użyj tagu <mark>, aby zwrócić punkt w czasie o określonej godzinie w transkrypcji.

<phoneme>

Możesz użyć tagu <phoneme>, aby utworzyć niestandardową wymowę słów w tekście. Actions on Google akceptuje IPA oraz X-SAMPA alfabetu fonetycznego. Zobacz stronie z fonemami, gdzie znajdziesz listę obsługiwanych języków i fonetów.

Każde zastosowanie tagu <phoneme> kieruje wymowę pojedynczego elementu słowo:

  <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
  <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>

Znaczniki stresu

W transkrypcji można wyróżnić 3 poziomy stresu:

  1. Główne napięcie: oznaczone jako ˈ w standardzie IPA i " w X-SAMPA.
  2. Naprężenie dodatkowe: oznaczone etykietą ˌ w standardzie IPA i % w X-SAMPA.
  3. Nie zaznacza się: nie jest oznaczony symbolem (w żadnym z notacji).

Niektóre języki mogą mieć mniej niż 3 poziomy lub nie wskazywać miejsca stresu . Zobacz stronę fonetów, aby dowiedzieć się więcej poziomy stresu dostępne w Twoim języku. Znaczniki stresu znajdują się w początku każdej zestresowanej sylab. Na przykład w języku angielskim (USA):

Przykładowe słowo IPA X-SAMPA
woda ˈwɑːtɚ "wA:t@`
pod wodą ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

Szerokie a wąskie transkrypcje

Zasadniczo staraj się, aby transkrypcje były szersze i miały charakter fonetyczny. Na przykład w języku angielskim (USA) utwórz transkrypcję wyrazu „t” (zamiast stosować kliknij):

Przykładowe słowo IPA X-SAMPA
masło ˈbʌtɚ zamiast ˈbʌɾɚ "bVt@` zamiast "bV4@`

W niektórych przypadkach użycie reprezentacji fonetycznej może spowodować, że funkcja zamiany tekstu na mowę wyniki brzmią nienaturalnie (np. jeśli sekwencja fonemu jest anatomicznie trudnej do wymówienia).

Przykładem może być asymilacja mowy dla s w języku angielskim. W tym przypadku asymilacja powinna zostać odzwierciedlona w transkrypcji:

Przykładowe słowo IPA X-SAMPA
koty ˈkæts "k{ts
psy ˈdɑːgz zamiast ˈdɑːgs "dA:gz zamiast "dA:gs

Redukcja

Każda sylaba musi zawierać jedną (i tylko jedną) samogłoskę. Oznacza to, że trzeba unikaj spółgłosek sylabicznych i transkrybuj je z mniejszą liczbą samogłosek. Przykład:

Przykładowe słowo IPA X-SAMPA
kotek ˈkɪtən zamiast ˈkɪtn "kIt@n zamiast "kitn
czajnik ˈkɛtəl zamiast ˈkɛtl "kEt@l zamiast "kEtl

Sylabariusz

Opcjonalnie możesz określić granice sylab za pomocą funkcji .. Każda sylaba musi zawierają jedną (i tylko jedną) samogłoskę. Na przykład:

Przykładowe słowo IPA X-SAMPA
czytelność ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

Czasy trwania

Platforma Actions on Google obsługuje <say-as interpret-as="duration">, aby prawidłowo czas odczytu. Na przykład poniższy przykład miałby postać „pięć” godz. i trzydzieści minut”:

<say-as interpret-as="duration" format="h:m">5:30</say-as>

Ciąg formatu obsługuje te wartości:

Skrót Wartość
godz. godziny
m minuty
s s
ms milisekundy

<voice>

Tag <voice> umożliwia użycie więcej niż 1 głosu w jednym pliku SSML. użytkownika. W tym przykładzie domyślnym głosem jest głos męski angielski. Ten głos będzie zawierał wszystkie słowa z wyjątkiem „qu'est-ce qui t'amène”. ici”, który będzie wypowiadany po francusku „kobiecym głosem” zamiast język domyślny (angielski) i płeć (mężczyzna).

<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui
t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>

Możesz też użyć tagu <voice>, aby wskazać pojedynczy głos (parametr imię i nazwisko na strona obsługiwanych głosów i języków) zamiast określania language i/lub gender:

<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est
mignon</voice><break time="250ms"/> said a pet shop
owner</speak>

Gdy używasz tagu <voice>, Actions on Google oczekuje, że otrzymasz jeden name (parametr imię i nazwisko, których chcesz użyć) lub kombinacji tych atrybutów. Wszystkie trzy Atrybuty są opcjonalne, ale musisz podać co najmniej jeden, jeśli nie podajesz name

  • gender: 1 z male, female lub neutral.
  • variant: służy do dokończenia w przypadku wielu możliwości użycia głosu w zależności od konfiguracji.
  • language: wybrany język. W atrybucie podany tag <voice>. Podaj język w formacie BCP-47. Więcej kod BCP-47 dla Twojego języka w kolumnie kod języka na stronie. stronie z informacjami o obsługiwanych głosach i językach.

Możesz też kontrolować względny priorytet każdego z tych atrybutów: gender, variant, i language z dwoma dodatkowymi tagami: required i ordering.

  • required: jeśli atrybut jest oznaczony jako required i nie został skonfigurowany żądanie nie powiedzie się.
  • ordering: wszystkie atrybuty wymienione po tagu ordering są uznawane za preferowanych atrybutów, a nie wymaganych. SSML uwzględnia preferowane atrybuty w miarę możliwości w kolejności, w jakiej są wymienione za tagiem ordering. Jeśli skonfigurowano jakiekolwiek preferowane atrybuty nieprawidłowo, Actions on Google może nadal zwracać poprawny głos, ale z pominięciem nieprawidłowej konfiguracji.

Przykłady konfiguracji, w których używasz tagów required i ordering:

<speak>And there it was <voice language="en-GB" gender="male" required="gender"
ordering="gender language">a flying bird </voice>roaring in the skies for the
first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female"
ordering="language gender">Sunday Funday.</voice></speak>

<lang>

Aby uwzględnić tekst w wielu językach w tym samym SSML, możesz użyć <lang> użytkownika. Wszystkie języki będą syntetyczne z użyciem tego samego głosu, chyba że użyjesz <voice>, aby wyraźnie zmienić głos. Ciąg xml:lang musi zawierać język docelowy w formacie BCP-47 (ta wartość jest podana jako „kod języka” w obsługiwane głosy ). W poniższym przykładzie „czat” będzie wypowiadana po francusku, a nie domyślny język (angielski):

<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>

Platforma Actions on Google obsługuje tag <lang> w miarę możliwości. Nie wszystkie kombinacje językowe dają takie same wyniki jakościowe, jeśli są określone w tym samym Żądanie SSML. W niektórych przypadkach kombinacja języka może dać efekt: jest wykrywalny, ale subtelny lub postrzegany jako negatywny. Znane problemy:

  • Tag <lang> nie obsługuje języka japońskiego ze znakami kanji. Dane wejściowe są transliterowane i odczytywane jako znaki chińskie.
  • Języki półtyczne, takie jak arabski, hebrajski i perski, nie są obsługiwane przez <lang>, spowoduje to wyciszenie. Jeśli chcesz użyć którejś z tych zalecamy użycie tagu <voice>, aby przejść na głos mówi w wybranym języku (jeśli jest dostępny).