

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

# 어휘 업로드
<a name="managing-lexicons-console-upload"></a>

사용하는 어휘는 발음 어휘 사양(PLS) W3C 권장 사항을 준수해야 합니다. 자세한 내용은 W3C 웹 사이트의 [발음 어휘 사양(PLS) 버전 1.0](https://www.w3.org/TR/pronunciation-lexicon/#S4.7)을 참조하세요.

------
#### [ Console - Lexicons tab ]

발음 어휘를 사용하려면 먼저 업로드해야 합니다. 콘솔에는 어휘를 업로드할 수 있는 두 개의 위치가 있는데 이들은 **텍스트 투 스피치** 탭과 **어휘** 탭입니다.

다음 프로세스는 선택한 언어에서 자주 사용되지 않는 단어와 구문의 발음 방식을 사용자 지정할 때 사용할 수 있는 어휘를 추가하는 방법을 설명합니다.<a name="upload-lexicon-lexicons-tab"></a>

**어휘 탭에서 어휘 추가**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/)에서 Amazon Polly 콘솔을 엽니다.

1. **어휘** 탭을 선택합니다.

1. **어휘 업로드**를 선택합니다.

1. 어휘 이름을 입력한 후 **어휘 파일 선택**을 사용하여 업로드할 어휘를 찾습니다. 확장자가 .pls 또는 .xml인 PLS 파일만 업로드할 수 있습니다.

1. **어휘 업로드**를 선택합니다. 같은 이름의 어휘(.pls 또는 .xml 파일)가 이미 있는 경우 어휘를 업로드하면 기존 어휘를 덮어씁니다.

------
#### [ Console - TTS tab ]<a name="upload-lexicon-tts-tab"></a>

**텍스트 투 스피치 탭에서 어휘를 추가하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/)에서 Amazon Polly 콘솔을 엽니다.

1. **텍스트 투 스피치** 탭을 선택합니다.

1. **추가 설정**을 확장하고 **발음 사용자 지정**을 켠 후 **어휘 업로드**를 선택합니다.

1. 어휘 이름을 입력한 후 **어휘 파일 선택**을 사용하여 업로드할 어휘를 찾습니다. 확장자가 .pls 또는 .xml인 PLS 파일만 사용할 수 있습니다.

1. **어휘 업로드**를 선택합니다. 이름이 같은 어휘(.pls 또는 .xml 파일)가 이미 있는 경우 어휘를 업로드하면 기존 어휘를 덮어씁니다.

------
#### [ AWS CLI - one lexeme ]

Amazon Polly를 통해 [PutLexicon](API_PutLexicon.md)을 사용하여 계정의 특정 AWS 리전에 발음 어휘를 저장할 수 있습니다. 이렇게 하면 서비스에서 텍스트 합성을 시작하기 전에 적용하려는 저장된 어휘를 [SynthesizeSpeech](API_SynthesizeSpeech.md) 요청에 하나 이상 지정할 수 있습니다. 자세한 내용은 [어휘 관리](managing-lexicons.md) 섹션을 참조하세요.

다음과 같은 W3C PLS 준수 어휘를 고려해 보세요.

```
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0" 
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon 
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" 
      xml:lang="en-US">
  <lexeme>
    <grapheme>W3C</grapheme>
    <alias>World Wide Web Consortium</alias>
  </lexeme>
</lexicon>
```

다음 사항에 유의하세요.
+ `<lexicon>` 요소에 지정된 두 가지 속성:
  + `xml:lang` 속성은 어휘가 적용되는 언어 코드와 `en-US`를 지정합니다. `SynthesizeSpeech` 호출에서 지정한 음성과 동일한 언어 코드(en-US)가 있는 경우 Amazon Polly에서 이 예제 어휘를 사용할 수 있습니다.
**참고**  
`DescribeVoices` 작업을 사용하여 음성과 관련된 언어 코드를 찾을 수 있습니다.

     
  + `alphabet` 속성은 `IPA`를 지정합니다. 이는 발음에 국제 발음기호(IPA) 알파벳을 사용한다는 뜻입니다. IPA는 발음을 표기하기 위한 알파벳입니다. Amazon Polly는 확장 음성 평가 방법 발음기호(X-SAMPA)도 지원합니다.

     
+ `<lexeme>` 요소는 `<grapheme>`(즉, 단어의 텍스트 표현)와 `<alias>` 사이의 매핑을 설명합니다. 

이 어휘를 테스트하려면 다음을 수행합니다.

1. 어휘를 `example.pls`로 저장합니다.

1. `put-lexicon` AWS CLI 명령을 실행하여 us-east-2 리전에 어휘(이름: `w3c`)를 저장합니다.

   ```
   aws polly put-lexicon \
   --name w3c \
   --content file://example.pls
   ```

1. `synthesize-speech` 명령을 실행하여 샘플 텍스트를 오디오 스트림(`speech.mp3`)에 합성하고, 옵션으로 `lexicon-name` 파라미터를 지정합니다.

   ```
   aws polly synthesize-speech \
   --text 'W3C is a Consortium' \
   --voice-id Joanna \
   --output-format mp3 \
   --lexicon-names="w3c" \
   speech.mp3
   ```

