아마존 폴리: AWS에서 텍스트 음성 변환에 대한 완벽한 가이드

GPT 시대 이후, 음성 상호작용은 가상 비서부터 시각 장애인이 디지털 콘텐츠를 탐색하는 데 도움이 되는 접근성 기능까지 점점 더 중요해지고 있습니다. 아마존 폴리는 텍스트 음성 변환 기능을 더 쉽게 추가할 수 있을 뿐만 아니라 여러 언어와 다양한 음성을 지원하여 매우 개인화되고 몰입감 있는 사용자 경험을 제공합니다.

이 튜토리얼은 독자들에게 아마존 폴리를 설정하고 애플리케이션에 통합하는 방법을 가르쳐 음성 상호작용의 잠재력을 열고 보다 역동적이고 접근 가능한 디지털 경험을 위한 길을 열어주는 것을 목표로 합니다.

아마존 폴리란?

아마존 폴리는 자연스러운 음성을 합성하기 위해 고급 딥 러닝 기술을 사용하는 텍스트 음성 변환(TTS) 서비스입니다. 이것은 가장 정교한 TTS 서비스 중 하나로 자리 잡고 있으며, 개발자들이 놀랍도록 인간적인 방식으로 ‘말할’ 수 있는 애플리케이션을 만들 수 있도록 합니다. 이 서비스는 30개 이상의 언어에서 60개 이상의 음성을 지원하여 다양한 언어적 요구를 가진 전 세계 청중을 수용합니다.

Amazon Polly의 주요 기능 중 하나는 신경망 텍스트 음성 (NTTS) 기술을 사용한다는 것인데, 이 기술은 전통적인 음성 합성 시스템보다 훨씬 표현력이 풍부하고 자연스러운 목소리를 제공합니다. 이는 음높이, 음량 및 말하는 속도와 같은 음성 속성을 조정하여 개발자가 오디오 출력을 정밀하게 제어할 수 있다는 것을 포함합니다. 예를 들어, 개발자들은 음성을 더 밝고 흥분된, 또는 공감적으로 만들어 사용자와의 감정적 연결을 강화할 수 있습니다.

Amazon Polly는 또한 음성 마커와 같은 기능을 지원하는데, 이를 통해 개발자들은 음성을 시각적 요소와 동기화하여 음성이 발화될 때 텍스트를 강조하거나 캐릭터를 음성과 입술 동기화하도록 애니메이션화할 수 있습니다. 이는 대화식 이야기, 교육 콘텐츠 및 접근성 도구에 이상적인 솔루션입니다.

음성으로 제어되는 가상 비서, 오디오북 플랫폼, 또는 음성 기능을 갖춘 IoT 장치를 구축하고 있다면, Amazon Polly는 아이디어를 현실로 구현하는 데 필요한 유연성과 확장 가능성을 제공합니다.

Amazon Polly 설정하기

이제 Amazon Polly를 직접 설정해 봅시다! 이 섹션에서는 그 방법에 대한 개요를 제공합니다.

단계 1: AWS 계정 생성

Amazon Polly를 사용하려면 먼저 AWS 계정이 필요합니다. 아직 계정이 없다면 AWS 가입 페이지로 이동하여 계정을 생성하십시오. Polly를 포함한 AWS 서비스는 사용량에 따라 청구되므로 유효한 결제 정보를 제공해야 합니다.

권한을 위한 IAM 설정

나는 Amazon Polly 리소스를 관리할 필요한 권한을 가진 IAM(Identity and Access Management) 사용자를 설정하는 것을 권장합니다. 사용자가 모든 Polly 기능에 액세스할 수 있도록 AmazonPollyFullAccess 정책을 할당하세요.

단계 2: Amazon Polly로 이동

AWS Management Console에 로그인한 후, 상단의 검색 바에서 Polly를 검색하세요.

AWS 콘솔의 검색 메뉴.

Polly 인터페이스로 이동하려면 Amazon Polly 서비스를 클릭하세요.

텍스트 음성 변환을 위해 Amazon Polly 사용하기

