Exemplos do Amazon Polly - AWS SDK para JavaScript

O Guia de referência da API do AWS SDK para JavaScript V3 descreve em detalhes todas as operações da API para o AWS SDK para JavaScript versão 3 (V3).

Exemplos do Amazon Polly

JavaScript code example that applies to Node.js execution

Este exemplo de código Node.js mostra:

  • Faça upload do áudio gravado usando o Amazon Polly para o Amazon S3

O cenário

Neste exemplo, uma série de módulos Node.js é usada para carregar automaticamente o áudio gravado usando o Amazon Polly para o Amazon S3 usando esses métodos da classe de cliente Amazon S3:

Tarefas de pré-requisito

Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:

  • Configure um ambiente de projeto para executar exemplos do Node JavaScript seguindo as instruções no GitHub.

  • Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhado, consulte Arquivos de configuração e credenciais compartilhados no Guia de referência de ferramentas e SDKs da AWS.

  • Crie permissões polly:SynthesizeSpeech de uma função de usuário não autenticado do Amazon Cognito do AWS Identity and Access Management (IAM) e um banco de identidades do Amazon Cognito com o perfil do IAM anexado a ele. A seção Criar os recursos da AWS usando o CloudFormation abaixo descreve como criar esses recursos.

nota

Este exemplo usa o Amazon Cognito, mas se você não estiver usando o Amazon Cognito, seu usuário da AWS deverá seguir a política de permissões do IAM.

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

Criar os recursos da AWS usando o CloudFormation

O CloudFormation permite que você crie e provisione implantações de infraestrutura da AWS de maneira previsível e repetida. Para obter mais informações sobre o CloudFormation, consulte o Guia do usuário do AWS CloudFormation.

Para criar a pilha do CloudFormation:

  1. Instale e configure a AWS CLI seguindo as instruções no Guia do usuário da AWS CLI.

  2. Crie um arquivo chamado setup.yaml no diretório raiz da pasta do projeto e copie o conteúdo aqui no GitHub para ele.

    nota

    O modelo CloudFormation foi gerado usando o AWS CDK disponível aqui no GitHub. Para obter mais informações sobre o AWS CDK, consulte o Guia do desenvolvedor do AWS Cloud Development Kit (AWS CDK).

  3. Execute o comando a seguir na linha de comando, substituindo STACK_NAME por um nome exclusivo para a pilha.

    Importante

    O nome da pilha deve ser exclusivo em uma Região da AWS e na conta da AWS. Você pode especificar até 128 caracteres. São permitidos números e hifens.

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

    Para obter mais informações sobre os parâmetros do comando create-stack, consulte o Guia de referência de comandos da AWS CLI e o Guia do usuário do CloudFormation.

  4. Navegue até o console de gerenciamento do CloudFormation, escolha Pilhas, selecione o nome da pilha e a guia Recursos para ver uma lista dos recursos criados.

    Recursos do CloudFormation

Faça upload do áudio gravado usando o Amazon Polly para o Amazon S3

Crie um módulo do Node.js com o nome de arquivo polly_synthesize_to_s3.js. Certifique-se de configurar o SDK conforme mostrado anteriormente, incluindo a instalação dos clientes e pacotes necessários. No código, insira a REGION e o BUCKET_NAME. Para acessar o Amazon Polly, crie um objeto de serviço de cliente do Polly. Substitua "IDENTITY_POOL_ID" pelo IdentityPoolId da página de exemplo do banco de identidades do Amazon Cognito que você criou para este exemplo. Isso também é passado para cada objeto do cliente.

Chame o método StartSpeechSynthesisCommand do objeto de serviço de cliente do Amazon Polly, sintetize a mensagem de voz e carregue-a para o bucket do 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();

Este código de exemplo pode ser encontrado aqui no GitHub.