适用于 JavaScript 的 AWS SDK V3 API 参考指南详细描述了 适用于 JavaScript 的 AWS SDK 版本 3 (V3) 的所有 API 操作。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Polly 示例
此 Node.js 代码示例演示:
-
将使用 Amazon Polly 录制的音频上传到 Amazon S3
情景
在此示例中,将使用一系列 Node.js 模块,通过 Amazon S3 客户端类的以下方法将使用 Amazon Polly 录制的音频自动上传到 Amazon S3:
先决条件任务
要设置和运行此示例,您必须先完成以下任务:
-
按照中的说明设置项目环境以运行 Node JavaScript 示例 GitHub
。 -
使用用户凭证创建共享配置文件。有关提供共享凭据文件的更多信息,请参阅和工具参考指南中的共享配置AWS SDKs 和凭据文件。
创建一个 AWS Identity and Access Management (IAM) 未经身份验证的 Amazon Cognito 用户角色投票SynthesizeSpeech :权限,以及一个附有 IAM 角色的 Amazon Cognito 身份池。下面的使用创建 AWS 资源 AWS CloudFormation部分将介绍如何创建这些资源。
注意
此示例使用 Amazon Cognito,但是如果您不使用 Amazon Cognito,则 AWS 您的用户必须具有以下 IAM 权限策略
使用创建 AWS 资源 AWS CloudFormation
AWS CloudFormation 使您能够以可预测的方式重复创建和配置 AWS 基础架构部署。有关的更多信息 AWS CloudFormation,请参阅《AWS CloudFormation 用户指南》。
要创建 AWS CloudFormation 堆栈,请执行以下操作:
按照《 AWS CLI AWS CLI 用户指南》中的说明进行安装和配置。
在项目文件夹的根目录
setup.yaml
中创建一个名为的文件,然后将此处的内容复制 GitHub到该文件中。 注意
该 AWS CloudFormation 模板是使用此处 AWS CDK 提供的模板生成的 GitHub
。有关更多信息 AWS CDK,请参阅《AWS Cloud Development Kit (AWS CDK) 开发人员指南》。 从命令行运行以下命令,
STACK_NAME
替换为堆栈的唯一名称。重要
堆栈名称在 AWS 区域和 AWS 账户中必须是唯一的。您最多可指定 128 个字符,支持数字和连字符。
aws cloudformation create-stack --stack-name STACK_NAME --template-body file://setup.yaml --capabilities CAPABILITY_IAM
有关
create-stack
命令参数的更多信息,请参阅 AWS CLI 命令参考指南和 AWS CloudFormation 用户指南。-
导航到 AWS CloudFormation 管理控制台,选择堆栈,选择堆栈名称,然后选择资源选项卡以查看已创建资源的列表。
将使用 Amazon Polly 录制的音频上传到 Amazon S3
创建文件名为 polly_synthesize_to_s3.js
的 Node.js 模块。确保如前所示配置 SDK,包括安装所需的客户端和软件包。在代码中,输入REGION
、和BUCKET_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();
可以在此处找到此