Platforma Actions on Google obsługuje wiele funkcji SSML w wersji beta, a także standardowe elementy SSML w Actions on Google.
Podsumowanie obsługiwanych funkcji SSML w wersji beta:
<phoneme>
: dostosuj wymowę określonych słów.<say-as interpret-as="duration">
: podaj czasy trwania.<voice>
: przełączanie się między głosami w tej samej prośbie.<lang>
: użyć wielu języków w tym samym żądaniu.- Punkty w czasie: użyj tagu
<mark>
, aby zwrócić punkt w czasie określonego punktu w transkrypcji.
<phoneme>
Tagu <phoneme>
możesz używać do tworzenia niestandardowych wymowy słów w tekście. Actions on Google akceptuje alfabety fonetyczne IPA i X-SAMPA. Lista obsługiwanych języków i fonemy znajdziesz na stronie fonemy.
Każde zastosowanie tagu <phoneme>
kieruje wymową pojedynczego słowa:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
Oznaczenia stresu
Transkrypcja może mieć maksymalnie 3 poziomy stresu:
- Główne naprężenie: oznacza się
ˈ
w IPA i"
w X-SAMPA. - Naprężenie dodatkowe: oznaczone
ˌ
w IPA i%
w X-SAMPA. - Niesprecyzowany: nieoznaczony symbolem (w żadnym z tych zapisów).
Niektóre języki mogą mieć mniej niż 3 poziomy lub w ogóle nie oznaczać pozycji stresu. Wejdź na stronę fonemy, aby sprawdzić poziomy stresu dostępne dla Twojego języka. Znaczniki stresu są umieszczone na początku każdej podkreślonej sylabi. Na przykład w języku angielskim (USA):
Przykładowe słowo | IPA | X-SAMPA |
---|---|---|
za wodę | ˈwɑːtɚ |
"wA:t@` |
pod wodą | ˌʌndɚˈwɑːtɚ |
%Vnd@"wA:t@ |
Szerokie i wąskie transkrypcje
Zasadniczo transkrypcje powinny mieć szerszy i fonetyczny charakter.
Na przykład w języku angielskim (USA) przetranskrybuj interwencję t
(zamiast używać kliknięcia):
Przykładowe słowo | IPA | X-SAMPA |
---|---|---|
masło | ˈbʌtɚ zamiast ˈbʌɾɚ |
"bVt@` zamiast "bV4@` |
W niektórych przypadkach użycie fonetycznego przedstawienia wyników zamiany tekstu na mowę może brzmieć nienaturalnie (np. jeśli sekwencja fonemów jest trudna do wymówienia).
Jednym z przykładów jest asymilacja głosu w języku angielskim: s
. W takim 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 należy unikać sylabicznych spółgłosek i przetranskrybować je z zmniejszoną samogłoską. 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 |
Sylabizacja
Możesz opcjonalnie określić granice sylab, używając elementu .
. Każda sylaba musi zawierać 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 odczytywać czasy trwania. Na przykład ten przykład będzie przedstawiony jako „pięć godzin 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 |
min | minuty |
s | s |
ms | milisekund |
<voice>
Tag <voice>
umożliwia użycie więcej niż 1 głosu w jednym żądaniu SSML. W poniższym przykładzie domyślnym głosem jest angielski męski głos.
W tym głosie zostaną użyte wszystkie słowa, z wyjątkiem „qu'est-ce qui t'amène”, która jest wypowiadana po francusku z użyciem żeńskiego głosu, a nie domyślnego języka (angielskiego) i rodzaju płci (męski).
<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 (nazwę głosu na stronie z obsługiwanymi głosami i językami), zamiast podawać właściwości language
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 na otrzymanie name
(nazwy głosu, której chcesz użyć) lub kombinacji podanych niżej atrybutów. Wszystkie 3 atrybuty są opcjonalne, ale jeśli nie podasz atrybutu name
, musisz podać co najmniej jeden.
gender
: jedna z wartościmale
,female
lubneutral
.variant
: używany jako rozstrzygający w sytuacjach, gdy w zależności od konfiguracji można wybrać różne głosy.language
: wybrany język. W tagu<voice>
można określić tylko 1 język. Podaj język w formacie BCP-47. Kod BCP-47 dla Twojego języka znajdziesz w kolumnie Kod języka na stronie z obsługiwanymi głosami i językami.
Możesz też kontrolować względny priorytet każdego atrybutu gender
, variant
i language
za pomocą 2 dodatkowych tagów: required
i ordering
.
required
: jeśli atrybut jest oznaczony jakorequired
i nie jest poprawnie skonfigurowany, żądanie nie powiedzie się.ordering
: wszystkie atrybuty wymienione po taguordering
są uznawane za atrybuty preferowane, a nie wymagane. SSML sprawdza preferowane atrybuty w kolejności, w jakiej są wymienione po taguordering
. Jeśli preferowane atrybuty są nieprawidłowo skonfigurowane, Actions on Google może zwrócić prawidłowy głos, ale nieprawidłowa konfiguracja zostanie odrzucona.
Przykłady konfiguracji z tagami 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>
Możesz użyć <lang>
, aby uwzględnić tekst w wielu językach w tym samym żądaniu SSML. Głos będzie syntetyzowany we wszystkich językach, chyba że użyjesz tagu <voice>
do jednoznacznej zmiany głosu. Ciąg xml:lang
musi zawierać język docelowy w formacie BCP-47 (ta wartość jest podana jako „kod języka” w tabeli obsługiwanych głosów). W przykładzie poniżej słowo „czat” będzie wypowiadane po francusku, a nie w języku domyślnym (angielskim):
<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>
Platforma Actions on Google obsługuje tag <lang>
z uwzględnieniem najlepszych możliwości. Nie wszystkie kombinacje języków dają takie same wyniki jakości, jeśli zostaną określone w tym samym żądaniu w SSML. W niektórych przypadkach połączenie językowe może przynieść efekt, który 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 chińskie znaki. - Tag
<lang>
nie obsługuje języków półtypowych, np. arabskiego, hebrajskiego i perskiego, przez co jest cisza. Jeśli chcesz używać dowolnego z tych języków, zalecamy użycie tagu<voice>
i przełączenie się na głos, który mówi w wybranym przez Ciebie języku (jeśli jest dostępny).