Riferimento SSML (Speech Synthesis Markup Language) (beta)

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:

  1. Stress principale: indicato con ˈ nell'IPA e " in X-SAMPA.
  2. Stress secondario: indicato con ˌ nell'IPA e con % in X-SAMPA.
  3. 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 tra male, female o neutral.
  • 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 come required e non è configurato correttamente, la richiesta non va a buon fine.
  • ordering: tutti gli attributi elencati dopo un tag ordering sono considerati attributi preferiti anziché obbligatori. SSML prende in considerazione gli attributi preferiti nell'ordine in cui sono elencati dopo il tag ordering. 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).