파이썬 Zappa를 사용하여 AWS Polly를 통한 텍스트 음성 변환 애플리케이션 구축하기

최근들어 음성 인터페이스가 점점 더 중요해지고 있습니다. AWS Polly는 텍스트를 음성으로 변환해주는 강력한 서비스입니다. 이번 튜토리얼에서는 파이썬 프레임워크인 Zappa를 활용하여 AWS Polly를 사용하여 텍스트를 음성으로 변환하는 애플리케이션을 구축하는 방법을 알아보겠습니다.

사전 요구사항

프로젝트 설정

  1. 새로운 파이썬 가상환경을 만들고 활성화합니다.
  2. 필요한 패키지를 설치합니다.
$ pip install boto3 zappa flask
  1. AWS 계정에 로그인하고, IAM 사용자를 생성하고 Access Key와 Secret Access Key를 받습니다.

AWS 설정

  1. AWS 콘솔에서 Polly 서비스를 선택하고, 사용할 리전을 선택합니다.
  2. 필요한 권한을 가지고 있는 IAM 사용자를 생성합니다.
  3. 생성한 IAM 사용자에게 PollyFullAccess 정책을 추가합니다. 필요한 경우, 자세한 권한을 세부적으로 지정할 수도 있습니다.

애플리케이션 코드 구현

  1. app.py라는 파일을 생성하고 다음과 같이 코드를 작성합니다.
import boto3
from flask import Flask, request

app = Flask(__name__)

@app.route('/', methods=['POST'])
def text_to_speech():
    text = request.json['text']
    
    polly = boto3.client('polly')
    response = polly.synthesize_speech(Text=text, OutputFormat='mp3', VoiceId='Joanna')
    
    audio = response['AudioStream'].read()
    
    return audio, 200, {'Content-Type': 'audio/mp3'}

if __name__ == '__main__':
    app.run()
  1. zappa_settings.json 파일을 생성하고 다음과 같이 설정합니다.
{
    "dev": {
        "app_function": "app.app",
        "aws_region": "us-west-1",
        "profile_name": "default"
    }
}

배포하기

  1. 터미널에서 다음 명령어를 실행하여 Zappa를 초기화합니다.
$ zappa init
  1. zappa_settings.json 파일을 필요에 맞게 수정합니다.

  2. 다음 명령어를 실행하여 애플리케이션을 배포합니다.

$ zappa deploy dev

테스트하기

애플리케이션을 배포하고 나면 텍스트를 음성으로 변환해주는 API 엔드포인트가 생성됩니다. 다음과 같은 형식으로 API에 POST 요청을 보낼 수 있습니다.

$ curl -X POST -H "Content-Type: application/json" -d '{"text": "Hello, Zappa!"}' API_ENDPOINT_URL

API_ENDPOINT_URL을 애플리케이션의 실제 API 엔드포인트 URL로 대체해야 합니다. 그리고 응답으로 변환된 음성 파일(mp3)을 받게 됩니다.

마무리

이제 파이썬 Zappa와 AWS Polly를 사용하여 텍스트를 음성으로 변환하는 간단한 애플리케이션을 구축하는 방법을 알아보았습니다. 이를 응용하여 필요에 맞게 음성 인터페이스를 구현할 수 있습니다. 좀 더 복잡한 기능을 추가하거나 서버리스 아키텍처를 활용하여 확장성 있는 애플리케이션을 개발할 수도 있습니다.

#AWS #음성인터페이스 ```

위의 튜토리얼을 따라하면 파이썬 Zappa를 사용하여 AWS Polly를 통해 텍스트를 음성으로 변환하는 애플리케이션을 쉽게 구축할 수 있습니다. 이를 통해 음성 인터페이스 기능을 추가하거나 음성 기반 서비스를 구축할 수 있습니다. AWS Polly와 Zappa를 함께 사용하여 새로운 사용자 경험을 제공해보세요!

#AWS #음성인터페이스