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

Amazon SDK for JavaScript V3 API 参考指南详细描述了 Amazon SDK for JavaScript 版本 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:

先决条件任务

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

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

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

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

注意

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

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

使用创建 Amazon 资源 Amazon CloudFormation

Amazon CloudFormation 使您能够以可预测的方式重复创建和配置 Amazon 基础架构部署。有关的更多信息 Amazon CloudFormation,请参阅《Amazon CloudFormation 用户指南》

要创建 Amazon CloudFormation 堆栈,请执行以下操作:

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

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

    注意

    该 Amazon CloudFormation 模板是使用此处 Amazon CDK 提供的模板生成的 GitHub。有关更多信息 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 var 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。