Uso dell'operazione PutLexicon - Amazon Polly

Uso dell'operazione PutLexicon

Con Amazon Polly puoi utilizzare PutLexicon per archiviare i lessici di pronuncia in una regione AWS specifica per il tuo account. Quindi, puoi specificare uno o più di questi lessici archiviati nella richiesta SynthesizeSpeech da applicare prima che il servizio avvii la sintesi del testo. Per ulteriori informazioni, consulta Gestione dei lessici.

Questa sezione fornisce lessici di esempio e istruzioni dettagliate per archiviarli e testarli.

Nota

Questi lessici devono essere conformi alle specifiche W3C PLS (Pronunciation Lexicon Specification). Per ulteriori informazioni, consulta Pronunciation Lexicon Specification (PLS) Version 1.0 sul sito Web di W3C.

Esempio 1: lessico con un lessema

Considera il seguente lessico conforme allo standard PLS W3C.

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> </lexicon>

Tieni presente quanto segue:

  • I due attributi specificati nell'elemento <lexicon>:

    • L'attributo xml:lang specifica il codice della lingua, en-US, a cui si applica il lessico. Amazon Polly può utilizzare questo lessico di esempio se la voce specificata nella chiamata SynthesizeSpeech ha lo stesso codice della lingua (it-IT).

      Nota

      Puoi utilizzare l'operazione DescribeVoices per trovare il codice della lingua associato a una voce.

       

    • L'attributo alphabet specifica IPA, a indicare che per le pronunce viene utilizzato l'alfabeto fonetico internazionale (IPA, International Phonetic Alphabet). L'IPA è uno degli alfabeti utilizzati per scrivere le pronunce. Amazon Polly supporta anche l'alfabeto X-SAMPA (Extended Speech Assessment Methods Phonetic Alphabet).

       

  • L'elemento <lexeme> descrive la mappatura tra <grapheme> (ovvero una rappresentazione testuale della parola) e <alias>.

Per testare questo lessico, procedi come indicato di seguito.

  1. Salva il lessico con il nome example.pls.

  2. Eseguire il comando put-lexicondi AWS CLI per archiviare il lessico (con il nome w3c), nella regione us-east-2.

    aws polly put-lexicon \ --name w3c \ --content file://example.pls
  3. Esegui il comando synthesize-speech per sintetizzare il testo di esempio in un flusso audio (speech.mp3) e specifica il parametro opzionale lexicon-name.

    aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
  4. Riproduci il file speech.mp3 risultante e nota che la parola W3C nel testo è sostituita da World Wide Web Consortium.

Il lessico di esempio precedente utilizza un alias. L'alfabeto IPA menzionato nel lessico non viene utilizzato. Il lessico seguente specifica una pronuncia fonetica utilizzando l'elemento <phoneme> con l'alfabeto IPA.

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>pecan</grapheme> <phoneme>pɪˈkɑːn</phoneme> </lexeme> </lexicon>

Segui la stessa procedura per testare questo lessico. Assicurati di specificare il testo di input che contiene la parola "noci" (ad esempio "La torta di noci è deliziosa").

Esempio 2: lessico con più lessemi

In questo esempio il lessema specificato nel lessico si applica esclusivamente al testo di input per la sintesi. Considera il lessico seguente:

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> <lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme> <lexeme> <grapheme>Consortium</grapheme> <alias>Community</alias> </lexeme> </lexicon>

Il lessico specifica tre lessemi, due dei quali definiscono un alias per il grafema W3C come indicato di seguito:

  • Il primo elemento <lexeme> definisce un alias (World Wide Web Consortium).

  • Il secondo elemento <lexeme> definisce un alias alternativo (WWW Consortium).

Amazon Polly utilizza la prima sostituzione per ogni grafema in un lessico.

Il terzo elemento <lexeme> definisce un sostituto (Community) per la parola Consortium.

In primo luogo, è opportuno testare questo lessico. Supponi di voler sintetizzare il seguente testo di esempio per un file audio (speech.mp3) e di specificare il lessico in una chiamata a SynthesizeSpeech.

The W3C is a Consortium

SynthesizeSpeechIn primo luogo applica il lessico come segue:

  • Come per il primo lessema, la parola W3C viene sostituita da World Wide Web Consortium. Il testo rivisto viene visualizzato come segue:

    The World Wide Web Consortium is a Consortium
  • L'alias definito nel terzo lessema si applica solo alla parola Consortium che era parte del testo originale, generando il testo seguente:

    The World Wide Web Consortium is a Community.

Puoi eseguire il test utilizzando AWS CLI come indicato di seguito:

  1. Salva il lessico con il nome example.pls.

  2. Esegui il comando put-lexicon per archiviare il lessico con il nome w3c nella regione us-east-2.

    aws polly put-lexicon \ --name w3c \ --content file://example.pls
  3. Esegui il comando list-lexicons per verificare che il lessico w3c sia incluso nell'elenco dei lessici restituito.

    aws polly list-lexicons
  4. Esegui il comando synthesize-speech per sintetizzare il testo di esempio in un file audio (speech.mp3) e specifica il parametro opzionale lexicon-name.

    aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3

  5. Riproduci il file speech.mp3 risultante per verificare che la sintesi vocale rifletta le modifiche al testo.

Esempio 3: specifica di più lessici

In una chiamata a SynthesizeSpeech puoi specificare più lessici. In questo caso, il primo lessico specificato (da sinistra a destra) sostituisce gli eventuali lessici precedenti.

Considera i due lessici seguenti e tieni presente che ogni lessico descrive alias diversi per lo stesso grafema W3C.

  • Lessico 1: w3c.pls

    <?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> </lexicon>
  • Lessico 2: w3cAlternate.pls

    <?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme> </lexicon>

Supponi di archiviare questi lessici con i nomi w3c e w3cAlternate, rispettivamente. Se specifichi i lessici in ordine (w3c seguito da w3cAlternate) in una chiamata SynthesizeSpeech, l'alias per W3C definito nel primo lessico ha la precedenza sul secondo. Per testare i lessici, procedi come indicato di seguito.

  1. Salva i lessici in locale in file denominati w3c.pls e w3cAlternate.pls.

  2. Caricare questi lessici utilizzando il comando put-lexicon di AWS CLI

    • Carica il lessico w3c.pls e memorizzalo con il nome w3c.

      aws polly put-lexicon \ --name w3c \ --content file://w3c.pls
    • Carica il lessico w3cAlternate.pls nel servizio con il nome w3cAlternate.

      aws polly put-lexicon \ --name w3cAlternate \ --content file://w3cAlternate.pls

  3. Esegui il comando synthesize-speech per sintetizzare il testo di esempio in un flusso audio (speech.mp3) e specifica entrambi i lessici utilizzando il parametro lexicon-name.

    aws polly synthesize-speech \ --text 'PLS is a W3C recommendation' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names '["w3c","w3cAlternative"]' \ speech.mp3
  4. Testa il file risultant speech.mp3. che dovrebbe essere simile a quanto riportato di seguito:

    PLS is a World Wide Web Consortium recommendation

Ulteriori esempi di codice per l'API PutLexicon