Amazon Polly 示例 - 适用于 JavaScript 的 Amazon SDK
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

适用于 JavaScript 的 Amazon SDKV3 API 参考指南详细描述了 适用于 JavaScript 的 Amazon SDK 版本 3 (V3) 的所有 API 操作。

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:

先决条件任务

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

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

  • 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅《Amazon SDK 和工具参考指南》中的共享配置和凭证文件

  • 创建一个 Amazon Identity and Access Management (IAM) 未经身份验证的 Amazon Cognito 用户角色 polly:SynthesizeSpeech 权限,以及一个附有 IAM 角色的 Amazon Cognito 身份池。下面的使用 Amazon CloudFormation 创建 Amazon 资源部分将介绍如何创建这些资源。

注意

此示例使用 Amazon Cognito,但是如果您不使用 Amazon Cognito,则您的 Amazon 用户必须具有以下 IAM 权限策略:

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

使用 Amazon CloudFormation 创建 Amazon 资源

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

创建 Amazon CloudFormation 堆栈:

  1. 按照 Amazon CLI 用户指南中的说明安装和配置 Amazon CLI。

  2. 在项目文件夹的根目录中创建一个名为 setup.yaml 的文件,然后将 GitHub 上此处的内容复制到该文件中。

    注意

    Amazon CloudFormation 模板是使用 GitHub 上此处提供的 Amazon CDK 生成的。有关 Amazon CDK 的更多信息,请参阅 Amazon Cloud Development Kit (Amazon CDK) 开发人员指南

  3. 从命令行运行以下命令,将 STACK_NAME 替换为堆栈的唯一名称。

    重要

    在一个 Amazon 区域和一个 Amazon 账户中,堆栈名称必须唯一。您最多可指定 128 个字符,支持数字和连字符。

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

    有关 create-stack 命令参数的更多信息,请参阅 Amazon CLI 命令参考指南Amazon CloudFormation 用户指南

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

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

创建文件名为 polly_synthesize_to_s3.js 的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。在代码中,输入 REGIONBUCKET_NAME。要访问 Amazon Polly,请创建一个 Polly 客户端服务对象。将 "IDENTITY_POOL_ID" 替换为您为此示例创建的 Amazon Cognito 身份池的示例页面中的 IdentityPoolId。这也被传递给每个客户端对象。

调用 Amazon Polly 客户端服务对象的 StartSpeechSynthesisCommand 方法以合成语音消息,将其上传到 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();

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