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/


감사합니다.





매거진의 이전글 396. CodeDeploy

매거진 선택

키워드 선택 0 / 3 0

댓글여부

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