

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Carga de un lexicón
<a name="managing-lexicons-console-upload"></a>

Los lexicones que use deben ajustarse a la recomendación de W3C sobre Pronunciation Lexicon Specification (PLS, Especificación de lexicones de pronunciación). Para obtener más información, consulte [Pronunciation Lexicon Specification (PLS) versión 1.0](https://www.w3.org/TR/pronunciation-lexicon/#S4.7) en el sitio web de W3C.

------
#### [ Console - Lexicons tab ]

Para utilizar un lexicón de pronunciación, primero debe cargarlo. Hay dos ubicaciones en la consola desde las que se puede cargar un lexicón, la pestaña **Text-to-Speech** y la pestaña **Lexicons**.

En los procesos siguientes se explica cómo agregar lexicones que puede utilizar para personalizar el modo en que las palabras y las frases poco comunes se pronuncian en el idioma elegido. <a name="upload-lexicon-lexicons-tab"></a>

**Para agregar un lexicón desde la pestaña Lexicons**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Polly en [https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/).

1. Elija la pestaña **Lexicons**.

1. Seleccione **Cargar lexicón**.

1. Proporcione un nombre para el lexicón y, a continuación, utilice **Elija un archivo de lexicón** para buscar el lexicón que desea cargar. Solo puede cargar archivos PLS con las extensiones .pls o .xml.

1. Seleccione **Cargar lexicón**. Si ya existe un lexicón con el mismo nombre (ya sea un archivo .pls o un archivo .xml), al cargar el lexicón, se remplazará el lexicón existente.

------
#### [ Console - TTS tab ]<a name="upload-lexicon-tts-tab"></a>

**Cómo agregar un lexicón desde la pestaña Text-to-Speech (texto a voz)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Polly en [https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/).

1. Elija la pestaña **Text-to-Speech**.

1. Amplíe **Configuración adicional**, active **Personalizar pronunciación** y, a continuación, seleccione **Cargar lexicón**.

1. Proporcione un nombre para el lexicón y, a continuación, utilice **Elija un archivo de lexicón** para buscar el lexicón que desea cargar. Solo puede emplear archivos PLS que utilicen las extensiones .pls y.xml. 

1. Seleccione **Cargar lexicón**. Si ya existe un lexicón con el mismo nombre (ya sea un archivo .pls o un archivo .xml), al cargar el lexicón, se remplazará el lexicón existente.

------
#### [ AWS CLI - one lexeme ]

Con Amazon Polly, puede utilizar [PutLexicon](API_PutLexicon.md) para almacenar lexicones de pronunciación en una región de AWS específica de su cuenta. A continuación, podrá especificar uno o varios de los lexicones almacenados en la solicitud [SynthesizeSpeech](API_SynthesizeSpeech.md) que desee aplicar antes de que el servicio comience a sintetizar el texto. Para obtener más información, consulte [Administración de lexicones](managing-lexicons.md).

Supongamos que tiene el siguiente lexicón, que se ajusta a la recomendación PLS de 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>
```

Tenga en cuenta lo siguiente:
+ Los dos atributos especificados en el elemento `<lexicon>`:
  + El atributo `xml:lang` especifica el código de idioma, `en-US`, al que se va a aplicar el lexicón. Amazon Polly puede utilizar este lexicón de ejemplo si la voz que se especifica en la llamada a `SynthesizeSpeech` tiene el mismo código de idioma (en-US). 
**nota**  
Puede utilizar la operación `DescribeVoices` para buscar el código de idioma asociado a una voz.

     
  + El atributo `alphabet` está establecido en `IPA`, lo que significa que se va a utilizar el Alfabeto Fonético Internacional (IPA, por sus siglas en inglés) para especificar la pronunciación. IPA es uno de los alfabetos disponibles para escribir las pronunciaciones. Amazon Polly también admite el Alfabeto Fonético Extendido SAM (X-SAMPA, por sus siglas en inglés).

     
+ El elemento `<lexeme>` describe la correspondencia entre `<grapheme>` (es decir, la representación gráfica textual de la palabra) y `<alias>`. 

Para probar este lexicón, haga lo siguiente:

1. Guarde el lexicón como `example.pls`.

1. Ejecute el comando `put-lexicon` de AWS CLI para guardar el lexicón (con el nombre `w3c`) en la región us-east-2.

   ```
   aws polly put-lexicon \
   --name w3c \
   --content file://example.pls
   ```

1. Ejecute el comando `synthesize-speech` para sintetizar el texto de ejemplo en una secuencia de audio (`speech.mp3`) y especifique el parámetro opcional `lexicon-name`. 

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

1. Reproduzca el archivo `speech.mp3` resultante y observe que la palabra W3C del texto se ha sustituido por World Wide Web Consortium.

En el lexicón del ejemplo anterior se utiliza un alias. El alfabeto IPA mencionado en el lexicón no se utiliza. El lexicón siguiente especifica una pronunciación fonética que utiliza el elemento `<phoneme>` con el 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>
```

Siga los mismos pasos para probar este lexicón. No olvide especificar un texto de entrada que tenga la palabra “pecan”; por ejemplo, “Pecan pie is delicious” ("La tarta de nueces está deliciosa").

Consulte los siguientes recursos para obtener muestras de código adicionales para la operación de la API PutLexicon:
+ Muestra de Java: [PutLexicon](PutLexiconSample.md)
+ Muestra de Python (Boto3): [PutLexicon](PutLexiconSamplePython.md)

------
#### [ AWS CLI - multiple lexemes ]

Con Amazon Polly, puede utilizar [PutLexicon](API_PutLexicon.md) para almacenar lexicones de pronunciación en una región de AWS específica de su cuenta. A continuación, podrá especificar uno o varios de los lexicones almacenados en la solicitud [SynthesizeSpeech](API_SynthesizeSpeech.md) que desee aplicar antes de que el servicio comience a sintetizar el texto. Para obtener más información, consulte [Administración de lexicones](managing-lexicons.md).

En este ejemplo, el lexema especificado en el lexicón se aplica exclusivamente al texto de entrada del proceso de síntesis. Pongamos como ejemplo el siguiente lexicón: 

```
<?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>
```

El lexicón especifica tres lexemas, dos de los cuales definen un alias para el grafema W3C, tal y como se indica a continuación:
+ El primer elemento `<lexeme`> define un alias (World Wide Web Consortium).
+ El segundo elemento `<lexeme>` define un alias alternativo (WWW Consortium). 

Amazon Polly utiliza la primera palabra de sustitución con cualquier grafema del lexicón.

El tercer elemento `<lexeme>` establece una palabra sustituta (Community) para "Consortium".

En primer lugar, vamos a probar este lexicón. Supongamos que desea sintetizar el siguiente texto de ejemplo en un archivo de audio (`speech.mp3`) y que especifica el lexicón en una llamada a `SynthesizeSpeech`.

```
The W3C is a Consortium
```

`SynthesizeSpeech` se aplica al lexicón de la forma siguiente: 
+ De acuerdo con el primer lexema, la palabra W3C se modifica a World Wide Web Consortium. El texto revisado sería el siguiente:

  ```
  The World Wide Web Consortium is a Consortium
  ```
+ El alias definido en el tercer lexema solamente se aplica a la palabra Consortium que formaba parte del texto original, por lo que se obtiene el siguiente texto:

  ```
  The World Wide Web Consortium is a Community.
  ```

Puede comprobarlo utilizando AWS CLI del modo siguiente:

1. Guarde el lexicón como `example.pls`.

1. Ejecute el comando `put-lexicon` para guardar el lexicón con el nombre w3c en la región us-east-2.

   ```
   aws polly put-lexicon \
   --name w3c \
   --content file://example.pls
   ```

1. Ejecute el comando `list-lexicons` para comprobar que el lexicón w3c está en la lista de lexicones devuelta.

   ```
   aws polly list-lexicons
   ```

1. Ejecute el comando `synthesize-speech` para sintetizar el texto de ejemplo en un archivo de audio (`speech.mp3`) y especifique el parámetro opcional `lexicon-name`. 

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

1. Reproduzca el archivo `speech.mp3` resultante para comprobar que la síntesis del fragmento hablado refleja los cambios del texto.

Consulte los siguientes recursos para obtener muestras de código adicionales para la operación de la API PutLexicon:
+ Muestra de Java: [PutLexicon](PutLexiconSample.md)
+ Muestra de Python (Boto3): [PutLexicon](PutLexiconSamplePython.md)

------