brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 07. 2020

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

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

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




<0> 구성


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

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




구성도 아래 부분

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


다시 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/


감사합니다.





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari