

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 上傳語彙
<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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/) 的 Amazon Polly 主控台。

1. 選擇 **Lexicons** (語彙) 索引標籤。

1. 選擇**上傳語彙**。

1. 提供語彙的名稱，然後使用**選擇語彙檔案**來尋找要上傳的語彙。您只能上傳副檔名為 .pls 或 .xml 的 PLS 檔案。

1. 選擇**上傳語彙**。如果同名語彙 （無論是 .pls 或 .xml 檔案） 已存在，上傳語彙會覆寫現有的語彙。

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

**從text-to-Speech索引標籤新增語彙**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/) 的 Amazon Polly 主控台。

1. 選擇 **Text-to-Speech** (文字轉換語音) 索引標籤。

1. 展開**其他設定**，開啟**自訂發音，**然後選擇**上傳語彙**。

1. 提供語彙的名稱，然後使用**選擇語彙檔案**來尋找要上傳的語彙。您只能將 PLS 檔案與 .pls 或 .xml 副檔名搭配使用。

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 是撰寫發音的字母之一。Amazon Polly 也支援拓展語音評估方法音標字母 (X-SAMPA)。

     
+ `<lexeme>` 元素描述 `<grapheme>` (也就是單字的文字表示) 和 `<alias>` 之間的映射。

要測試此語彙，請依下列步驟執行：

1. 將語彙儲存為 `example.pls`。

1. 執行 `put-lexicon` AWS CLI 命令，將語彙 （名稱為 `w3c`) 存放在 us-east-2 區域中。

   ```
   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 字母。以下語彙指定使用 `<phoneme>` 元素與 IPA 字母的語音發音。

```
<?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 很可口」)。

如需 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)

------