일반적으로, 개발자들은 Amazon Polly API를 사용하여 텍스트 음성 변환 기능을 애플리케이션에 직접 통합합니다. 그러나 AWS Polly 인터페이스를 사용하여 코드를 작성하지 않고도 다양한 음성과 설정을 빠르게 시도해 볼 수도 있습니다. 이를 위해 Polly 인터페이스에서 시도 Polly 버튼을 클릭하세요. 이 버튼을 사용하면 AWS 콘솔에서 다양한 텍스트 입력, 음성 유형 및 출력 형식을 실험할 수 있어 Polly의 기능을 프로그래밍적으로 구현하기 전에 쉽게 살펴볼 수 있습니다.

기본 텍스트 음성 변환

기본 텍스트 음성 변환을 수행하려면 “안녕하세요, Amazon Polly에 오신 것을 환영합니다!”와 같은 문장을 입력란에 입력하십시오. 엔진 유형(예: 생성, 장문, 신경, 또는 표준), 언어 및 음성을 선택할 수도 있습니다. 들어보기를 클릭하여 즉시 출력을 듣거나 다운로드를 클릭하여 .mp3 파일로 다운로드할 수 있습니다.

AWS 콘솔의 Amazon Polly 인터페이스.

텍스트 음성 변환을 위한 AWS SDK 설정

Amazon Polly를 애플리케이션에 프로그래밍 방식으로 통합하기 위해 AWS SDK를 설정해야 합니다. 이를 통해 코드에서 Amazon Polly와 직접 상호 작용하여 더 다이내믹하고 사용자 정의 가능한 텍스트 음성 변환 기능을 활성화할 수 있습니다.

이 튜토리얼에서는 Python SDK (boto3)를 사용합니다. pip를 통해 boto3를 설치합니다:

pip install boto3

그런 다음, AWS CLI를 사용하여 AWS 자격 증명을 구성하십시오:

aws configure

CLI에서 aws configure 명령어.

SDK를 통해 음성 생성

다음은 Amazon Polly를 사용하여 텍스트를 음성으로 변환하는 간단한 Python 스크립트입니다:

import boto3 polly = boto3.client('polly') response = polly.synthesize_speech( Text='Hello, this is a test of Amazon Polly.', OutputFormat='mp3', VoiceId='Joanna' ) with open('speech.mp3', 'wb') as file: file.write(response['AudioStream'].read())

이 스크립트는 텍스트에서 음성을 생성하고 mp3 파일로 저장합니다.

Amazon Polly의 고급 기능

Amazon Polly는 기본 텍스트 음성 변환 기능으로 널리 알려져 있지만, 개발자가 더 정교하고 상호작용적인 음성 경험을 만들 수 있도록 다양한 고급 기능을 제공합니다.

SSML(음성 합성 마크업 언어)을 사용하여

개발자는 음성의 다양한 측면, 예를 들어 음조, 속도, 볼륨 및 강조를 제어할 수 있어 오디오 출력이 더 표현력 있고 자연스럽게 됩니다.

SSML 태그를 사용하면 일시 정지를 추가하고, 말하는 스타일을 조정하며, 약어를 글자별로 철자할 수 있습니다. 이러한 유연성은 이야기 전달, e-러닝 플랫폼 및 고객 서비스 애플리케이션과 같은 시나리오에 특히 유용하며, 이러한 곳에서는 톤과 전달 스타일이 사용자 참여에 큰 영향을 미칩니다.

예를 들어, 특정 단어를 강조하여 중요성을 전달하거나, 교육 콘텐츠의 경우 명확성을 보장하기 위해 말하는 속도를 조절할 수 있습니다.

다음은 Polly SDK와 함께 SSML을 사용하는 방법입니다:

response = polly.synthesize_speech( Text="<speak><emphasis level='strong'>Important</emphasis> message!</speak>", TextType='ssml', OutputFormat='mp3', VoiceId='Matthew' ) # 오디오 파일 저장 with open('speech_ssml.mp3', 'wb') as file: file.write(response['AudioStream'].read())

이 예시는 “중요”라는 단어를 강조하여 듣는 이에게 감정적인 영향을 주는 말을 두드러지게 합니다. SSML은 또한 발음, 속삭임, 소리 효과 추가와 같은 고급 기능을 지원하여 개발자들에게 목소리 경험을 완전히 제어할 수 있게 합니다.

립싱크용 발화 마크

발화 마크는 시간에 맞춘 메타데이터를 제공하여 개발자들이 애니메이션, 텍스트 강조 또는 캐릭터 입모양과 발화를 동기화할 수 있게 합니다.

