

 La [Guía de referencia de la API de AWS SDK for JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript. 

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.

# Ejemplos de Amazon Polly
<a name="polly-examples"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/es_es/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Este ejemplo de código de Node.js muestra:**
+ Cargue el audio grabado con Amazon Polly a Amazon S3

## El escenario
<a name="polly-example-synthesize-to-s3-scenario"></a>

En este ejemplo, se utilizan una serie de módulos de Node.js para cargar automáticamente el audio grabado con Amazon Polly a Amazon S3 mediante estos métodos de la clase de cliente de Amazon S3:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-polly/Class/StartSpeechSynthesisTaskCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-polly/Class/StartSpeechSynthesisTaskCommand/)

## Tareas previas necesarias
<a name="polly-example-synthesize-to-s3-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
+ Configure un entorno de proyecto para ejecutar JavaScript ejemplos de Node siguiendo las instrucciones de [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/s3/README.md).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información sobre cómo proporcionar un archivo de credenciales compartido, consulte los [archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) en la *Guía de referencia de AWS SDKs and Tools*.
+ Cree una encuesta de roles de usuario de Amazon Cognito AWS Identity and Access Management (IAM) no autenticada: permisos SynthesizeSpeech y un grupo de identidades de Amazon Cognito con la función de IAM asociada. En la siguiente sección [Cree los recursos mediante el AWS CloudFormation](#polly-example-synthesize-to-s3-create-resources), se describe cómo crear estos recursos.

**nota**  
En este ejemplo se utiliza Amazon Cognito, pero si no utiliza Amazon Cognito, el usuario debe cumplir con la siguiente política de AWS permisos de IAM.  

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "mobileanalytics:PutEvents",
        "cognito-sync:*"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": "polly:SynthesizeSpeech",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
```

## Cree los recursos mediante el AWS CloudFormation
<a name="polly-example-synthesize-to-s3-create-resources"></a>

CloudFormation le permite crear y aprovisionar despliegues de AWS infraestructura de forma predecible y repetitiva. Para obtener más información al respecto CloudFormation, consulte la Guía del [AWS CloudFormation usuario](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).

Para crear la CloudFormation pila:

1. Instale y configure las AWS CLI siguientes instrucciones de la [Guía del AWS CLI usuario](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

1. Cree un archivo con un nombre `setup.yaml` en el directorio raíz de la carpeta de su proyecto y copie [el contenido GitHub en](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/polly/general-examples/src/setup.yaml) él. 
**nota**  
La CloudFormation plantilla se generó utilizando lo que AWS CDK está [disponible aquí GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/resources/cdk/javascript_example_code_polly_aws_service/). Para obtener más información sobre AWS CDK, consulte la [Guía para AWS Cloud Development Kit (AWS CDK) desarrolladores](https://docs.aws.amazon.com/cdk/latest/guide/).

1. Ejecute el siguiente comando desde la línea de comandos y *STACK\$1NAME* sustitúyalo por un nombre único para la pila.
**importante**  
El nombre de la pila debe ser único en una AWS región y una AWS cuenta. El nombre puede tener una longitud de hasta 128 caracteres, y se permiten números y guiones.

   ```
   aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
   ```

   Para obtener más información sobre los parámetros de los comandos `create-stack`, consulte la [Guía de referencia de comandos de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) y la [Guía del usuario de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html).

1. Ve a la consola CloudFormation de administración, selecciona **Pilas**, elige el nombre de la pila y selecciona la pestaña **Recursos** para ver una lista de los recursos creados.  
![\[CloudFormation recursos\]](http://docs.aws.amazon.com/es_es/sdk-for-javascript/v3/developer-guide/images/cfn_polly.png)

## Cargue el audio grabado con Amazon Polly a Amazon S3
<a name="polly-example-synthesize-to-s3-example"></a>

Cree un módulo de Node.js con el nombre de archivo `polly_synthesize_to_s3.js`. Asegúrese de configurar el SDK como se mostró anteriormente, incluida la instalación de los clientes y paquetes necesarios. En el código, introduzca el*REGION*, y el*BUCKET\$1NAME*. Para acceder a Amazon Polly, cree un objeto de servicio al cliente de `Polly`. *"IDENTITY\$1POOL\$1ID"*`IdentityPoolId`Sustitúyala por la de la **página de muestra** del grupo de identidades de Amazon Cognito que creaste para este ejemplo. Esto también se transfiere a cada objeto de cliente.

Llame al método `StartSpeechSynthesisCommand` del objeto de servicio al cliente de Amazon Polly, sintetice el mensaje de voz y cárguelo en el bucket de Amazon S3. 

```
import { StartSpeechSynthesisTaskCommand } from "@aws-sdk/client-polly";
import { pollyClient } from "./libs/pollyClient.js";

// Create the parameters
const params = {
  OutputFormat: "mp3",
  OutputS3BucketName: "videoanalyzerbucket",
  Text: "Hello David, How are you?",
  TextType: "text",
  VoiceId: "Joanna",
  SampleRate: "22050",
};

const run = async () => {
  try {
    await pollyClient.send(new StartSpeechSynthesisTaskCommand(params));
    console.log(`Success, audio file added to ${params.OutputS3BucketName}`);
  } catch (err) {
    console.log("Error putting object", err);
  }
};
run();
```

Puede encontrar este código de ejemplo [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/polly/general-examples/src/polly_synthesize_to_s3.js).