Amazon Polly 示例 - AWS SDK for JavaScript

帮助我们改进AWS SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:AWS SDK for JavaScriptV3 API 参考指南详细描述了所有的 API 操作AWS SDK for JavaScript版本 3 (V3)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Polly 示例


            JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 将使用 Amazon Polly 录制的音频上传到 Amazon S3

场景

在本示例中,使用一系列 Node.js 模块,通过 Amazon S3 客户端类的下列方法,自动将使用 Amazon Polly 录制的音频上传到 Amazon S3:

先决项任务

要设置和运行此示例,您必须先完成以下任务:

  • 按照上面的说明设置项目环境以运行 Node JavaScript 示例GitHub.

  • 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

  • 创建AWS Identity and Access Management(IAM) 未经身份验证的 Amazon Cognito 用户角色 polly: ConverizSpeech 权限和附加了 IAM 角色的 Amazon Cognito 身份池。这些区域有:创建AWS资源使用AWS CloudFormation下面的部分描述了如何创建这些资源。

注意

此示例使用 Amazon Cognito,但是如果您没有使用 Amazon Cognito,那么AWS用户必须具有以下 IAM 权限策略

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

创建AWS资源使用AWS CloudFormation

AWS CloudFormation 让您能够以可预测、可重复的方式创建和预置 AWS 基础设施部署。有关 的更多信息AWS CloudFormation,请参阅AWS CloudFormation开发人员指南。.

创建AWS CloudFormation堆栈:

  1. 安装和配置AWS CLI按照中的说明操作AWS CLI用户指南.

  2. 创建一个名为的文件setup.yaml在项目文件夹的根目录中,然后复制内容GitHub 上的位置进入它。

    注意

    这些区域有:AWS CloudFormation模板是使用AWS CDK可用GitHub 上的位置. 有关 AWS CDK 的更多信息,请参阅 AWS Cloud Development Kit (AWS CDK) 开发人员指南

  3. 从命令行运行以下命令,并将STACK_NAME使用堆栈的唯一名称。

    重要

    堆栈名称在中必须唯一。AWS地区和AWSaccount. 您最多可以指定 128 个字符,并允许使用数字和连字符。

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

    有关create-stack命令参数,请参阅AWS CLI命令参考指南,以及AWS CloudFormation用户指南.

  4. 导航到AWS CloudFormation管理控制台,选择堆栈,选择堆栈名称,然后选择资源选项卡以查看创建的资源列表。

    
                    AWS CloudFormation 资源

将使用 Amazon Polly 录制的音频上传到 Amazon S3

创建文件名为 polly_synthesize_to_s3.js 的 Node.js 模块。确保按前面所示配置开发工具包,包括安装所需客户端和软件包。在代码中,输入领域,以及BUCKET_NAME. 要访问 Amazon Polly,请创建Polly客户端服务对象。Replace“身份 _POOL_ID”使用IdentityPoolId来自 的示例页(位于本示例中创建的 Amazon Cognito 身份池)。这也会传递给每个客户端对象。

调用调用StartSpeechSynthesisCommandAmazon Polly 客户端服务对象的方法合成语音消息并将其上传到 Amazon S3 存储桶。

const { Polly, StartSpeechSynthesisTaskCommand, } = require("@aws-sdk/client-polly"); const { pollyClient } = require("./libs/pollyClient.js"); // Create the parameters var params = { OutputFormat: "mp3", OutputS3BucketName: "videoanalyzerbucket", Text: "Hello David, How are you?", TextType: "text", VoiceId: "Joanna", SampleRate: "22050", }; const run = async () => { try { const data = await pollyClient.send( new StartSpeechSynthesisTaskCommand(params) ); console.log("Success, audio file added to " + params.OutputS3BucketName); } catch (err) { console.log("Error putting object", err); } }; run();

此示例代码可在 GitHub 上的此处找到。