신경 TTS - Amazon Polly

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

신경 TTS

Amazon Polly에는 표준 음성보다 자연스러운 음성을 낼 수 있는 NTTS(신경 TTS) 시스템이 있습니다. NTTS 시스템은 가능한 가장 자연스럽고 인간과 유사한 text-to-speech 음성을 생성합니다.

표준 TTS 음성은 연결 합성을 사용합니다. 이 방법은 녹음된 스피치의 음소를 서로 연결하여 매우 자연스럽게 들리도록 합성된 스피치를 만들어 냅니다. 하지만 말은 변형될 수밖에 없고 파형 분절에 사용되는 기술로 인해 스피치 품질이 제한됩니다.

Amazon Polly 신경 TTS 시스템은 스피치를 생성하기 위해 표준 연결 합성을 사용하지 않으며, 다음 두 부분으로 이루어져 있습니다.

  • 연속된 음소(언어의 가장 기본적인 단위)를 연속된 스펙트로그램으로 변환하는 신경망. 스펙트로그램은 다양한 주파수 대역의 에너지 레벨을 나타내는 스냅샷입니다.

  • 스펙트로그램을 연속된 오디오 신호로 변환하는 보코더

신경 TTS 시스템의 첫 번째 구성 요소는 모델입니다. sequence-to-sequence 이 모델은 해당하는 입력에서만 결과를 만들 뿐만 아니라 입력 요소의 시퀀스가 함께 작동하는 방식도 고려합니다. 모델이 출력되는 스펙트로그램을 선택하면 주파수 대역이 사람의 뇌가 말을 처리할 때 사용하는 음향 기능을 강조합니다.

그런 다음 이 모델의 출력이 신경 보코더로 전달되고 스펙트로그램이 스피치 파형으로 변환됩니다. 범용 연쇄 합성 시스템을 구축하는 데 사용되는 대규모 데이터 세트를 기반으로 학습하면 이 sequence-to-sequence 접근 방식을 통해 고품질의 자연스러운 음성을 얻을 수 있습니다.

아드리아노 (이탈리아어), 안드레스 (멕시코 스페인어), 아리아 (뉴질랜드 영어), 아를레 (카탈로니아어), 아서 (영국 영어), 아얀다 (남아프리카 영어), 부르쿠 (터키어), 다니엘 (독일어), 다니엘 (미국 영어), 엘린 (스웨덴어), 가브리엘 (캐나다 프랑스어), 그레고리 (미국 영어), 할라 (아랍어, 걸프), Hannah (오스트리아 독일어), 히우진 (광둥어), 아이다 (노르웨이어), 이사벨 (벨기에 프랑스어), 카잘 (힌디어 및 인도 영어), 카즈하 (일본어), 케빈 (미국 영어), 로라 (네덜란드어), 리암 (캐나다 프랑스어), 리사 (벨기에 네덜란드어), 니암 (아일랜드어 영어), 올라 (폴란드어), 올리비아 (호주 영어), 페드로 (미국 스페인어), 레미 (프랑스어), 루스 (미국 영어), 세르지오 (카스티야 스페인어), 소피 (덴마크어), 스티븐 (미국 영어), 수비 (핀란드어), 티아고 (브라질 포르투갈어), 토모코 (일본어) 및 자이드 (걸프 아랍어) 음성은 NTLy를 사용할 때 Amazon Polly에서만 지원됩니다. TS. 다른 모든 음성에는 표준 TTS를 사용하여 만든 음성이 있습니다. NTTS 전용 음성을 사용하는 경우 콘솔을 사용하든 API를 사용하든 TTS 엔진 파라미터를 neural(으)로 설정해야 합니다.

기능 및 리전 호환성

뉴럴 보이스는 모든 AWS 지역에서 사용할 수 없으며 모든 Amazon Polly 기능을 지원하지도 않습니다.

신경 음성이 지원되는 리전은 다음과 같습니다.

  • 미국 동부(버지니아 북부): us-east-1

  • 미국 서부(오레곤): us-west-2

  • 아프리카(케이프타운): af-south-1

  • 아시아 태평양(도쿄): ap-northeast-1

  • 아시아 태평양(서울): ap-northeast-2

  • 아시아 태평양(오사카): ap-northeast-3

  • 아시아 태평양(뭄바이): ap-south-1

  • 아시아 태평양(싱가포르): ap-southeast-1

  • 아시아 태평양(시드니): ap-southeast-2

  • 캐나다(중부): ca-central-1

  • 유럽(프랑크푸르트): eu-central-1

  • 유럽(아일랜드): eu-west-1

  • 유럽(런던): eu-west-2

  • 유럽(파리): eu-west-3

  • AWS GovCloud (미국 서부): -1 us-gov-west

