

 [AWS SDK for JavaScript V3 API 참조 안내서](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)는 AWS SDK for JavaScript 버전 3(V3)의 모든 API 작업을 자세히 설명합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Polly 예
<a name="polly-examples"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**이 Node.js 코드 예제는 다음을 보여 줍니다.**
+ Amazon S3에 Amazon Polly를 사용해 녹음한 오디오 업로드

## 시나리오
<a name="polly-example-synthesize-to-s3-scenario"></a>

이 예에서는 일련의 Node.js 모듈에서 Amazon S3 클라이언트 클래스의 다음 메서드를 사용하여 Amazon Polly를 사용해 녹음한 오디오를 Amazon S3에 자동으로 업로드합니다.
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-polly/Class/StartSpeechSynthesisTaskCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-polly/Class/StartSpeechSynthesisTaskCommand/)

## 사전 필수 작업
<a name="polly-example-synthesize-to-s3-prerequisites"></a>

이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.
+ [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascriptv3/example_code/s3/README.md)의 지침에 따라 노드 JavaScript 예를 실행하도록 프로젝트 환경을 설정합니다.
+ 사용자 자격 증명을 사용하여 공유 구성 파일을 생성합니다. 공유 보안 인증 파일 제공에 관한 자세한 내용은 *AWS SDK 및 도구 참조 가이드*의 [Shared config and credentials files](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) 단원을 참조하세요.
+  AWS Identity and Access Management (IAM) 인증되지 않은 Amazon Cognito 사용자 역할 polly:SynthesizeSpeech 권한과 IAM 역할이 연결된 Amazon Cognito 자격 증명 풀을 생성합니다. 아래 [를 사용하여 AWS 리소스 생성 CloudFormation](#polly-example-synthesize-to-s3-create-resources) 단원에서는 이러한 리소스를 생성하는 방법을 설명합니다.

**참고**  
이 예제에서는 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 리소스 생성 CloudFormation
<a name="polly-example-synthesize-to-s3-create-resources"></a>

CloudFormation 를 사용하면 AWS 인프라 배포를 예측 가능하고 반복적으로 생성하고 프로비저닝할 수 있습니다. 에 대한 자세한 내용은 [AWS CloudFormation 사용 설명서를](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/) CloudFormation참조하세요.

 CloudFormation 스택을 생성하려면:

1. [AWS CLI 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)의 AWS CLI 지침에 따라를 설치하고 구성합니다.

1. 프로젝트 폴더의 루트 디렉터리에 이름이 `setup.yaml`인 파일을 생성하고 [여기 GitHub의](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/polly/general-examples/src/setup.yaml) 내용을 해당 파일에 복사합니다.
**참고**  
 CloudFormation 템플릿은 [ GitHub에서 사용할](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/resources/cdk/javascript_example_code_polly_aws_service/) 수 있는를 AWS CDK 사용하여 생성되었습니다. 에 대한 자세한 내용은 [AWS Cloud Development Kit (AWS CDK) 개발자 안내서](https://docs.aws.amazon.com/cdk/latest/guide/)를 AWS CDK참조하세요.

1. 명령줄에서 다음 명령을 실행하여 *STACK\$1NAME*을 스택의 고유한 이름으로 바꿉니다.
**중요**  
스택 이름은 AWS 리전 및 AWS 계정 내에서 고유해야 합니다. 최대 128자까지 지정할 수 있으며 숫자와 하이픈을 사용할 수 있습니다.

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

   `create-stack` 명령 파라미터에 대한 자세한 내용은 [AWS CLI 명령 참조 가이드](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) 및 [CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html)를 참조하세요.

1.  CloudFormation 관리 콘솔로 이동하여 **스택**을 선택하고 스택 이름을 선택한 다음 **리소스** 탭을 선택하여 생성된 리소스 목록을 봅니다.  
![\[CloudFormation 리소스\]](http://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v3/developer-guide/images/cfn_polly.png)

## Amazon S3에 Amazon Polly를 사용해 녹음한 오디오 업로드
<a name="polly-example-synthesize-to-s3-example"></a>

파일 이름이 `polly_synthesize_to_s3.js`인 Node.js 모듈을 생성합니다. 필수 클라이언트 및 패키지 설치를 포함하여 앞서 나와 있는 것처럼 SDK를 구성해야 합니다. 코드에 *REGION* 및 *BUCKET\$1NAME*을 입력합니다. Amazon Polly에 액세스하려면 `Polly` 클라이언트 서비스 객체를 생성합니다. *"IDENTITY\$1POOL\$1ID"*를 이 예에서 생성한 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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/polly/general-examples/src/polly_synthesize_to_s3.js)에서 찾을 수 있습니다.