1. 결과물 `speech.mp3`를 재생하면 텍스트의 W3C라는 단어가 월드 와이드 웹 컨소시엄으로 대체된 것을 확인할 수 있습니다.

위의 예제 어휘에서는 별칭을 사용합니다. 어휘에 언급된 IPA 알파벳은 사용되지 않습니다. 다음 어휘는 IPA 알파벳이 있는 `<phoneme>` 요소를 사용하여 표기 발음을 지정합니다.

```
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0" 
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon 
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" 
      xml:lang="en-US">
  <lexeme>
    <grapheme>pecan</grapheme>
    <phoneme>pɪˈkɑːn</phoneme>
  </lexeme>
</lexicon>
```

동일한 단계를 수행하여 이 어휘를 테스트합니다. “pecan”이라는 단어가 포함된 입력 텍스트(예: “Pecan pie is delicious”)를 지정합니다.

PutLexicon API 작업에 대한 추가 코드 샘플은 다음 리소스를 참조하세요.
+ Java 샘플: [PutLexicon](PutLexiconSample.md)
+ Python(Boto3) 샘플: [PutLexicon](PutLexiconSamplePython.md)

------
#### [ AWS CLI - multiple lexemes ]

Amazon Polly를 통해 [PutLexicon](API_PutLexicon.md)을 사용하여 계정의 특정 AWS 리전에 발음 어휘를 저장할 수 있습니다. 이렇게 하면 서비스에서 텍스트 합성을 시작하기 전에 적용하려는 저장된 어휘를 [SynthesizeSpeech](API_SynthesizeSpeech.md) 요청에 하나 이상 지정할 수 있습니다. 자세한 내용은 [어휘 관리](managing-lexicons.md) 섹션을 참조하세요.

이 예제에서 어휘를 통해 지정하는 어휘소는 합성을 위한 입력 텍스트에만 적용됩니다. 다음 어휘소를 고려해 보세요.

```
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" xml:lang="en-US">

  <lexeme> 
    <grapheme>W3C</grapheme>
    <alias>World Wide Web Consortium</alias>
  </lexeme>
  <lexeme> 
    <grapheme>W3C</grapheme>
    <alias>WWW Consortium</alias>
  </lexeme>
  <lexeme> 
    <grapheme>Consortium</grapheme>
    <alias>Community</alias>
  </lexeme>
</lexicon>
```

어휘에는 세 개의 어휘소가 지정되며, 그 중 두 개의 어휘소는 다음과 같이 W3C 자소의 별칭을 정의합니다.
+ 첫 번째 `<lexeme`> 요소는 별칭(월드 와이드 웹 컨소시엄)을 정의합니다.
+ 두 번째 `<lexeme>`는 대체 별칭(WWW 컨소시엄)을 정의합니다.

Amazon Polly는 어휘의 특정 자소를 첫 번째 대체어로 대체합니다.

세 번째 `<lexeme>`는 컨소시엄이라는 단어의 대체어(커뮤니티)를 정의합니다.

먼저 이 어휘를 테스트해 보겠습니다. 다음 샘플 텍스트를 오디오 파일(`speech.mp3`)에 합성하고 `SynthesizeSpeech`를 호출할 때 어휘를 지정한다고 가정해 보겠습니다.

```
The W3C is a Consortium
```

`SynthesizeSpeech`는 먼저 다음과 같이 어휘를 적용합니다.
+ 첫 번째 어휘소에 따라 W3C라는 단어를 월드 와이드 웹 컨소시엄으로 수정합니다. 수정된 텍스트는 다음과 같이 나타납니다.

  ```
  The World Wide Web Consortium is a Consortium
  ```
+ 세 번째 어휘소에 정의된 별칭은 원본 텍스트의 일부인 컨소시엄이라는 단어에만 적용되며, 그 결과 다음과 같은 텍스트가 나타납니다.

  ```
  The World Wide Web Consortium is a Community.
  ```

다음과 같이 AWS CLI를 사용하여 이를 테스트할 수 있습니다.

1. 어휘를 `example.pls`로 저장합니다.

1. `put-lexicon` 명령을 실행하여 이름이 w3c인 어휘를 us-east-2 리전에 저장합니다.

   ```
   aws polly put-lexicon \
   --name w3c \
   --content file://example.pls
   ```

1. `list-lexicons` 명령을 실행하여 w3c 어휘가 반환된 어휘 목록에 있는지 확인합니다.

   ```
   aws polly list-lexicons
   ```

1. `synthesize-speech` 명령을 실행하여 샘플 텍스트를 오디오 파일(`speech.mp3`)에 합성하고 옵션으로 `lexicon-name` 파라미터를 지정합니다.

   ```
   aws polly synthesize-speech \
   --text 'W3C is a Consortium' \
   --voice-id Joanna \
   --output-format mp3 \
   --lexicon-names="w3c" \
   speech.mp3
   ```

1. 결과물인 `speech.mp3` 파일을 재생하여 합성된 음성에 변경된 텍스트가 적용되는지 확인합니다.

PutLexicon API 작업에 대한 추가 코드 샘플은 다음 리소스를 참조하세요.
+ Java 샘플: [PutLexicon](PutLexiconSample.md)
+ Python(Boto3) 샘플: [PutLexicon](PutLexiconSamplePython.md)

------