brunch

397. 텍스트를 생생한 음성으로Polly

by Master Seo

Amazon Polly는 텍스트를 생생한 음성으로 변환하는 서비스로서

이를 사용하면 말을 하는 애플리케이션을 만들고 전혀 새로운 유형의 음성 지원 제품을 개발할 수 있습니다.




<0> 구성


User ------- S3------ APIGateway --- Lambdb -----Dynamodb

User ------- S3------ APIGateway --- Lambdb ----- SNS------Lambda-----Polly


polly-severless-architecture.png



구성도 아래 부분

User ------- S3------ APIGateway --- Lambdb ----- SNS------Lambda-----Polly


<1> 다이나모 디비 만들기

<2> S3 만들기

<3> SNS 만들기

<4> 새 포스트 Lambda 생성

<5> 람다로 오디오로 변경

<6> 람다 테스트


User ------- S3------ APIGateway --- Lambdb -----Dynamodb

<7> 포스트를 얻는 lambda 함수 생성

<8> API Gateway 사용하기

<9> S3로 사이트 만들기



<1> 다이나모 디비 만들기

서비스 > 다이나모 디비 > 테이블 만들기 > 테이블 이름

posts

주요 키

id

(string)

만들기



<2> S3 만들기

1

S3 > 버킷 만들기 >

audioposts-111

다음 > 다음 > 다음 > 버킷 만들기


2

버킷 클릭 > 권한 > 퍼블릭 액세스 차단 > 편집 > 체크 해제> 저장 > 확인



<3> SNS 만들기

SNS > 주제 > 주제 생성 >

new_posts

New posts

주제 생성

Topic ARN 확인

arn:aws:sns:us-west-2:520304294899:new_posts



<4> 새 포스트 Lambda 생성


1

람다> 함수 생성 >

PostReader_NewPost

python2.7

기존 역할 사용 > 람다-역할 선택 > 함수 생성

// 람다 함수 수정 > 저장


2

환경변수 > 편집 > 환경변수 추가

SNS_TOPIC

arn:aws:sns:us-west-2:520304294899:new_posts

DB_TABLE_NAME

posts

> 저장


테스트

Joanna

{

"voice": "Joanna",

"text": "This is working!"

}


실행결과 : 성공 확인하기




<5> 오디오로 변경하는 람다 함수

TEXT 를 음성으로 변경해 Dynamodb에 저장한다.


1

람다 > 함수 생성 >

ConvertToAudio

pythone2.7

기존 역할 사용 > 함수 생성

// 오디오로 변경되는 함수


2

환경변수 > 환경 변수 추가

DB_TABLE_NAME

posts

BUCKET_NAME

audosss-111

저장


3

기본 설정

제한시간 5분

저장


4

위쪽 > 디자이너 > 트리커 추가 > SNS

new_posts

add

추가



<6> 테스트 lambda


1

함수 > 새 포스트 > 테스트 > 성공


2

서비스 > 다이나모 디비 > 테이블 > posts 테이블 > 항목 탭


3

서비스 > 람다 > Converttoaudio 함수 선택 > 모니터링 탭 > CloudWatch 에서 로그 보기


4

서비스 > S3 버킷 > mp3 파일이 있는것이 확인 된다.




<7> 포스트를 얻는 lambda 함수 생성


1

서비스 > 람다 > 함수생성

PostReader_GetPost

python2.7

기존 역할 사용

// 람다 함수 코드 수정


2

환경 변수 > 환경 변수 추가

DB_TABLE_NAME

posts

저장


3

테스트

AllPosts

{ "postId": "*" }

생성

테스트



<8> API Gateway 사용하기


1

서비스 > API Gateway

REST API > 구축 > 새 API

PostReaderAPI

API for PostReader Application

AP{I 생성


2

리소수 > 작업 > 메소드 생성 > POST

람다함수

PostReader_NewPost

저장


3

작업 > 메소드 생성 > GET

PostReader_GetPost

저장


4

작업 > 크로스 활성화 > 활성화로 기존 값대체 클릭


5

GET > 메서트 리퀘스트 클릭 > URL 퀘리 문자열 파라미터 > 퀘리 문자열 추가 >

postId


6

다시 GET 으로

통합 요청 > 매핑 템플릿 > 정의된 템플릿이 없는 경우(권장) > 매핑 테이블 추가 >

application/json

generate template

{ "postId" : "$input.params('postId')" }

저장


7

GET > 실행 > Deploy API > 새 스테이지

dev

배포


URL 호출 복사해 놓기

https://aaaaaaaf.execute-api.us-west-2.amazonaws.com/dev



<9> S3로 사이트 만들기

1

S3 > 버킷 만들기

www-11122

만들기

정책

퍼블릭 액세스 차단 > 편집 > 체크 해지


2. 호스팅으로 설정하기

다운 받은 index.html 사용


3

{

"Version": "2012-10-17",

"Statement": [

{

"Sid": "AddPerm",

"Effect": "Allow",

"Principal": "*",

"Action": [

"s3:GetObject"

],

"Resource": [

"arn:aws:s3:::www-11122/*"

]

}

]

}


https://aws.amazon.com/ko/polly/


감사합니다.





keyword
매거진의 이전글396. CodeDeploy