Utilizzo di SSML (AWS CLI) - Amazon Polly

Utilizzo di SSML (AWS CLI)

È possibile utilizzare AWS CLI per eseguire la sintesi dell'input di testo SSML. I seguenti esempi mostrano come eseguire attività comuni utilizzando AWS CLI.

Utilizzo di SSML con il comando di sintesi vocale

Questo esempio illustra come utilizzare il comando synthesize-speech con una stringa SSML. Quando si utilizza il comando synthesize-speech, in genere si fornisce quanto segue:

  • Testo di input (obbligatorio)

  • Tag di apertura e chiusura (obbligatori)

  • Formato di output

  • Voce

In questo esempio, specificare una semplice stringa di testo tra virgolette con i necessari tag di apertura e chiusura <speak></speak>.

Importante

Anche se non utilizzi virgolette nel testo di input nella console di Amazon Polly, utilizzale con AWS CLI. È anche importante distinguere le virgolette nel testo di input e le virgolette necessarie per tag singoli.

Ad esempio, è possibile utilizzare le virgolette standard ('') per racchiudere l'input di testo e le virgolette singole (') per i tag interni o viceversa. Entrambe le opzioni funzionano per Unix, Linux e macOS. Tuttavia, con Windows racchiudere il testo di input tra virgolette standard e utilizzare virgolette singole per i tag.

Per tutti i sistemi operativi, è possibile utilizzare le virgolette standard ('') per racchiudere l'input di testo e le virgolette singole (') per i tag interni o viceversa. Ad esempio:

--text "<speak>Hello <break time='300ms'/> World</speak>"

Per Unix, Linux e macOS, è possibile anche fare l'inverso, ovvero utilizzare le virgolette singole (') per racchiudere l'input di testo e le virgolette standard (") per i tag interni:

--text '<speak>Hello <break time="300ms"/> World</speak>'

L'esempio seguente di AWS CLI è formattato per Unix, Linux e macOS. Per Windows, sostituisci il carattere di continuazione Unix barra rovesciata (\) al termine di ogni riga con un accento circonflesso (^) e usa virgolette (") attorno al testo di input con virgolette singole (') per i tag interni.

aws polly synthesize-speech \ --text-type ssml \ --text '<speak>Hello world</speak>' \ --output-format mp3 \ --voice-id Joanna \ speech.mp3

Per ascoltare la sintesi vocale, riprodurre il file risultante speech.mp3 utilizzando qualsiasi lettore audio.

Sintesi di un documento ottimizzato per SSML

Per più testo di input, è consigliabile salvare i tuoi contenuti SSML in un file e semplicemente specificare il nome di file nel comando synthesize-speech. Ad esempio è possibile salvare quanto segue in un file denominato example.xml:

<?xml version="1.0"?> <speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis11/synthesis.xsd" xml:lang="en-US">Hello World</speak>

L'attributo xml:lang specifica en-US (Inglese - Stati Uniti) come lingua del testo di input. Per informazioni su come la lingua del testo di input e la lingua della voce selezionata influiscono sul funzionamento di SynthesizeSpeech, consultare Migliorare la pronuncia delle parole straniere.

Per eseguire un file ottimizzato per SSML

  1. Salvare SSML in un file, (ad esempio example.xml).

  2. Eseguire il comando synthesize-speech dal percorso dove il file XML è memorizzato e specificare il file SSML come input sostituendo il testo di input con file:\\example.xml. Poiché questo comando punta a un file anziché contenere il testo di input effettivo, non utilizzare le virgolette.

    Nota

    L'esempio seguente di AWS CLI è formattato per Unix, Linux e macOS. Per Windows, sostituisci il carattere di continuazione UNIX barra rovesciata (\) al termine di ogni riga con un accento circonflesso (^).

    aws polly synthesize-speech \ --text-type ssml \ --text file://example.xml \ --output-format mp3 \ --voice-id Joanna \ speech.mp3
  3. Per ascoltare la sintesi vocale, riprodurre il file risultante speech.mp3 utilizzando qualsiasi lettore audio.

Utilizzando SSML per le attività comuni di Amazon Polly

I seguenti esempi mostrano come utilizzare i tag SSML per completare attività comuni di Amazon Polly. Per ulteriori tag SSML, consultare Tag SSML supportati.

Per testare i seguenti esempi, utilizzare il comando seguente synthesize-speech con il testo ottimizzato per SSML appropriato:

L'esempio seguente di AWS CLI è formattato per Unix, Linux e macOS. Per Windows, sostituisci il carattere di continuazione Unix barra rovesciata (\) al termine di ogni riga con un accento circonflesso (^) e usa virgolette (") attorno al testo di input con virgolette singole (') per i tag interni.

aws polly synthesize-speech \ --text-type ssml \ --text '<speak>Hello <break time="300ms"/> World</speak>' \ --output-format mp3 \ --voice-id Joanna \ speech.mp3