이 기능은 가상 캐릭터, 교육용 게임 또는 가사 형식의 텍스트 강조와 같은 대화형 애플리케이션에 특히 유용합니다.

음성 합성과 함께 발화 마크를 요청함으로써 각 단어 또는 문장에 대한 세부적인 타이밍 정보를 얻어 동적이고 동기화된 멀티미디어 경험을 만들 수 있습니다.

예를 들어, 말하는 단어와 동기화하여 캐릭터의 입 움직임을 애니메이션화하거나 텍스트를 실시간으로 강조하여 낭독될 때 하이라이트 처리할 수 있습니다. 말표 요청하는 방법은 다음과 같습니다:

response = polly.synthesize_speech( Text='Hello, world!', OutputFormat='json', VoiceId='Emma', SpeechMarkTypes=['word'] ) # 말표를 JSON 파일에 저장 with open('speech_marks.json', 'wb') as file: file.write(response['AudioStream'].read())

출력 JSON:

{"time":6,"type":"word","start":0,"end":5,"value":"Hello"} {"time":714,"type":"word","start":7,"end":12,"value":"world"}

위의 예시는 각 단어에 대한 말표를 요청하며, 타임스탬프 및 텍스트 데이터가 포함된 JSON 객체를 반환합니다. 개발자들은 이 정보를 사용하여 애니메이션을 프레임별로 동기화하여 오디오-비주얼 경험을 더욱 매혹적이고 현실적으로 만들 수 있습니다.

Amazon Polly를 사용한 실시간 스트리밍

음성 비서, 실시간 해설, 또는 대화형 챗봇과 같은 실시간 애플리케이션에 대해, Amazon Polly는 WebSocket 프로토콜을 지원하거나 HLS(HTTP Live Streaming)를 지원하는 미디어 플레이어를 사용하여 스트리밍을 지원합니다.

이를 통해 응용 프로그램은 합성되는 대로 오디오를 재생하여 대기 시간을 줄이고 더 반응성 있는 사용자 경험을 만들 수 있습니다. 실시간 스트리밍은 실시간 응급이 필요한 경우에 이상적이며, 라이브 고객 지원이나 대화형 AI와 같은 시나리오에 적합합니다.

개발자는 이 기능을 활용하여 음성 활성 기기, 뉴스 리더 또는 사용자 입력에 실시간으로 응답하는 대화형 스토리텔링 응용 프로그램을 작성할 수 있습니다.

Amazon Polly 리소스 관리

Amazon Polly 리소스를 효과적으로 관리하는 것은 성능, 비용 및 확장성을 최적화하는 데 중요합니다. 음성 파일을 전략적으로 저장하고 사용량을 모니터링함으로써, 효율적인 리소스 활용을 보장하고 높은 품질의 사용자 경험을 유지할 수 있습니다.

Amazon Polly는 다른 AWS 서비스와 완벽하게 통합됩니다. 저장을 위한 Amazon S3 및 비용 모니터링을 위한 AWS Billing Dashboard와 같은 서비스를 통해 리소스 관리를 쉽게 할 수 있습니다. 

음성 파일 생성 및 관리

Amazon Polly를 사용하면 합성된 음성을 확장 가능한 저장소인 Amazon S3에 저장하고 쉽게 검색할 수 있습니다. 이 접근 방식은 반복적인 오디오 요구 사항이 있는 응용 프로그램에 특히 유용하며, 합성 음성을 매번 생성하는 대신 e-learning 플랫폼, 오디오북 또는 고객 지원 봇과 같은 애플리케이션에서 오디오 파일을 재사용할 수 있습니다. 

S3에 자주 사용되는 음성 출력을 저장함으로써 클라우드에서 직접 캐시된 오디오 파일을 제공함으로써 비용을 절감하고 성능을 향상시킬 수 있습니다.

s3 = boto3.client('s3') s3.upload_file('speech.mp3', 'your-bucket-name', 'speech.mp3')

사용량 및 비용 모니터링

AWS 요금 청구 및 비용 관리 대시보드를 활용하여 사용량과 비용을 효율적으로 모니터링하세요. 이 대시보드는 상세한 비용 분석, 사용량 보고서 및 예상치 못한 요금을 피하기 위해 예산 및 경고 설정 기능을 제공합니다.

