

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.

# Ejemplo de síntesis de voz con Amazon Polly
<a name="synthesize-example"></a>

En esta página se presenta un breve ejemplo de síntesis de voz realizada en la consola, la AWS CLI y con Python. En este ejemplo se realiza la síntesis de voz a partir de texto sin formato, no de SSML.

------
#### [ Console ]

**Síntesis de la voz en la consola**

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**. El campo de texto se cargará con texto de ejemplo para que pueda probar Amazon Polly rápidamente.

1. Desactive **SSML**.

1. Escriba o pegue el texto en el cuadro de entrada.

   ```
   He was caught up in the game. In the middle of the 10/3/2014 W3C meeting he shouted, "Score!" quite loudly.
   ```

1. En **Motor**, elija **Generativo**, **Forma larga**, **Neural** o **Estándar**.

1. Seleccione un idioma y una región AWS; a continuación, elija una voz. (Si selecciona **Neural** en **Motor**, solo estarán disponibles los idiomas y las voces compatibles con NTTS. Todas las voces de formato largo y estándar están desactivadas).

1. Si desea escuchar el fragmento hablado inmediatamente, elija **Escuchar**.

1. Para guardar el fragmento hablado en un archivo, realice una de las operaciones siguientes:

   1. Elija **Descargar**.

   1. Para cambiar a un formato de archivo diferente, expanda **Configuración adicional**, active la **Configuración del formato del archivo de locución**, elija el formato de archivo que desee y, a continuación, elija **Descargar**. 

------
#### [ AWS CLI ]

En este ejercicio, va a llamar a la operación `SynthesizeSpeech` para pasar el texto de entrada. Puede guardar el audio resultante como un archivo y comprobar su contenido.

1. Ejecute el comando `synthesize-speech` de la AWS CLI para sintetizar el texto de muestra en un archivo de audio (`hello.mp3`). 

   El ejemplo de AWS CLI siguiente tiene formato para Unix, Linux y macOS. En Windows, sustituya la barra invertida (\$1) del carácter de continuación de Unix al final de cada línea por un signo de intercalación (^) y utilice comillas completas (") alrededor del texto introducido con comillas simples (') para las etiquetas interiores.

   ```
   aws polly synthesize-speech \
       --output-format mp3 \
       --voice-id Joanna \
       --text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' \
       hello.mp3
   ```

   En la llamada a `synthesize-speech`, debe proporcionar un texto de muestra para que lo sintetice la voz que elija. Debe proporcionar un identificador de voz (que se explica en el paso siguiente) y un formato de salida. El comando guarda el audio resultante en el archivo `hello.mp3`. Además del archivo MP3, la operación envía el el resultado siguiente a la consola. 

   ```
   {
           "ContentType": "audio/mpeg", 
           "RequestCharacters": "71"
   }
   ```

1. Reproduzca el archivo `hello.mp3` resultante para comprobar la síntesis de voz. 

------
#### [ Python ]

Para probar el código de ejemplo de Python, necesita AWS SDK para Python (Boto). Para obtener instrucciones, consulte [AWS SDK para Python (Boto3)](https://aws.amazon.com/sdk-for-python/). 

En este ejemplo de código Python se realizan las siguientes acciones:
+ Invoca AWS SDK para Python (Boto) para enviar una solicitud `SynthesizeSpeech` a Amazon Polly (se proporciona un texto de entrada). 
+ Obtiene acceso a la secuencia de audio resultante de la respuesta y la guarda en un archivo (`speech.mp3`) en el disco local. 
+ Reproduce el archivo de audio con el reproductor predeterminado del sistema local. 

Guarde el código en un archivo (example.py) y ejecútelo.

```
"""Getting Started Example for Python 2.7+/3.3+"""
from boto3 import Session
from botocore.exceptions import BotoCoreError, ClientError
from contextlib import closing
import os
import sys
import subprocess
from tempfile import gettempdir

# Create a client using the credentials and region defined in the [adminuser]
# section of the AWS credentials file (~/.aws/credentials).
session = Session(profile_name="adminuser")
polly = session.client("polly")

try:
    # Request speech synthesis
    response = polly.synthesize_speech(Text="Hello world!", OutputFormat="mp3",
                                        VoiceId="Joanna")
except (BotoCoreError, ClientError) as error:
    # The service returned an error, exit gracefully
    print(error)
    sys.exit(-1)

# Access the audio stream from the response
if "AudioStream" in response:
    # Note: Closing the stream is important because the service throttles on the
    # number of parallel connections. Here we are using contextlib.closing to
    # ensure the close method of the stream object will be called automatically
    # at the end of the with statement's scope.
        with closing(response["AudioStream"]) as stream:
           output = os.path.join(gettempdir(), "speech.mp3")

           try:
            # Open a file for writing the output as a binary stream
                with open(output, "wb") as file:
                   file.write(stream.read())
           except IOError as error:
              # Could not write to file, exit gracefully
              print(error)
              sys.exit(-1)

else:
    # The response didn't contain audio data, exit gracefully
    print("Could not stream audio")
    sys.exit(-1)

# Play the audio using the platform's default player
if sys.platform == "win32":
    os.startfile(output)
else:
    # The following works on macOS and Linux. (Darwin = mac, xdg-open = linux).
    opener = "open" if sys.platform == "darwin" else "xdg-open"
    subprocess.call([opener, output])
```

------

Para obtener ejemplos más detallados, consulte los siguientes temas:
+ [Uso de SSML en la consola](ssml-to-speech-console.md) 
+ [Aplicación de lexicones (síntesis del habla)](managing-lexicons-console-synthesize-speech.md) 
+ [Aplicaciones y código de muestra para Amazon Polly](samples-and-examples.md) 