La piattaforma Actions on Google supporta una serie di funzionalità SSML beta oltre agli elementi SSML standard Actions on Google.
Riepilogo delle funzionalità beta SSML supportate:
<phoneme>
: personalizza la pronuncia di parole specifiche.<say-as interpret-as="duration">
: specifica le durate.<voice>
: passa da una voce all'altra nella stessa richiesta.<lang>
: utilizza più lingue nella stessa richiesta.- Punti temporali: utilizza il tag
<mark>
per restituire il punto temporale di un punto specificato nella trascrizione.
<phoneme>
Puoi utilizzare il tag <phoneme>
per produrre pronunce personalizzate di parole
in linea. Actions on Google accetta gli alfabeti fonetici
IPA e
X-SAMPA. Visita la pagina dei fonemi per un elenco delle lingue e dei fonemi supportati.
Ogni applicazione del tag <phoneme>
indirizza la pronuncia di una singola parola:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
Indicatori di stress
In una trascrizione possono essere inseriti fino a tre livelli di stress:
- Stress principale: indicato con
ˈ
nell'IPA e"
in X-SAMPA. - Stress secondario: indicato con
ˌ
nell'IPA e con%
in X-SAMPA. - Non stressato: non è indicato con un simbolo (in nessuna delle due notazioni).
Alcune lingue potrebbero avere meno di tre livelli o non indicare del tutto il posizionamento dello stress. Consulta la pagina dei fonemi per vedere i livelli di stress disponibili per la tua lingua. Gli indicatori di stress sono posizionati all'inizio di ogni sillaba stressata. Ad esempio, in inglese americano:
Parola di esempio | IPA | X-SAMPA |
---|---|---|
acqua | ˈwɑːtɚ |
"wA:t@` |
sott'acqua | ˌʌndɚˈwɑːtɚ |
%Vnd@"wA:t@ |
Trascrizioni ampie e strette
Come regola generale, mantieni le trascrizioni più ampie e di natura fonemica.
Ad esempio, in inglese americano trascrivi t
intervocale (anziché usare un tocco):
Parola di esempio | IPA | X-SAMPA |
---|---|---|
burro | ˈbʌtɚ invece di ˈbʌɾɚ |
"bVt@` invece di "bV4@` |
In alcuni casi, l'utilizzo della rappresentazione fonemica rende i risultati di sintesi vocale innaturali (ad esempio, se la sequenza di fonemi è anatomicamente difficile da pronunciare).
Un esempio è la voce dell'assimilazione per s
in inglese. In questo caso l'assimilazione deve riflettersi nella trascrizione:
Parola di esempio | IPA | X-SAMPA |
---|---|---|
gatti | ˈkæts |
"k{ts |
cani | ˈdɑːgz invece di ˈdɑːgs |
"dA:gz invece di "dA:gs |
Riduzione
Ogni sillaba deve contenere una (e una sola) vocale. Ciò significa che evita le consonanti sillabiche e le trascrivi con una vocale ridotta. Ad esempio:
Parola di esempio | IPA | X-SAMPA |
---|---|---|
gattino | ˈkɪtən invece di ˈkɪtn |
"kIt@n invece di "kitn |
Bollitore | ˈkɛtəl invece di ˈkɛtl |
"kEt@l invece di "kEtl |
Sillabificazione
Facoltativamente, puoi specificare i limiti delle sillabe utilizzando .
. Ogni sillaba deve
contenere una (e una sola) vocale. Ad esempio:
Parola di esempio | IPA | X-SAMPA |
---|---|---|
leggibilità | ˌɹiː.də.ˈbɪ.lə.tiː |
%r\i:.d@."bI.l@.ti: |
Durate
La piattaforma Actions on Google supporta <say-as interpret-as="duration">
per leggere correttamente le durate. Ad esempio, il seguente esempio verrebbe verbalizzato come "cinque ore e trenta minuti":
<say-as interpret-as="duration" format="h:m">5:30</say-as>
La stringa di formato supporta i seguenti valori:
Abbreviazione | Valore |
---|---|
h | ore |
m | minuti |
s | secondi |
ms | millisecondi |
<voice>
Il tag <voice>
consente di utilizzare più di una voce in una singola richiesta SSML. Nell'esempio seguente, la voce predefinita è una voce maschile inglese.
Tutte le parole verranno sintetizzate con questa voce, ad eccezione di "qu'est-ce qui t'amène
ici", che verrà verbalizzato in francese usando una voce femminile anziché la
lingua predefinita (inglese) e il genere (maschile).
<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>
In alternativa, puoi utilizzare un tag <voice>
per specificare una singola voce (il nome della voce nella pagina delle voci e delle lingue supportate) anziché specificare language
e/o 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>
Quando utilizzi il tag <voice>
, Actions on Google prevede di ricevere
un name
(il
nome della voce che vuoi
utilizzare) o una combinazione dei seguenti attributi. Tutti e tre gli attributi sono facoltativi, ma devi specificarne almeno uno se non specifichi un valore name
.
gender
: uno tramale
,female
oneutral
.variant
: viene utilizzato come elemento decisivo nei casi in cui ci sono molteplici possibilità di utilizzare la voce in base alla tua configurazione.language
: la lingua desiderata. È possibile specificare una sola lingua in un determinato tag<voice>
. Specifica la tua lingua nel formato BCP-47. Puoi trovare il codice BCP-47 per la tua lingua nella colonna del codice lingua della pagina delle voci e delle lingue supportate.
Puoi anche controllare la priorità relativa di ciascuno degli attributi gender
, variant
e language
utilizzando due tag aggiuntivi: required
e ordering
.
required
: se un attributo è designato comerequired
e non è configurato correttamente, la richiesta non va a buon fine.ordering
: tutti gli attributi elencati dopo un tagordering
sono considerati attributi preferiti anziché obbligatori. SSML prende in considerazione gli attributi preferiti nell'ordine in cui sono elencati dopo il tagordering
. Se alcuni attributi preferiti sono configurati in modo errato, Actions on Google potrebbe comunque restituire una voce valida, ma con la configurazione errata rimossa.
Esempi di configurazioni che utilizzano i tag required
e 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>
Puoi utilizzare <lang>
per includere testo in più lingue all'interno della stessa richiesta SSML. Tutte le lingue verranno sintetizzate con la stessa voce, a meno che non utilizzi il tag <voice>
per cambiare esplicitamente la voce. La stringa xml:lang
deve contenere la lingua di destinazione nel formato BCP-47 (questo valore è indicato come "codice lingua" nella tabella voci supportate). Nell'esempio seguente, la parola "chat" sarà verbalizzata in francese anziché
nella lingua predefinita (inglese):
<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>
La piattaforma Actions on Google supporta il tag <lang>
nel miglior modo possibile. Non tutte le combinazioni di lingue producono gli stessi risultati di qualità se specificate nella stessa richiesta SSML. In alcuni casi, una combinazione di lingue può produrre un effetto
rilevabile ma delicato o percepito come negativo. Problemi noti:
- Il giapponese con caratteri Kanji non è supportato dal tag
<lang>
. L'input viene traslitterato e letto come caratteri cinesi. - Le lingue semitiche come l'arabo, l'ebraico e il persiano non sono supportate dal tag
<lang>
e comporteranno il silenzio. Se vuoi usare una di queste lingue, ti consigliamo di usare il tag<voice>
per passare a una voce che parla la lingua desiderata (se disponibile).