Amazon Polly 範例 - 適用於 JavaScript 的 AWS SDK

適用於 JavaScript 的 AWS SDK V3 API 參考指南詳細說明 第 3 版 適用於 JavaScript 的 AWS SDK (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:

先決條件任務

若要設定和執行此範例,您必須先完成這些任務:

注意

此範例使用 Amazon Cognito,但如果您沒有使用 Amazon Cognito,您的 AWS 使用者必須擁有下列 IAM 許可政策

JSON
{ "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 範本是使用 GitHub 上此處提供的 AWS CDK 產生。如需 的詳細資訊 AWS CDK,請參閱 AWS Cloud Development Kit (AWS CDK) 開發人員指南

  3. 從命令列執行下列命令,將 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 使用者指南

  4. 導覽至 AWS CloudFormation 管理主控台,選擇 Stacks,選擇堆疊名稱,然後選擇資源索引標籤以檢視建立的資源清單。

    AWS 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 上找到這個範本程式碼。