SSML(AWS CLI) 사용 - Amazon Polly

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

SSML(AWS CLI) 사용

AWS CLI을(를) 사용하여 SSML 입력 텍스트를 합성할 수 있습니다. 다음 예제는 AWS CLI을(를) 사용하여 일반적인 작업을 수행하는 방법을 보여줍니다.

Synthesize-Speech 명령을 통한 SSML 사용

이 예에서는 synthesize-speech 명령을 SSML 문자열과 함께 사용하는 방법을 보여줍니다. synthesize-speech 명령을 사용하는 경우 사용자는 일반적으로 다음 사항을 제공합니다.

  • 입력 텍스트(필수)

  • 태그 열기 및 닫기(필수)

  • 출력 형식

  • 음성

이 예에서는 필요한 열기 및 닫기 <speak></speak> 태그와 함께 따옴표로 묶여 있는 간단한 문자열을 지정합니다.

중요

Amazon Polly 콘솔에서 입력 텍스트 주위에 따옴표를 사용하지 않더라도 AWS CLI을(를) 사용하는 경우 반드시 따옴표를 사용해야 합니다. 입력 텍스트를 둘러싸는 따옴표와 각 태그에 필요한 따옴표를 구별하는 것 또한 중요합니다.

예를 들어, 입력 텍스트 주위에는 표준 따옴표(")를 사용하고 내부 태그에는 작은 따옴표(')를 사용할 수 있으며, 그 반대로도 사용할 수 있습니다. 두 옵션 모두 Unix, Linux 및 macOS에 사용됩니다. 그러나 Windows에서는 입력 텍스트 주위에 표준 따옴표(")를 사용하고 태그에는 작은 따옴표(')를 사용해야 합니다.

모든 운영 체제에서, 입력 텍스트 주위에는 표준 따옴표(")를 사용하고 내부 태그에는 작은 따옴표(')를 사용할 수 있습니다. 예:

--text "<speak>Hello <break time='300ms'/> World</speak>"

Unix, Linux 및 macOS에서는 그 반대로 입력 텍스트 주위에 작은 따옴표(')를 사용하고 내부 태그에는 표준 따옴표(")를 사용할 수도 있습니다.

--text '<speak>Hello <break time="300ms"/> World</speak>'

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

aws polly synthesize-speech \ --text-type ssml \ --text '<speak>Hello world</speak>' \ --output-format mp3 \ --voice-id Joanna \ speech.mp3

합성된 스피치를 들으려면 어떤 종류로든 오디오 플레이어를 사용하여 speech.mp3 결과 파일을 재생합니다.

SSML로 확장된 문서 합성

비교적 긴 입력 텍스트에 대해서는 SSML 콘텐츠를 파일에 저장하고 synthesize-speech 명령에 파일 이름을 지정하는 단순한 방법이 편하게 느껴질 수 있습니다. 예를 들어 다음 사항을 파일 이름이 example.xml인 파일에 저장할 수 있습니다.

<?xml version="1.0"?> <speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis11/synthesis.xsd" xml:lang="en-US">Hello World</speak>

xml:lang 속성은 en-US(미국 영어)를 입력 텍스트의 언어로 지정합니다. 입력 텍스트의 언어와 선택한 음성의 언어가 SynthesizeSpeech 작업에 미치는 영향에 대한 자세한 내용은 외국어 단어의 발음 개선을 참조하세요.

SSML로 확장된 파일을 실행하려면
  1. SSML을 파일(예: example.xml)에 저장합니다.

  2. XML 파일이 저장된 경로에서 다음 synthesize-speech 명령을 실행하고 입력 데이터를 file:\\example.xml로 대체하여 SSML 파일을 입력으로 지정합니다. 이 명령은 실제의 입력 텍스트를 포함하는 대신 파일을 지정하므로 따옴표를 사용하지 않습니다.

    참고

    다음은 Unix, Linux, macOS용 형식으로 지정된 AWS CLI 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

    aws polly synthesize-speech \ --text-type ssml \ --text file://example.xml \ --output-format mp3 \ --voice-id Joanna \ speech.mp3
  3. 합성된 스피치를 들으려면 어떤 종류로든 오디오 플레이어를 사용하여 speech.mp3 결과 파일을 재생합니다.

일반 Amazon Polly 작업에서 SSML 사용

다음 예에서는 SSML 태그를 사용하여 일반적인 Amazon Polly 작업을 완료하는 방법을 보여줍니다. SSML 태그에 대한 자세한 내용은 지원되는 SSML 태그을(를) 참조하세요.

다음 예를 테스트하려면 SSML로 확장된 적절한 텍스트로 다음 synthesize-speech 명령을 사용합니다.

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

aws polly synthesize-speech \ --text-type ssml \ --text '<speak>Hello <break time="300ms"/> World</speak>' \ --output-format mp3 \ --voice-id Joanna \ speech.mp3

일시 중지 추가

단어 사이에 일시 중지를 추가하려면 <break> 요소를 사용합니다. 다음 SSML synthesize-speech 명령은 <break> 요소를 사용하여 "Hello"와 "World" 단어 사이에 300밀리초 지연을 추가합니다.

<speak> Hello <break time="300ms"/> World. </speak>

볼륨, 피치 및 속도 제어

피치, 말하기 속도 및 스피치 볼륨을 제어하려면 <prosody> 요소를 사용합니다.

  • 다음 synthesize-speech 명령은 <prosody> 요소를 사용하여 볼륨을 제어합니다.

    <speak> <prosody volume="+20dB">Hello world</prosody> </speak>
  • 다음 synthesize-speech 명령은 <prosody> 요소를 사용하여 피치를 제어합니다.

    <speak> <prosody pitch="x-high">Hello world.</prosody> </speak>
  • 다음 synthesize-speech 명령은 <prosody> 요소를 사용하여 스피치 속도(말하기 속도)를 지정합니다.

    <speak> <prosody rate="x-fast">Hello world.</prosody> </speak>
  • 다음 예와 같이 <prosody> 요소에서 속성을 여러 개 지정할 수 있습니다.

    <speak> <prosody volume="x-loud" pitch="x-high" rate="x-fast">Hello world.</prosody> </speak>

속삭임 기능

단어를 속삭이려면 <amazon:effect name="whispered"> 요소를 사용합니다. 다음 예에서는 <amazon:effect name="whispered"> 요소가 Amazon Polly에 "little lamb"을 속삭이도록 지시합니다.

<speak> Mary has a <amazon:effect name="whispered">little lamb.</amazon:effect> </speak>

이 효과를 확장시키려면 <prosody> 요소를 사용하여 속삭이는 스피치의 속도를 약간 늦춥니다.

단어 강조

단어 또는 구절을 강조하려면 <emphasis> 요소를 사용합니다.

<speak> <emphasis level="strong">Hello</emphasis> world how are you? </speak>

특정 단어를 말하는 방식 지정

말할 텍스트의 유형에 대한 정보를 제공하려면 <say-as> 요소를 사용합니다.

예를 들어 다음 SSML에서는 <say-as>가 텍스트 4/6이 날짜로 해석되어야 함을 나타냅니다. 속성 interpret-as="date" format="dm"는 텍스트 4/6이 월/일 형식의 날짜로 말해져야 함을 나타냅니다.

또한 <say-as> 요소를 사용하여 Amazon Polly에 숫자를 분수, 전화번호, 측정 단위 등으로 말하도록 지시할 수도 있습니다.

<speak> Today is <say-as interpret-as="date" format="md" >4/6</say-as> </speak>

결과 스피치는 "Today is June 4th"입니다. <say-as> 태그는 interpret-as 속성을 통해 추가 컨텍스트를 제공하여 텍스트가 해석되어질 방식을 설명합니다.

합성된 스피치의 정확성을 확인하려면 speech.mp3 결과 파일을 재생합니다.

이 요소에 대한 자세한 내용은 특별한 유형의 단어를 말하는 방식 제어 을(를) 참조하세요.

외국어 단어의 발음 개선

Amazon Polly는 입력 텍스트가 사용자가 선택한 음성으로 말해지는 언어와 동일한 언어라고 가정합니다. 입력 텍스트 내의 외국어 단어의 발음을 개선하려면 synthesize-speech 호출에서 xml:lang 속성을 통해 대상 언어를 지정합니다. 이렇게 하면 Amazon Polly에 사용자가 태그한 외국어 단어에 다른 발음 규칙을 적용하도록 지시합니다.

다음 예에서는 입력 텍스트에서 다양한 언어 조합을 사용하는 방법과 외국어 단어에 음성 및 발음을 지정하는 방법을 보여줍니다. 사용 가능한 언어에 대한 전체 목록은 Amazon Polly에서 지원하는 언어을(를) 참조하세요.

다음 예에서 선택된 음성(Joanna)은 미국 영어 음성입니다. 기본적으로 Amazon Polly는 입력 텍스트가 해당 음성(이 경우 미국 영어)과 동일한 언어라고 가정합니다. xml:lang 태그를 사용하면 Amazon Polly가 텍스트를 스페인어로 해석하여 해당 텍스트를 해당 외국어의 발음 규칙에 따라 선택된 음성이 스페인어 단어를 발음하는 방식으로 읽습니다. 이 태그가 없으면 텍스트를 선택된 음성의 발음 규칙을 사용해 읽습니다.

<speak> That restaurant is terrific. <lang xml:lang="es-ES">Mucho gusto.</lang> </speak>

입력 텍스트의 언어가 영어이므로 Amazon Polly는 스페인어 음소를 음향 거리가 가장 가까운 영어 음소로 매핑합니다. 결과적으로, Joanna는 스페인어로 정확히 발음할 줄 아는 미국 원어민으로서 해당 텍스트를 읽지만 미국 영어 억양으로 읽게 됩니다.

참고

일부 언어들은 다른 언어들에 비해 서로 간에 더 큰 유사성을 지니므로 그러한 언어들의 조합은 다른 조합에 비해 더 좋은 결과를 만들어냅니다.