Aggiunta di una pausa

Per aggiungere una pausa tra parole, utilizza l'elemento <break>. Il seguente comando SSML synthesize-speech utilizza l'elemento <break> per aggiungere un ritardo di 300 millisecondi tra le parole "Hello" e "World".

<speak> Hello <break time="300ms"/> World. </speak>

Controllo di volume, intonazione e velocità

Per controllare intonazione, velocità e volume del discorso, utilizza l'elemento <prosody>.

  • Il seguente comando di sintesi vocale utilizza l'elemento <prosody> per controllare il volume:

    <speak> <prosody volume="+20dB">Hello world</prosody> </speak>
  • Il seguente comando synthesize-speech utilizza l'elemento <prosody> per controllare l'intonazione:

    <speak> <prosody pitch="x-high">Hello world.</prosody> </speak>
  • Il seguente comando synthesize-speech utilizza l'elemento <prosody> per specificare la velocità della sintesi vocale:

    <speak> <prosody rate="x-fast">Hello world.</prosody> </speak>
  • È possibile specificare più attributi in un elemento <prosody>, come illustrato negli esempi seguenti:

    <speak> <prosody volume="x-loud" pitch="x-high" rate="x-fast">Hello world.</prosody> </speak>

Sussurrare

Per sussurrare parole, utilizzare l'elemento <amazon:effect name="whispered">. Nel seguente esempio, l'elemento <amazon:effect name="whispered"> istruisce Amazon Polly di sussurrare "piccolo agnello":

<speak> Mary has a <amazon:effect name="whispered">little lamb.</amazon:effect> </speak>

Per migliorare questo effetto, utilizza l'elemento <prosody> per rallentare leggermente la sintesi vocale sussurrata.

Enfatizzazione delle parole

Per accentuare una parola o frase, utilizza l'elemento <emphasis>.

<speak> <emphasis level="strong">Hello</emphasis> world how are you? </speak>

Specificazione di come pronunciare certe parole

Per fornire informazioni sul tipo di testo da pronunciare, utilizza l'elemento <say-as>.

Ad esempio, nella seguente SSML, <say-as> indica che il testo 4/6 deve essere interpretato come una data. L'attributo interpret-as="date" format="dm" indica che il testo deve essere pronunciato come una data con il formato mese/giorno.

È anche possibile utilizzare l'elemento <say-as> per indicare a Amazon Polly di pronunciare i numeri come frazioni, numeri di telefono, unità di misura e molto altro.

<speak> Today is <say-as interpret-as="date" format="md" >4/6</say-as> </speak>

La sintesi vocale risultante è "Oggi è il 4 giugno". Il tag <say-as> descrive il modo in cui interpretare il testo, fornendo ulteriore contesto tramite l'attributo interpret-as.

Per verificare l'accuratezza della sintesi vocale, riprodurre il file risultante speech.mp3.

Per ulteriori informazioni su questo elemento, consulta Controllo sulla pronuncia di tipi speciali di parole .

Migliorare la pronuncia delle parole straniere

Amazon Polly presume che il testo di input sia nella stessa lingua parlata dalla voce selezionata. Per migliorare la pronuncia delle parole straniere nel testo di input, nella chiamata synthesize-speech specifica la lingua di destinazione con l'attributo xml:lang. Ciò indica a Amazon Polly di applicare regole di pronuncia diverse per le parole straniere che contrassegni.

I seguenti esempi mostrano come utilizzare diverse combinazioni di linguaggi nel testo di input e su come specificare voci e la pronuncia delle parole straniere. Per un elenco completo delle lingue disponibili, consultare Lingue supportate da Amazon Polly.

In questo esempio, la voce (Joanna) è una voce inglese degli Stati Uniti. Come impostazione predefinita, Amazon Polly presume che il testo di input sia nella stessa lingua della voce (in questo caso, inglese degli Stati Uniti). Quando utilizzi il tag xml:lang, Amazon Polly interpreta il testo come spagnolo e il testo è pronunciato come la voce selezionata pronuncerebbe le parole spagnole, in base alle regole di pronuncia della lingua straniera. Senza questo tag, il testo viene pronunciato utilizzando le regole di pronuncia della voce selezionata.

<speak> That restaurant is terrific. <lang xml:lang="es-ES">Mucho gusto.</lang> </speak>

Poiché la lingua del testo di input è l'inglese, Amazon Polly associa i fonemi spagnoli ai fonemi inglesi più simili. Di conseguenza, Joanna pronuncia il testo come madre lingua degli Stati Uniti che pronuncia le parole correttamente in spagnolo, ma con un accento inglese degli Stati Uniti.

Nota

Alcune lingue sono più simili di altre e quindi alcune combinazioni funzionano meglio di altre.