이 리전의 엔드포인트와 프로토콜은 표준 음성에 사용되는 것과 같습니다. 자세한 내용은 Amazon Polly 엔드포인트 및 할당량을 참조하세요.

신경 음성에 지원되는 기능은 다음과 같습니다.

  • 실시간 및 비동기 스피치 합성 작업

  • 뉴스 진행자 말투입니다. 진행자 말투에 대한 자세한 내용은 NTTS 뉴스 진행자 스타일을(를) 참조하세요.

  • 모든 스피치 마크입니다.

  • Amazon Polly에서 지원하는 상당수의(전부 아님) SSML 태그입니다. NTTS를 지원하는 SSML 태그에 대한 자세한 내용은 지원되는 SSML 태그을(를) 참조하세요.

표준 음성의 경우와 마찬가지로, 다양한 샘플링 속도 중에서 선택하여 애플리케이션의 대역폭과 오디오 품질을 최적화할 수 있습니다. 표준 음성과 신경 음성에 맞는 샘플링 속도는 8kHz, 16kHz, 22kHz 또는 24kHz입니다. 표준 음성의 기본값은 22kHz이고 신경 음성의 기본값은 24kHz입니다. Amazon Polly는 MP3, OGG(Vorbis) 및 원시 PCM 오디오 스트림 형식을 지원합니다.

음성 엔진

Amazon Polly에서는 신경 또는 표준 음성을 engine 속성과 함께 사용할 수 있습니다. 가능한 값은 표준, 롱폼 또는 신경망 세 가지입니다. 표준이 기본값입니다.

중요

NTTS가 지원되는 리전 중 하나에 있지 않는 경우 표준 음성 엔진만 콘솔에 표시됩니다. 신경 엔진이 표시되지 않으면 해당 리전을 확인하세요. NTTS를 사용할 수 있는 리전에 대한 자세한 내용은 기능 및 리전 호환성을(를) 참조하세요.

NTTS 전용 음성을 사용하는 경우 콘솔을 사용하든 API를 사용하든 TTS 엔진 파라미터를 neural(으)로 설정해야 합니다.

음성 엔진 선택(콘솔)

음성 엔진을 선택하려면(콘솔)
  1. https://console.aws.amazon.com/polly/에서 Amazon Polly 콘솔을 엽니다.

  2. 텍스트 투 스피치 페이지에서 엔진표준, 롱폼 또는 신경망으로 선택합니다.

    신경을 선택하면 신경 음성만 사용할 수 있으며 표준 전용 음성은 비활성화됩니다.

음성 엔진 선택(CLI)

음성 엔진을 선택하려면(CLI)

engine 파라미터는 옵션이며 가능한 값은 standard, Long Form 또는 Neural 세 가지입니다. SynthesisSynthesisTask 작업을 만들 때 이 속성을 사용하세요.

예를 들어, 다음 코드를 사용하여 미국 서부-2 (오레곤) 지역에서 start-speech-synthesis-task AWS CLI 명령을 실행할 수 있습니다.

다음 AWS CLI 예제는 유닉스, 리눅스, macOS용으로 포맷되었습니다. Windows의 경우 각 줄 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다. 입력 텍스트는 큰 따옴표(")로 감싸고 내부 태그에는 작은 따옴표(')를 사용합니다.

aws polly start-speech-synthesis-task \ --engine neural --region us-west-2 \ --endpoint-url "https://polly.us-west-1.amazonaws.com/" \ --output-format mp3 \ --output-s3-bucket-name your-bucket-name \ --output-s3-key-prefix optional/prefix/path/file \ --voice-id Joanna \ --text file://text_file.txt

이렇게 하면 다음과 비슷한 모양의 응답이 생성됩니다.

"SynthesisTask": { "CreationTime": [..], "Engine": "neural", "OutputFormat": "mp3", "OutputUri": "https://s3.us-west-1.amazonaws.com/your-bucket-name/optional/prefix/path/file.<task_id>.mp3", "TextType": "text", "RequestCharacters": [..], "TaskStatus": "scheduled", "TaskId": [task_id], "VoiceId": "Joanna" }