뉴럴 보이스를 사용할 때 비용을 모니터링하는 것은 특히 중요합니다. 뉴럴 보이스는 표준 보이스보다 비싸기 때문입니다. 또한 합성된 문자 수 및 API 호출 빈도와 같은 사용량 지표를 추적하여 리소스 이용을 최적화하는 데 도움이 될 수 있습니다.

AWS 비용 대시보드 예시.

Amazon Polly 사용의 모범 사례

Amazon Polly를 사용할 때 모범 사례를 채택하면 최적의 성능, 비용 효율성 및 사용자 경험을 보장할 수 있습니다. 다음은 몇 가지 주요 지침입니다:

적절한 보이스 선택

올바른 음성을 선택하는 것은 응용 프로그램의 목적과 대상 청중에 달려 있습니다. Amazon Polly는 표준 및 신경 음성을 포함한 다양한 음성을 제공하며, 각각 고유한 톤과 특징을 가지고 있습니다.

  • 신경 음성은 더 자연스럽고 표현력이 풍부하지만 더 비싼 편입니다. 따라서, 오디오북이나 이야기처럼 높은 감정 참여가 필요한 응용 프로그램에 이상적입니다.
  • 표준 음성은 고객 지원 챗봇과 같은 유틸리티 기반 응용 프로그램에 비용 효율적인 솔루션을 제공합니다. 사용자 피드백을 통해 다양한 음성을 테스트하여 응용 프로그램의 요구에 가장 적합한 음성을 선택하는 데 도움이 됩니다.

음성 출력 최적화

SSML (음성 합성 마크업 언어)을 활용하여 음성 품질을 높이는데 피치, 속도 및 볼륨 매개변수를 조정할 수 있습니다. 이러한 설정을 세밀하게 조정하여 더 다이내믹하고 매력적인 오디오 경험을 만들 수 있습니다.

예를 들어, 말하기 속도를 늦추면 지시 콘텐츠의 명확성이 향상되고 핵심 구절을 강조하면 이야기를 더욱 재미있게 전달할 수 있습니다. 다양한 SSML 태그를 실험하여 가장 자연스러운 말소리를 얻을 수 있습니다.

비용 절감

Amazon Polly를 사용할 때 비용을 최적화하기 위해 말 생성 빈도와 자주 사용되는 오디오 파일을 S3에 저장하여 재사용하는 전략을 고려해야 합니다. 이 접근 방식은 반복적인 API 호출을 최소화하고 합성 비용을 줄입니다.

또한 표준 보이스와 신경망 보이스를 혼합하여 비용과 품질을 균형 있게 유지하는 전략적 사용이 중요합니다.

예를 들어, 웰컴 메시지와 같은 중요한 터치포인트에는 신경망 음성만 사용하고 정보 내용은 표준 음성으로 처리합니다. AWS 청구 대시보드에서 사용 제한 및 비용 알림을 설정하여 예산을 효과적으로 관리하고 예상치 못한 비용을 피할 수 있습니다.

결론

Amazon Polly는 텍스트를 사실적인 음성으로 변환하여 사용자 경험과 접근성을 향상시키는 고급 딥 러닝 기술을 활용한 강력한 텍스트 음성 변환 서비스입니다.

본 자습서에서는 AWS SDK 설정부터 프로그래밍 방식으로 음성 생성까지 Amazon Polly의 기본 기능을 살펴보았습니다. 또한 사용자 정의 음성 출력에 SSML 사용, 립싱크 및 애니메이션을 위한 Speech Marks 활용, 동적 음성 애플리케이션을 위한 실시간 스트리밍 구현 등 고급 기능도 다루었습니다.

Amazon Polly를 애플리케이션에 통합하면 글로벌 관객을 대상으로 한 매우 상호 작용적이고 개인화된 음성 경험을 만들 수 있습니다. 가상 비서, 오디오북, 교육 플랫폼 또는 접근성 도구를 구축하고 있다면, Amazon Polly는 아이디어를 현실로 만들기 위해 필요한 유연성, 확장성 및 고급 기능을 제공합니다.

AWS에 처음이고 클라우드 기술을 강화하고 싶다면, 다음과 같은 관련 코스를 탐색해보세요:

Source:
https://www.datacamp.com/tutorial/amazon-polly