Amazon Web Services 한국 블로그
Amazon Polly, 신경망 기반 텍스트 투 스피치 및 뉴스캐스터 스타일 도입
Amazon Polly는 텍스트를 사실과 같은 음성으로 변환하는 관리형 서비스로, 이를 통해 고객은 말하는 애플리케이션을 생성하고 음성을 지원하는 제품의 새로운 범주를 구축할 수 있습니다. 기계 학습 전문 지식을 학습하지 않고도, API를 호출하기만 하면 작업을 마칠 수 있습니다! 이후로 Polly 팀은 정기적으로 새 음성을 추가하였고, 현재 총 29개 언어로, 59개 음성을 지원합니다.
오늘 신경망 기반 텍스트 투 스피치(TTS) 및 획기적인 뉴스캐스터 스타일과 같은 두 가지 주요 신규 기능을 소개해 드릴까 합니다.
NTTS(신경망 기반 텍스트 투 스피치)
새로운 기계 학습 접근 방식을 통해 NTTS는 음성 품질에서 큰 개선을 이루었습니다. 인간 음성에 보다 가까운 사실적인 음성을 합성하는 데 중요한 두 가지 요소, 자연스러움과 감정 표현 능력이 향상되었습니다. 다음은 예상 가능한 품질에 대한 예제입니다.
현재 NTTS는 실시간 및 배치 모드 모두에서 11개 음성을 지원합니다.
- 모든 영국식 영어 음성 3개: Amy, Emma, Brian.
- 모든 미국식 영어 음성 8개: Ivy, Joanna, Kendra, Kimberly, Salli, Joey, Justin, Matthew.
지금 AWS 콘솔에서 빠른 테스트를 시행해보는 건 어떠세요?
뉴스캐스터 스타일 도입
음성 품질도 중요하지만, 인공적인 음성이 보다 사실적이고 매력적으로 들리는 것도 더욱 중요합니다. 스타일은 어떨까요? 인간의 귀는 뉴스 방송, 스포츠 방송, 대학 강의 등을 구별할 수 있습니다. 실제로, 대부분의 사람은 상황에 맞는 올바른 음성 스타일을 채택하며, 이러한 스타일은 메시지를 전달하는 데 큰 역할을 합니다.
NTTS 덕분에 합성된 음성에 스타일을 더할 수 있으며, 이제 Polly에서도 뉴스캐스트 스타일을 사용할 수 있습니다. 다음은 한 가지 예제입니다.
뉴스에서 블로그 게시물에 이르기까지, 보다 사실적인 내레이션을 진행하며, The Globe and Mail과 같은 고객은 지금도 이미 사용하고 있습니다. Polly와 뉴스캐스터 스타일을 통해 독자(아니, 이제는 청취자라고 해야 할까요?)는 TV나 라디오에서 들을 수 있는 법만 고품질 음성으로 기사를 즐길 수 있습니다. Amazon Translate 서비스를 추가하여, 독자가 이해하는 언어로 자동 번역된 기사를 들을 수도 있습니다.
현재, 뉴스캐스터 스타일은 실시간 및 배치 모드 모두로 두 가지 미국식 영어 음성(Joanna 및 Matthew)으로 이용할 수 있습니다. 그리고 앞서 말한 대로, AWS 콘솔에서 빠른 테스트를 시행할 수도 있습니다. 여기에서는 위와 동일한 클립도 뉴스캐스터 스타일로 제공합니다.
Polly API를 NTTS 음성 및 뉴스캐스터 스타일과 함께 사용하는 작업은 정말 쉽습니다. 둘 다 어떻게 시작하는지 보여드리겠습니다.
신규 기능 사용해 보기
Polly에서 읽을 짧은 텍스트를 가져왔습니다. 2006년 Amazon Simple Storage Service(S3)의 발표에서 다음 단락을 발췌하였습니다.
“Earlier today we rolled out Amazon S3, our reliable, highly scalable, and low-latency data storage service. Using SOAP and REST interfaces, developers can easily store any number of blocks of data in S3. Each block can be up to 5 GB in length, and is associated with a user-defined key and additional key-value metadata pairs. Further, each block is protected by an ACL (Access Control List) allowing the developer to keep the data private, share it for reading, or share it for reading and writing, as desired. The system was designed to provide a data availability factor of 99.99%; all data is transparently stored in multiple locations”.
S3에서 사운드 파일을 저장하기 위해 배치 모드를 사용합니다. 이제 텍스트를 가져옵니다. 텍스트를 공개적으로 이용할 수 있도록 명시적으로 권한을 변경했습니다. 하지만 걱정하지 마십시오. 여러분의 파일은 기본적으로 비공개 상태입니다.
먼저, 표준 Matthew 음성을 이용합니다.
$ aws polly start-speech-synthesis-task
--voice-id Matthew --text file://s3.txt
--output-s3-bucket-name "jsimon-polly" --output-format mp3
--query "SynthesisTask.TaskId"
"e3db409c-419d-4a31-a3a7-72c1e712fe23"
$ wget https://xxxx/e3db409c-419d-4a31-a3a7-72c1e712fe23.mp3 -O matthew-standard.mp3
S3에 대해 알려주세요, Matthew.
이제 동일한 음성의 NTTS 버전을 사용합니다. ‘engine‘ 파라미터를 ‘neural‘로 설정하기만 하면 됩니다.
$ aws polly start-speech-synthesis-task
--voice-id Matthew --engine neural --text file://s3.txt
--output-s3-bucket-name "jsimon-polly" --output-format mp3
--query "SynthesisTask.TaskId"
"e3902335-c1e6-450b-b6e9-f913d6d52055"
$ wget https://xxxx/e3902335-c1e6-450b-b6e9-f913d6d52055.mp3 -O matthew-neural.mp3
NTTS에서의 품질 향상을 바로 알아차릴 수 있을 것입니다. 물론, Polly에서 기술적 약어, 숫자 등을 올바르게 선택했습니다.
이제 조금 특성을 더해 뉴스캐스터 스타일을 적용해봅니다. 그러려면 SSML 마크업 언어를 사용해야 합니다. 다음과 같이 텍스트를 묶어주기만 하면 됩니다.
<speak>
<amazon:domain name="news">
Earlier today we rolled out Amazon S3, our reliable, highly scalable, and low-latency data storage service. Using SOAP and REST interfaces, developers can easily store any number of blocks of data in S3. Each block can be up to 5 GB in length, and is associated with a user-defined key and additional key-value metadata pairs. Further, each block is protected by an ACL (Access Control List) allowing the developer to keep the data private, share it for reading, or share it for reading and writing, as desired. The system was designed to provide a data availability factor of 99.99%; all data is transparently stored in multiple locations.
</amazon:domain>
</speak>
이제 이 텍스트를 다시 합성하여 텍스트 유형을 SSML로 설정합니다.
$ aws polly start-speech-synthesis-task
--voice-id Matthew --engine neural
--text file://s3.ssml --text-type ssml
--output-s3-bucket-name "jsimon-polly" --output-format mp3
--query "SynthesisTask.TaskId"
"25c18bda-b32b-4485-a45f-eb9b757a513b"
$ wget https://xxxx/25c18bda-b32b-4485-a45f-eb9b757a513b.mp3 -O matthew-neural-newscaster.mp3
확실히 차이를 아시겠지요! 뉴스 아나운서가 텍스트를 읽는 것처럼 들리지 않나요? Joanna 음성도 궁금하다면 표준, 신경망 및 뉴스캐스터 스타일이 적용된 신경망과 같은 동일한 클립을 확인해보십시오.
정식 출시
본 기능은 현재 미국 동부(버지니아 북부), 미국 서부(오레곤) 및 EU(아일랜드)에서 사용 가능합니다. 무료 티어에서는 처음 음성(표준 또는 NTTS)을 요청한 시점부터 처음 12개월 동안 매월 NTTS 음성, 1백만 자를 제공합니다.
여러분의 피드백을 기다리겠습니다! AWS 포럼에 Polly에 대한 의견을 올려주십시오.
— Julien