Amazon Polly - 開發人員指南

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Amazon Polly - 開發人員指南"

Transcription

1 Amzon Polly 開發人員指南

2 Amzon Polly: 開發人員指南 Coyrgh 2019 Amzon Web Servce, Inc. nd/or le. All rgh reerved. Amzon' rdemr nd rde dre my no be ed n connecon wh ny rodc or ervce h no Amzon', n ny mnner h lely o ce conon mong comer, or n ny mnner h drge or dcred Amzon. All oher rdemr no owned by Amzon re he roery o her reecve owner, who my or my no be led wh, conneced o, or onored by Amzon.

3 Tble o Conen 什麼是 Amzon Polly... 1 您第一次使用 Amzon Polly 嗎... 1 運作方式... 2 後續步驟... 2 開始使用... 3 步驟 1 設定帳戶和使用者... 3 步驟 1.1 註冊 AWS... 3 步驟 1.2 建立 IAM 使用者... 3 下一個步驟... 4 步驟 2 開始使用 (主控台)... 4 練習 1 合成語音快速入門 (主控台)... 4 練習 2 使用純文字輸入合成語音 (主控台)... 5 後續步驟... 5 步驟 3 開始使用 (AWS CLI)... 5 步驟 3.1 設定AWS CLI... 6 步驟 3.2 入門練習... 7 Pyhon 範例... 8 設定 Pyhon 並測試範例 (SDK)... 8 語音 Amzon Polly 可用語音 雙語的語音 聆聽語音 語音速度 變更您的語速 Amzon Polly 支援的語言 適用於支援語言的音素和視素表 神經 TTS 功能和區域相容性 語音引擎 選擇語音引擎 (主控台) 選擇語音引擎 (CLI) 神經語音 NTTS 新聞播報員風格 使用新聞播報員風格 語音標記 語音標記類型 Veme 和 Amzon Polly 使用語音標記 請求語音標記 語音標記輸出 語音標記範例 請求語音標記 (主控台) 使用 SSML 保留字元 在主控台使用 SSML 在 AWS CLI 中使用 SSML 使用 SSML 搭配 Synheze-Seech 命令 合成 SSML 增強的文件 將 SSML 用於常見的 Amzon Polly 任務 支援的 SSML 標籤 識別 SSML 增強文字 加入停頓 強調文字 指定特定文字的其他語言... 87

4 在您的文字中放置自訂標籤 在段落之間加入停頓 使用音標發音 控制音量 說話速度和音調 設定合成語音的持續時間長度上限 在句子之間加入停頓 控制特殊字詞類型的口說方式 縮略詞和縮寫發音 指定部分語音來改進發音 加入呼吸聲 新聞播報員說話風格 加入動態範圍壓縮 輕聲說話 控制音色 輕聲低語 管理語彙 套用多個語彙 使用主控台管理語彙 使用主控台上傳語彙 使用主控台套用語彙 (合成語音) 使用主控台篩選語彙清單 使用主控台下載語彙 使用主控台刪除語彙 使用 AWS CLI 管理語彙 PLexcon GeLexcon LLexcon DeleeLexcon 建立長時間音訊檔案 設定非同步合成的 IAM 政策 建立長時間音訊檔案 (主控台) 建立長時間音訊檔案 (CLI) 程式碼和應用程式範例 範例程式碼 Jv 範例 Pyhon 範例 範例應用程式 Pyhon 範例 Jv 範例 OS 範例 Androd 範例 WordPre 外掛程式 設定外掛程式 建立許可政策 建立外掛程式的 IAM 使用者 安裝與設定外掛程式 自訂 WordPre 存放音訊檔案 限制 支援的區域 調節 發音語彙 SynhezeSeech API 操作 SeechSynheT API 作業 語音合成標記語言 (SSML) 使用 AWS ClodTrl 記錄 Amzon Polly API 呼叫 Amzon PollyClodTrl 中的資訊 v

5 範例 Amzon Polly 日誌檔案項目... ClodWch 整合... 取得 ClodWch 指標 (主控台)... 取得 ClodWch 指標 (CLI)... Amzon Polly 指標... Amzon Polly 指標的維度... API 參考... Acon... DeleeLexcon... DecrbeVoce... GeLexcon... GeSeechSynheT... LLexcon... LSeechSynheT... PLexcon... SrSeechSynheT... SynhezeSeech... D Tye... Lexcon... LexconArbe... LexconDecron... SynheT... Voce... 身份驗證與存取控制... Ahencon... 存取控制... 管理存取概觀... Amzon Polly 資源與操作... 了解資源所有權... 管理資源存取... 指定政策元素 動作 效果和委託人... 在政策中指定條件... 使用以身分為基礎的政策 (IAM 政策)... 使用 Amzon Polly 主控台所需的許可... Amzon Polly 的 AWS 受管 (預先定義) 政策... 客戶受管政策範例... Amzon Polly API 許可參考... 文件歷史記錄... AWS Glory... v

6 您第一次使用 Amzon Polly 嗎 什麼是 Amzon Polly Amzon Polly 是將文字轉換為接近真實語音的雲端服務 您可以使用 Amzon Polly 開發各種可提高參與度 和可用性的應用程式 Amzon Polly 支援多種語言且包含各種逼真的語音 因此您可以建置各種具備語音 功能的應用程式 這些應用程式可在多個位置運作 並針對您的客戶使用適當的語音 使用 Amzon Polly 時 您僅需按您合成的文字付費 您也可以快取及重播 Amzon Polly 產生的語音 無須支付額外費用 此外, Amzon Polly 包含一些神經文字轉語音 (NTTS) 音檔 透過新的機器學習方法提供突破性的語音品質 改善 進而為客戶提供最自然且最逼真的文字轉語音音檔 神經 TTS 技術也支援針對新聞旁白使用案例量身 打造新聞播報員說話風格 Amzon Polly 的常用案例包括 (但不限於) 行動應用程式 例如新聞閱讀程式 遊戲 電子學習平台 視障人 士適用的協助工具應用程式以及迅速成長的物聯網 (IoT) 區塊 Amzon Polly 已通過認證 可用於 1996 年健康保險流通與責任法案 (HIPAA) 和支付卡產業資料安全標準 (PCI DSS) 的受管制工作負載 使用 Amzon Polly 的若干優點包括 高品質 Amzon Polly 同時提供新的神經 TTS 和同級最佳的標準 TTS 技術 可合成優異的自然語音與高 發音準確性 (包括縮寫 縮略詞擴展 日期/時間解譯以及同形異義詞歧義消除) 低延遲 Amzon Polly 確保快速的回應時間 使其成為低延遲使用案例 (例如對話系統) 切實可行的選 項 支援大型的語言和語音組合 Amzon Polly 支援數十種語音語言 並提供大多數語言的男性及女性語音選 項 神經 TTS 目前支援三種英式英文語音和八種美式英文語音 隨著我們將更多神經語音上線 這個數字 也會持續增加 美式英文語音 Mhew 和 Jonn 也可以使用神經新聞播報員說話風格 與您聽到的專業 新聞主播的聲音類似 具有成本效益 Amzon Polly 的按用量付費模式表示沒有設定費用 您可以從較小用量起步 隨著應用程 式的成長進行擴增 以雲端為基礎的解決方案 裝置上的文字轉語音解決方案需要大量的運算資源 大量 CPU 功率 RAM 和 磁碟空間 這些不但導致開發成本提高 而且平板電腦與智慧型手機等裝置也會耗費更多電力 相較之 下 在雲端完成的文字轉語音轉換方式可大幅降低本機資源需求 這可支援在所有可用的語言和語音維 持在最佳品質 此外 您可即時針對所有終端使用者進行語音提升 不需為所有裝置進行額外更新就能完 成 您第一次使用 Amzon Polly 嗎 如果您是第一次使用 Amzon Polly 建議您依序閱讀以下章節 1. Amzon Polly 運作方式 (. 2) 此章節介紹各種用於建立端對端體驗的 Amzon Polly 輸入和選項 2. Amzon Polly 入門 (. 3) 本節說明如何設定您的帳戶和測試 Amzon Polly 語音合成 3. 範例應用程式 (. 128) 本節提供讓您可用於探索的額外範例 Amzon Polly 1

7 後續步驟 Amzon Polly 運作方式 Amzon Polly 將輸入文字轉換為接近真實的語音 您可以呼叫其中一種語音合成方法 提供您要合成的文 字 選擇其中一種神經文字轉語音 (NTTS) 或標準文字轉語音 (TTS) 的語音 然後指定音訊輸出格式 接 著 Amzon Polly 將您提供的文字合成為高品質的語音音訊串流 輸入文字 提供您想要合成的文字 Amzon Polly 會傳回音訊串流 您可以提供純文字或語音合成標記語 言 (SSML) 格式的輸入 您可以使用 SSML 控制語音的各方面 例如發音 音量 音調和語音速率 如需 更多詳細資訊 請參閱 從 SSML 文件產生語音 (. 78) 可用的語音 Amzon Polly 提供多種語言和各種語音 包括雙語語音 (英文和印地語) 對於大多數語言 而言 您可以從多種語音中選擇 包括男性與女性 您在啟動語音合成作業時指定語音 ID 名稱 然後 Amzon Polly 使用此語音將文字轉換為語音 Amzon Polly 不是翻譯服務 合成的語音是與文字相同的 語言 不過 如果文字與指定的語音是不同的的語言 則以數字表示的號碼 (例如 53 而不是五十三) 會以 語音的語言合成 而不是文字 如需詳細資訊 請參閱Amzon Polly 中的語音 輸出格式 Amzon Polly 可以提供多種格式的合成語音 您可以選擇符合您需求的音訊格式 例如 您 可以請求 MP3 或 Ogg Vorb 格式的語音 在 Web 和行動應用程式中使用 或者 您可以為 AWS IoT 裝 置和電話解決方案請求 PCM 輸出格式 後續步驟 如果您第一次使用 Amzon Polly 建議您依序閱讀以下主題 Amzon Polly 入門 (. 3) 範例應用程式 (. 128) Amzon Polly 中的限制 (. 152) 2

8 步驟 1 設定帳戶和使用者 Amzon Polly 入門 Amzon Polly 提供您可輕鬆與現有應用程式整合的簡易 API 操作 如需支援的操作清單 請參閱 Acon (. 159) 您可以使用下列任一選項 AWS 開發套件 當使用開發套件時 使用您提供的登入資料自動簽署和驗證您對 Amzon Polly 的請求 這是建置您的應用程式的建議選擇 AWS CLI 您可以使用 AWS CLI 來存取任何 Amzon Polly 功能 無需編寫任何程式碼 以下章節說明如何設定和提供入門的練習 主題 步驟 1 設定 AWS 帳戶並建立使用者 (. 3) 步驟 2 開始使用 (主控台) (. 4) 步驟 3 開始使用 (AWS CLI) (. 5) Pyhon 範例 (. 8) 步驟 1 設定 AWS 帳戶並建立使用者 初次使用 Amzon Polly 之前 請先完成以下作業 1. 步驟 1.1 註冊 AWS (. 3) 2. 步驟 1.2 建立 IAM 使用者 (. 3) 步驟 1.1 註冊 AWS 註冊 Amzon Web Servce (AWS) 時 會針對 AWS 中的所有服務 (包括 Amzon Polly) 自動註冊您的 AWS 帳戶 您只需針對所使用的服務付費 使用 Amzon Polly 時 您僅需為您使用的資源付費 如果您是 AWS 新客戶 可免費開始使用 Amzon Polly 如需詳細資訊 請參閱 AWS 免費用量方案 若您已擁有 AWS 帳戶 請跳至下一步驟 如果您沒有 AWS 帳戶 請執行下列程序中的步驟建立一個帳 戶 建立 AWS 帳戶 1. Oen h://orl.w.mzon.com/bllng/gn. 2. Follow he onlne nrcon. Pr o he gn- rocedre nvolve recevng hone cll nd enerng vercon code on he hone eyd. 請記下您的 AWS 帳戶 ID 因為下一個步驟會需要此 ID 步驟 1.2 建立 IAM 使用者 AWS 中的服務 (例如 Amzon Polly) 需要您在存取它們時提供登入資料 讓服務可以判斷您是否有權存 取該服務所擁有的資源 主控台需要您的密碼 您可以建立 AWS 帳戶的存取金鑰 用以存取 AWS CLI 3

9 下一個步驟 或 API 不過 不建議您使用 AWS 帳戶的登入資料來存取 AWS 建議您改用 AWS Ideny nd Acce Mngemen (IAM) 建立 IAM 使用者 並將使用者新增至具有管理許可的 IAM 群組 再將管理許可授予您 建立的 IAM 使用者 然後您就可以使用特殊的 URL 與該 IAM 使用者的登入資料存取 AWS 如果您已註冊 AWS 但是尚未為自己建立 IAM 使用者 可以使用 IAM 主控台加以建立 本指南中的練習假設您有具備管理員權限的使用者 (dmner) 請遵循程序在您的帳戶中建立 dmner 建立管理員使用者並登入主控台 1. 在您的 AWS 帳戶中建立一個名為 dmner 的管理員使用者 如需說明 請參閱 IAM Uer Gde 中 的建立您的第一個 IAM 使用者和管理員群組 2. 使用者可以使用特殊的 URL 登入 AWS Mngemen Conole 如需詳細資訊 請參閱 IAM Uer Gde 中的使用者如何登入您的帳戶 Imorn 入門練習使用管理員登入資料 為提高安全性 建置和測試生產應用程式時 建議您建立服務特定 的管理員使用者 其具有僅 Amzon Polly 動作的許可 如需授予 Amzon Polly 特定許可的範例政 策 請參閱範例 1 允許所有 Amzon Polly 動作 (. 201) For more normon bo IAM, ee he ollowng: AWS Ideny nd Acce Mngemen (IAM) Geng Sred IAM Uer Gde 下一個步驟 步驟 2 開始使用 (主控台) (. 4) 步驟 2 開始使用 (主控台) Amzon Polly主控台是開始測試和使用 Amzon Polly 的語音合成的最簡單方法Amzon Polly 主控台支援從 純文字或 SSML 輸入合成語音 主題 練習 1 合成語音快速入門 (主控台) (. 4) 練習 2 使用純文字輸入合成語音 (主控台) (. 5) 後續步驟 (. 5) 練習 1 合成語音快速入門 (主控台) 快速入門帶您逐步了解為語音品質測試 Amzon Polly 語音合成的最簡單方法 當您選擇 Tex-o-Seech (文 字轉換語音) 標籤 可供輸入文字的文字欄位已預先載入範例文字 讓您可以快速試用 Amzon Polly 快速測試 Amzon Polly (主控台) 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 選擇 Tex-o-Seech (文字轉換語音) 索引標籤 選擇 Pln ex (純文字) 4

10 練習 2 使用純文字輸入合成語音 (主控台) 4. 在Engne (引擎) 下 選擇 Nerl 的 Sndrd 5. 選擇語言和 AWS 區域 然後選擇一種語音如果您在 Engne (引擎) 中選擇 Nerl 則只有英文 (美國) 可以使用 而且只會顯示可使用 NTTS 的區域 所有標準語音皆已停用 選擇 Len o eech (聆聽語音) 6. 如需深入測試的詳細資訊 請參閱下列主題 練習 2 使用純文字輸入合成語音 (主控台) (. 5) 使用 SSML (主控台) (. 80) 使用主控台套用語彙 (合成語音) (. 105) 練習 2 使用純文字輸入合成語音 (主控台) 以下程序使用純文字輸入合成語音 請注意 W3C 和日期 10/3 (10 月 3 日) 的合成方式 使用純文字輸入合成語音 (主控台) 1. 登入 Amzon Polly 主控台之後 選擇 Ge red (入門) 然後選擇 Tex-o-Seech (文字轉換語音) 標 籤 2. 選擇 Pln ex (純文字) 索引標籤 3. 輸入此文字或將其貼到輸入方塊 He w cgh n he gme. In he mddle o he 10/3/2014 W3C meeng he hoed, "Score!" qe lodly 針對 Engne (引擎) 部分 選擇 Sndrd 或 Nerl 選擇語言和 AWS 區域 然後選擇一種語音如果您在 Engne (引擎) 中選擇 Nerl 則只有英文 (美國) 可以使用 而且只會顯示可使用 NTTS 的區域 所有標準語音皆已停用 若要立即聆聽語音 請選擇 Len o eech (聆聽語音) 7. 若要將語音儲存至檔案 請執行以下其中一項. 選擇 Sve eech o MP3 (將語音儲存至 MP3) b. 若要變更為不同檔案格式 請選擇 Chnge le orm (變更檔案格式) 選擇您想要的檔案格式 然 後選擇 Chnge (變更) 如需深入範例的詳細資訊 請參閱下列主題 使用主控台套用語彙 (合成語音) (. 105) 使用 SSML (主控台) (. 80) 後續步驟 步驟 3 開始使用 (AWS CLI) (. 5) 步驟 3 開始使用 (AWS CLI) 您可以使用 AWS Commnd Lne Inerce (AWS CLI) 來執行幾乎所有您可以使用 Amzon Polly 主控台執 行的 Amzon Polly 操作 您無法使用 AWS CLI 聆聽合成的語音 反之 您必須將其儲存至檔案 然後在可 以播放該檔案的應用程式中開啟檔案 5

11 步驟 3.1 設定AWS CLI 主題 步驟 3.1 設定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 步驟 3.2 使用 AWS CLI 的入門練習 (. 7) 步驟 3.1 設定 AWS Commnd Lne Inerce (AWS CLI) 請遵循下列步驟來下載及設定 AWS CLI Imorn 您不需要 AWS CLI 來執行此練習中的步驟 不過 本指南中的某些練習會用到 AWS CLI 您可以 跳過這個步驟並前往 步驟 3.2 使用 AWS CLI 的入門練習 (. 7) 之後有需要時再設定 AWS CLI 設定 AWS CLI 1. 下載和設定 AWS CLI 如需說明 請參閱 AWS Commnd Lne Inerce Uer Gde 中的下列主題 設定 AWS Commnd Lne Inerce 設定 AWS Commnd Lne Inerce 2. 在 AWS CLI 組態檔中 為管理員使用者新增命名描述檔 當您執行 AWS CLI 命令時 使用此設定檔 如需命名設定檔的詳細資訊 請參閱 AWS Commnd Lne Inerce Uer Gde 中的命名設定檔 [role dmner] w_cce_ey_d = dmner cce ey ID w_ecre_cce_ey = dmner ecre cce ey regon = w-regon 如需可用 AWS 區域的清單和 Amzon Polly 所支援的那些區域清單 請參閱 Amzon Web Servce Generl Reerence 中的區域與端點 Noe 如果您使用了在設定 AWS CLI 時指定的 Amzon Polly 所支援的區域 可以省略 AWS CLI 程 式碼範例中的下列幾行 --regon w-regon 3. 在命令提示字元中輸入以下說明命令以驗證設定 w hel 有效的 AWS 命令清單應該會出現在 AWS CLI 視窗 在 AWS CLI 中啟用 Amzon Polly (選用) 如果您之前已下載並設定 AWS CLI 除非重新設定 AWS CLI 否則可能無法使用 Amzon Polly 此程序會 檢查這是否必要 如果 Amzon Polly 不會自動提供則提供指示 1. 在 AWS CLI 命令提示字元中輸入以下說明命令以確認 Amzon Polly 的可用性 w olly hel 6

12 步驟 3.2 入門練習 如果在 AWS CLI 的視窗中出現了 Amzon Polly 的說明和有效指令的清單 即可在 AWS CLI 中立即使 用 Amzon Polly 在此情況下 您可以略過此程序的剩餘部分 如果未顯示此項 請繼續步驟 2 2. 使用以下兩個選項之一來啟用 Amzon Polly. 解除安裝並重新安裝 AWS CLI 如需說明 請參閱 AWS Commnd Lne Inerce Uer Gde 中的安裝 AWS Commnd Lne Inerce 或 b. 下載檔案 ervce-2.jon. 在命令提示中 執行下列命令 w congre dd-model --ervce-model le://ervce-2.jon --ervce-nme olly 3. 重新確認 Amzon Polly 的可用性 w olly hel 應會顯示 Amzon Polly 的描述 下一個步驟 步驟 3.2 使用 AWS CLI 的入門練習 (. 7) 步驟 3.2 使用 AWS CLI 的入門練習 現在您可以測試 Amzon Polly 提供的語音合成 在本練習中 您將透過傳入範例文字呼叫 SynhezeSeech 操作 您可以將產生的音訊儲存為檔案並驗證其內容 1. 執行 ynheze-eechaws CLI 命令 以將範例文字合成到音訊檔案 (hello.m3) 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行 結尾處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly ynheze-eech \ --o-orm m3 \ --voce-d Jonn \ --ex 'Hello, my nme Jonn. I lerned bo he W3C on 10/3 o l yer.' \ hello.m3 在呼叫 ynheze-eech 時 您提供合成用的範例文字 要使用的語音 (透過提供語音 ID 在以 下步驟 3 中詳細說明) 和輸出格式 命令會將產生的音訊儲存至 hello.m3 檔案 除了 MP3 檔案 此操作會將以下輸出傳送到主控台 { } "ConenTye": "do/meg", "ReqeChrcer": "71" 2. 播放產生的 hello.m3 檔案 以驗證合成的語音 3. 您可以使用 DecrbeVoce 操作取得可用語音的清單 執行下列 decrbe-voceaws CLI 命 令 7

13 Pyhon 範例 w olly decrbe-voce 在回應中 Amzon Polly 會傳回所有可用語音的清單 對於每個語音 此回應會提供以下中繼資料 語 音 ID 語言代碼 語言名稱和語音的性別 以下是範例回應 { } "Voce": [ { "Gender": "Femle", "Nme": "Sll", "LnggeNme": "US Englh", "Id": "Sll", "LnggeCode": "en-us" }, { "Gender": "Femle", "Nme": "Jonn", "LnggeNme": "US Englh", "Id": "Jonn", "LnggeCode": "en-us" } ] 或者 您可以指定語言代碼 以尋找特定語言的可用語音 Amzon Polly 支援數十個語音 以下範例列 出巴西葡萄牙文的所有語音 w olly decrbe-voce \ --lngge-code -BR 如需語言代碼的清單 請參閱Amzon Polly 支援的語言 (. 14) 這些語言代碼是 W3C 語言識別標 記 (語語語語語 ISO 639 語語-ISO 3166 語語/語語語語) 例如 en-us (美式英文) en GB (英式英文) 和 ees (西班牙文) 等 您也可以使用 AWS CLI 中的 hel 選項來獲得語言代碼的清單 w olly decrbe-voce hel Pyhon 範例 本指南提供額外的範例 其中部分是使用 AWS SDK or Pyhon (Boo) 對 Amzon Polly 進行 API 呼叫的 Pyhon 程式碼範例 建議您設定 Pyhon 並測試下節中提供的範例程式碼 如需額外的範例 請參閱範例應 用程式 (. 128) 設定 Pyhon 並測試範例 (SDK) 若要測試 Pyhon 範例程式碼 您需要 AWS SDK or Pyhon (Boo) 如需指示 請參閱適用於 Pyhon 的 AWS 開發套件 (Boo3) 測試 Pyhon 程式碼範例 以下 Pyhon 程式碼範例會執行下列動作 使用 AWS SDK or Pyhon (Boo) 將 SynhezeSeech 請求傳送至 Amzon Polly (提供簡單文字做為 輸入) 8

14 設定 Pyhon 並測試範例 (SDK) 存取回應中產生的音訊串流 並將音訊儲存至本機磁碟上的檔案 (eech.m3) 使用本機系統的預設音訊播放器播放音訊檔案 將程式碼儲存至檔案 (exmle.y) 並執行 """Geng Sred Exmle or Pyhon 2.7+/3.3+""" rom boo3 mor Seon rom boocore.exceon mor BooCoreError, ClenError rom conexlb mor clong mor o mor y mor broce rom emle mor geemdr # Cree clen ng he credenl nd regon dened n he [dmner] # econ o he AWS credenl le (~/.w/credenl). eon = Seon(role_nme="dmner") olly = eon.clen("olly") ry: # Reqe eech ynhe reone = olly.ynheze_eech(tex="hello world!", OForm="m3", VoceId="Jonn") exce (BooCoreError, ClenError) error: # The ervce rerned n error, ex grcelly rn(error) y.ex(-1) # Acce he do rem rom he reone "AdoSrem" n reone: # Noe: Clong he rem morn bece he ervce hrole on he # nmber o rllel connecon. Here we re ng conexlb.clong o # enre he cloe mehod o he rem objec wll be clled omclly # he end o he wh emen' coe. # wh clong(reone["adosrem"]) rem: o = o.h.jon(geemdr(), "eech.m3") ry: # Oen le or wrng he o bnry rem # wh oen(o, "wb") le: le.wre(rem.red()) exce IOError error: # Cold no wre o le, ex grcelly rn(error) y.ex(-1) ele: # The reone ddn' conn do d, ex grcelly rn("cold no rem do") y.ex(-1) # Ply he do ng he lorm' del lyer y.lorm == "wn32": o.rle(o) ele: # The ollowng wor on mcos nd Lnx. (Drwn = mc, xdg-oen = lnx). oener = "oen" y.lorm == "drwn" ele "xdg-oen" broce.cll([oener, o]) 如需其他範例包括範例應用程式的詳細資訊 請參閱範例應用程式 (. 128) 9

15 可用語音 語音 Amzon Polly 可用語音 Amzon Polly 以多種語言提供各種不同的語音 可用於從文字合成語音 語言 名稱/ID 性別 標準語音 神經語音 阿拉伯文 (rb) Zen 女性 是 否 中文 國語 (cmncn) Zhy 女性 是 否 丹麥文 (d-dk) Nj 女性 是 否 Md 男性 是 否 Loe 女性 是 否 Rben 男性 是 否 英文 (澳洲) (enau) Ncole 女性 是 否 Rell 男性 是 否 英文 (英國) (engb) Amy 女性 是 是 Emm 女性 是 是 Brn 男性 是 是 Ad* 女性 是 否 Rveen 女性 是 否 Ivy 女性 是 是 Jonn** 女性 是 是 Kendr 女性 是 是 Kmberly 女性 是 是 Sll 女性 是 是 Joey 男性 是 是 Jn 男性 是 是 Mhew** 男性 是 是 英文 (威爾斯) (engb-wls) Gern 男性 是 否 法文 (r-fr) Célne/Celne 女性 是 否 Mhe 男性 是 否 荷蘭文 (nl-nl) 英文 (印度) (en-in) 英文 (美國) (enus) 10

16 可用語音 語言 名稱/ID 性別 標準語音 神經語音 法文 (加拿大) (rca) Chnl 女性 是 否 德文 (de-de) Mrlene 女性 是 否 Vc 女性 是 否 Hn 男性 是 否 印地語 (h-in) Ad* 女性 是 否 冰島文 (-IS) Dór/Dor 女性 是 否 Krl 男性 是 否 Crl 女性 是 否 Bnc 女性 是 否 Gorgo 男性 是 否 Mz 女性 是 否 Tm 男性 是 否 韓文 (o-kr) Seoyeon 女性 是 否 挪威文 (nb-no) Lv 女性 是 否 波蘭文 (l-pl) Ew 女性 是 否 Mj 女性 是 否 Jce 男性 是 否 1月 男性 是 否 葡萄牙文 (巴西) (-BR) Vór/Vor 女性 是 否 Rcrdo 男性 是 否 葡萄牙文 (歐洲) (-PT) Inê/Ine 女性 是 否 Crno 男性 是 否 羅馬尼亞文 (roro) Crmen 女性 是 否 俄文 (r-ru) Tyn 女性 是 否 Mxm 男性 是 否 Conch 女性 是 否 Lc 女性 是 否 Enrqe 男性 是 否 M 女性 是 否 義大利文 (-IT) 日文 (j-jp) 西班牙文 (歐洲) (e-es) 西班牙文 (墨西哥) (e-mx) 11

17 雙語的語音 語言 名稱/ID 性別 標準語音 神經語音 西班牙文 (美國) (e-us) Penéloe/ Peneloe 女性 是 否 男性 是 否 Mgel 瑞典文 (v-se) Ard 女性 是 否 土耳其文 (r-tr) Flz 女性 是 否 威爾斯文 (cy-gb) Gwyneh 女性 是 否 * 此語音為雙語, 可以說英文和印地語 如需更多詳細資訊 請參閱 雙語的語音 (. 12) ** 與神經格式搭配使用時, 這些語音可以與新聞播報員風格搭配使用 如需更多詳細資訊 請參閱 NTTS 新 聞播報員風格 (. 71) 雙語的語音 Ad (印度英文和印地語) 之類的雙語語音可流暢地說兩種語言 這可讓您使用相同語音 在單一文字中使用 來自兩種語言的文字和句子 目前 Ad 是唯一可用的雙語語音 使用雙語語音 (Ad) Ad 可同時流暢地說印度英文 (en-in) 和印地語 (h-in) 您可以同時合成使用英文和印地語的語音 而語音 可在這兩個語言間切換 即使是在相同句子中亦然 您可以透過兩個不同的形式使用印地語 Devngr "उस न कह, ख ल त ह अब श र ह ग " Romngr (使用拉丁字母) "Une hn, hel oh b hr hog" 此外 您可以在單一句子中混合使用英文和印地語其中之一或兩個形式 Devngr + 英文 "Th he ong कभ कभ अद त " Romngr + 英文 "Th he ong rom he move Jne T Y Jne N." Devngr + Romngr + 英文 "Th he ong कभ कभ अद त rom he move Jne T Y Jne N." 由於 Ad 是雙語語音 這些情況下的文字都將會正確讀取 因為 Amzon Polly 可以區分語言和指令碼 Amzon Polly 也同時支援使用英文 (阿拉伯數字) 和印地語 (Devngr 數字) 的數字 日期 時間和貨幣擴 展 在預設情況下 阿拉伯數字會使用印度英文讀取 為了讓 Amzon Polly 以印地語加以讀取 您必須使 用 h-in 語言代碼參數 聆聽語音 您可以使用 Amzon Polly 主控台 聆聽 Amzon Polly 提供的任何語音範例 12

18 語音速度 聆聽 Amzon Polly 中的語音 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 2. 選擇 Tex-o-Seech (文字轉換語音) 索引標籤 3. 針對 Engne (引擎) 選擇 Sndrd (標準) 或 Nerl (神經) 4. 選擇語言和區域 然後選擇語音 5. 輸入要說出的語音的文字 或使用預設的片語 然後選擇 Len o eech (聆聽語音) 您可以選擇 Amzon Polly 提供的任何語言 主控台會顯示可用於該語言的語音 在大多數情況下 至少有 一名男性和一名女性語音 通常每一名有一種以上的語音 少數僅有單一語音 如需完整清單 請參閱語音 Amzon Polly (. 10) Noe 這份清單包含的多種語言的語音庫存 會持續更新以包含其他的選項 若要建議新語言或語音 歡 迎隨時到此頁面提供意見反應 很抱歉 我們無法評論於發佈的特定新語言的計畫 每一個語音都是透過說母語的使用者建立的 所以每個語音之間都會有變化 即使是相同語言內的語音也一 樣 當為專案選取語音時 您應該用一段文字來測試每個可能的語音 以了解哪一個最符合您的需求 語音速度 由於各語音之間的自然變異性 每個可用的語音會以稍微不同的速度說出文字 例如 在美式英文語音 中 Ivy 和 Jonn 說出 Mry hd lle lmb, 時的語速比 Mhew 稍快一些 而且比 Joey 快上許多 由於語音間的變異太大 而變異程度取決於口述的文字 Amzon Polly 語音並無適用於的標準語速 (每分鐘 多少字) 不過 您可以使用 SeechMr 測出說一段選定文字的語音要花多少時間 如需有關在 Amzon Polly 中使用語音標記的詳細資訊 請參閱使用語音標記 (. 74) 了解說出一段文字大約需要多長時間 1. 開啟 AWS CLI 2. 執行以下程式碼 視需要填寫 w olly ynheze-eech \ --lngge-code oonl lngge code needed --o-orm jon \ --voce-d [nme o dered voce] \ --ex '[dered ex]' \ --eech-mr-ye='["veme"]' \ LenghOTex.x 3. 開啟 LenghOTex.x 如果文字是 Mry hd lle lmb Amzon Polly 傳回的最後幾行將是 {"me":882,"ye":"veme","vle":""} {"me":964,"ye":"veme","vle":""} {"me":1082,"ye":"veme","vle":""} 基本上 最後視素即 lmb 中最後字母發音 是在開始說話後 1082 毫秒處開始 雖然這並非音訊確實的 長度 但是已經很接近 可做為語音比較的基礎 13

19 變更您的語速 變更您的語速 對於特定的應用程式 您可能會發現您希望語音放慢或加快 如果語速很重要 Amzon Polly 便提供了使用 SSML 標籤修改語速的功能 例如 您的組織正在開發一套應用程式 專門向移民對象閱讀書籍 此對象會說英文 但不太流利 在這種情況 下 您可能會考慮放慢語速 讓您的對象有充裕時間理解應用程式說的內容 Amzon Polly 可協助您藉由使用 SSML <roody> 標籤來降低語速 如下所示 <e> In ome ce, mgh hel yor dence o <roody re="85%">low he eng re lghly o d n comrehenon.</roody> <e 或 <e> In ome ce, mgh hel yor dence o <roody re="85%">low he eng re lghly o d n comrehenon.</roody> <e 您在使用 SSML 與 Amzon Polly 時 有兩個速度選項可選 預設速度 x-low low medm 和 x- 在這些情況下 每個選項是大約的速度 其取決 於您慣用的語音 medm 選項是正常的語音速度 n% 的語速 任何百分比的語音速率 20% 和 200% 之間的都可使用 在這些情況下 您可以選擇完全符 合所需的速度 不過 實際的語音速度只是大概 取決於您選擇哪一個語音 正常語音速度為 100% 因為每個選項的速度是近似值 並取決於您選擇的語音 所以我們建議您以各種速度測試選取的語音 查看 哪些速度完全符合您的需求 如需有關使用 roody 標籤以發揮最佳效果的詳細資訊 請參閱控制音量 說話速度和音調 (. 89) Amzon Polly 支援的語言 Amzon Polly 支援以下語言 並且可用於合成語音 代表每一種語言的是語言代碼 這些語言代碼是 W3C 語言識別標記 (ISO 是語言名稱代碼 ISO 3166 是國家/地區代碼) 如需顯示和每一種語言關聯的音素和視素的深入表格 請選擇下表中每一種語言的連結 語言 語言代碼 阿拉伯文 (rb) (. 16) rb 中文 國語 (cmn-cn) (. 18) cmn-cn 丹麥文 (d-dk) (. 20) d-dk 荷蘭文 (nl-nl) (. 22) nl-nl 英文 澳洲 (en-au) (. 24) en-au 英文 英國 (en-gb) (. 28) en-gb 14

20 適用於支援語言的音素和視素表 語言 語言代碼 英文 印度 (en-in) (. 26) en-in 英文 印度 (en-in) (. 30) en-us 英文 威爾斯 (en-gb-wsl) (. 31) en-gb-wls 法文 (r-fr) (. 33) r-fr 法文 加拿大 (r-ca) (. 35) r-ca 印地語 (h-in) (. 38) h-in 德文 (de-de) (. 36) de-de 冰島文 (-IS) (. 40) -IS 義大利文 (-IT) (. 42) -IT 日文 (j-jp) (. 43) j-jp 韓文 (o-kr) (. 45) o-kr 挪威文 (nb-no) (. 46) nb-no 波蘭文 (l-pl) (. 48) l-pl 葡萄牙文 巴西 (-BR) (. 51) -BR 葡萄牙文 (-PT) (. 49) -PT 羅馬尼亞文 (ro-ro) (. 52) ro-ro 俄文 (r-ru) (. 54) r-ru 西班牙文 (e-es) (. 55) e-es 墨西哥西班牙文 (e-mx) (. 57) e-mx 美國西班牙文 (e-us) (. 59) e-us 瑞典文 (v-se) (. 60) v-se 土耳其文 (r-tr) (. 62) r-tr 威爾斯文 (cy-gb) (. 64) cy-gb 如需更多詳細資訊 請參閱 適用於支援語言的音素和視素表 (. 15) 適用於支援語言的音素和視素表 下表列出 Amzon Polly 所支援語言的音素 以及範例和對應視素 主題 阿拉伯文 (rb) (. 16) 中文 國語 (cmn-cn) (. 18) 丹麥文 (d-dk) (. 20) 荷蘭文 (nl-nl) (. 22) 15

21 適用於支援語言的音素和視素表 英文 澳洲 (en-au) (. 24) 英文 印度 (en-in) (. 26) 英文 英國 (en-gb) (. 28) 英文 美國 (en-us) (. 30) 英文 威爾斯 (en-gb-wsl) (. 31) 法文 (r-fr) (. 33) 法文 加拿大 (r-ca) (. 35) 德文 (de-de) (. 36) 印地語 (h-in) (. 38) 冰島文 (-IS) (. 40) 義大利文 (-IT) (. 42) 日文 (j-jp) (. 43) 韓文 (o-kr) (. 45) 挪威文 (nb-no) (. 46) 波蘭文 (l-pl) (. 48) 葡萄牙文 (-PT) (. 49) 葡萄牙文 巴西 (-BR) (. 51) 羅馬尼亞文 (ro-ro) (. 52) 俄文 (r-ru) (. 54) 西班牙文 (e-es) (. 55) 墨西哥西班牙文 (e-mx) (. 57) 美國西班牙文 (e-us) (. 59) 瑞典文 (v-se) (. 60) 土耳其文 (r-tr) (. 62) 威爾斯文 (cy-gb) (. 64) 阿拉伯文 (rb) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援 Zen 阿 拉伯文聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 ʔ? 聲門塞音 ʕ?\ 咽部擦音 ع م ر b b 濁雙唇塞音 ب ل د d d 濁齒齦塞音 داري dˤ d_?\ 加強語氣的濁齒齦塞 音 ض وء d ʒ dz 濁顎齦塞擦音 ج ميل S ð D 濁齒擦音 子音 أ نا ذل ك T 16

22 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ðˤ D_?\ 加強語氣的濁齒擦音 清唇齒擦音 ف صل ɡ g 濁軟顎塞音 إنجلترا ɣ G 濁軟顎擦音 غ رب h h 清聲門擦音 هذا j j 硬顎近音 清軟顎塞音 ك لب l l 齒齦邊近音 لاقى lˠ l_g 加強語氣的齒齦邊近 音 m m 雙唇鼻音 ماذا n n 齒齦鼻音 نور 清雙唇塞音 ح بس q q 清小舌塞音 ق ريب r r 齒齦顫音 清齒齦擦音 س ؤال ˤ _?\ 加強語氣的清齒齦擦 音 صاح ب ʃ S 清齦後擦音 ش كر S 清齒齦塞音 ت مر ˤ _?\ 加強語氣的清齒齦塞 音 طال ب θ T 清齒擦音 ث لاث T v v 濁唇齒擦音 فيتامين w w 唇軟顎近音 و ل د x x 清軟顎擦音 خ و ف ħ X\ 清咽部擦音 ح و ل z z 濁齒齦擦音 ز هور 開前不圓唇母音 ب رد ː : 長開前不圓唇母音 ɑˤ A_?\ 加強語氣的開後不圓 唇母音 ظ لام T ي مشي الله ر مل r 母音 17 دار ط بل

23 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɑˤː A_?\: 加強語氣的長開後不 圓唇母音 ظال م 閉後圓唇母音 ش رب : : 長閉後圓唇母音 سور ˤ _?\ 加強語氣的閉後圓唇 母音 ب د ˤː _?\: 加強語氣的長閉後圓 唇母音 طول 閉前不圓唇母音 ب نت ː : 長閉前不圓唇母音 ح زين ˤ _?\ 加強語氣的閉前不圓 唇母音 ض د ˤː _?\: 加強語氣的長閉前不 圓唇母音 ماضي e e 半閉前不圓唇母音 ماركت e eː e: 長半閉前不圓唇母音 موديل e ɔ O 半開後圓唇母音 ɔː O: 長半開後圓唇母音 تكنولوجي O تليفزيون O 中文 國語 (cmn-cn) 下表列出 Amzon Polly 所支援中文語音的拼音和國際音標 (IPA) 音素 拼音是標準中文羅馬化的國際標 準 IPA 和 X-SAMPA 並不常用 但可支援英文 表格中的 IPA 和 X-SAMPA 符號僅供參考 不應用於中文 轉錄 也會顯示拼音範例和對應視素 若要讓 Amzon Polly 使用音標發音而非拼音 請使用 honeme lhbe="x-mzon-honec ndrd ed" 標籤 以下範例顯示此情況與每個標準 拼音 <e> ## <honeme lhbe="x-mzon-nyn" h="bo2">#</honeme># ## <honeme lhbe="x-mzon-nyn" h="bo2">#</honeme># </e> IPA <e> ## <honeme lhbe="" h="####n">ecn</honeme># ## <honeme lhbe="" h="#.æn">ecn</honeme># </e> X-SAMPA 18

24 適用於支援語言的音素和視素表 <e> ## <honeme lhbe='x-m' h='i"a:n'>ecn</honeme># ## <honeme lhbe='x-m' h='".{n'>ecn</honeme># </e> Noe Amzon Polly 僅接受以 UTF-8 編碼的國語中文輸入 Amzon Polly 目前不支援 GB 編碼標 準 音素/視素表 拼音 IPA XSAMPA 描述 拼音範例 視素 清唇齒擦音 发 1 h h h 清聲門擦音 和 he2 g 清軟顎塞音 古 g3 ʰ _h 送氣清軟顎塞音 苦 3 l l l 齒齦邊近音 拉 l1 m m m 雙唇鼻音 骂 m4 n n n 齒齦鼻音 那 n4 ng ŋ N 軟顎鼻音 正 zheng4 b 清雙唇塞音 爸 b4 ʰ _h 送氣清雙唇塞音 怕 4 清齒齦擦音 四 4 x ɕ \ 清硬顎擦音 西 x1 J h ʂ ` 清捲舌擦音 是 h4 S d 清齒齦塞音 打 d3 ʰ _h 送氣清齒齦塞音 他 1 zh ʈ ʂ `` 清捲舌塞擦音 之 zh1 S ch ʈ ʂʰ ``_h 清送氣捲舌塞擦音 吃 ch1 S 清齒齦塞擦音 字 z4 j ɕ \ 清齦顎塞擦音 鸡 j1 J q ɕʰ \_h 送氣清齦顎塞擦音 七 q1 J c ʰ _h 送氣清齒齦塞擦音 次 c4 w w w 唇軟顎近音 我 wo3 r ʐ z` 濁捲舌擦音 日 r4 S 子音 19

25 適用於支援語言的音素和視素表 拼音 IPA XSAMPA 描述 拼音範例 r 色彩中央母音 二 r 色彩音節 馅儿 "er" 和 "r" 色彩音節 er ɚ -r 母音 e ɤ 7 半閉後不圓唇母音 恶 e4 e e 中央母音 恩 開前不圓唇母音 安 n1 ɪ I 雙母音 爱 4 o ʊ U 雙母音 奥 o4 e eɪ e 雙母音 诶 e4 e e ɛ E 半開前不圓唇母音 姐 je3 E 閉前不圓唇母音 鸡 j1 o oʊ ou 雙母音 欧 o1 o o ɔ O 半開後圓唇母音 哦 o4 o 閉後圓唇母音 主 zh3 y y y 閉前圓唇母音 于 y2 1 高階音調 淤 y1 2 升高音調 鱼 y2 3 低 (降低-升高) 音調 语 y3 4 降低音調 育 y4 0 中性音調 的 de0 音節邊界 语音 y3-yn1 音調標記和其他符號 -.. 丹麥文 (d-dk) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援丹麥文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b 濁雙唇塞音 b 子音 b 20

26 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 d d 濁齒齦塞音 d ð D 濁齒擦音 md hrller T 清唇齒擦音 g g 濁軟顎塞音 g h h 清聲門擦音 h j j 硬顎近音 jo 清軟顎塞音 l l 齒齦邊近音 ld m m 雙唇鼻音 m n n 齒齦鼻音 ny ŋ N 軟顎鼻音 lng 清雙唇塞音 nde r r 齒齦顫音 hrller ory r ʁ R 濁小舌擦音 r 清齒齦擦音 清齒齦塞音 l v v 濁唇齒擦音 v w w 圓唇軟顎近音 hv weeend ø 2 半閉前圓唇母音 ø o ø: 2: 長半閉前圓唇母音 øe o ɐ 6 次開央母音 mor œ 9 半開前圓唇母音 øn grøn O œ: 9: 長半開前圓唇母音 høne gøre O 中央母音 æː {: 長次開前不圓唇母音 mle 開前不圓唇母音 mn æ { 次開前不圓唇母音 dree ɑ A 開後不圓唇母音 l ɑ: A: 長開後不圓唇母音 re e e 半閉前不圓唇母音 md e 母音 21

27 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 e: e: 長半閉前不圓唇母音 mele e ɛ E 半開前不圓唇母音 mæ E ɛ: E: 長半開前不圓唇母音 mæle E 閉前不圓唇母音 m : : 長閉前不圓唇母音 mle o o 半閉後圓唇母音 oo o o: o: 長半閉後圓唇母音 mole o ɔ O 半開後圓唇母音 mnd O ɔ: O: 長半開後圓唇母音 måle O ɒː Q: 長開後圓唇母音 more O 閉後圓唇母音 l : : 長閉後圓唇母音 mle ʌ V 半開後不圓唇 ører E y y 閉前圓唇母音 y y: y: 長閉前圓唇母音 hyle ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 荷蘭文 (nl-nl) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援荷蘭文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 b d d 濁齒齦塞音 d d ʒ dz 濁顎齦塞擦音 mnger S 清唇齒擦音 el g g 濁軟顎塞音 gol 子音 22

28 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɣ G 濁軟顎擦音 hoed ɦ h\ 清喉擦音 hnd j j 硬顎近音 j 清軟顎塞音 l l 齒齦邊近音 lnd m m 雙唇鼻音 me n n 齒齦鼻音 ne ŋ N 軟顎鼻音 bng 清雙唇塞音 r r 齒齦顫音 rnd r 清齒齦擦音 en ʃ S 清齦後擦音 how S 清齒齦塞音 v v 濁唇齒擦音 vel ʋ v\ 唇齒近音 w x x 清軟顎擦音 och z z 濁齒齦擦音 zn ʒ Z 濁齦後擦音 bgge S øː 2: 長半閉前圓唇母音 ne o œy 9y 雙母音 b O 中央母音 : : 長開前不圓唇母音 bd ɑ: A 開後不圓唇母音 bd e: e: 長半閉前不圓唇母音 bee e ɜː 3: 長半開央不圓唇音 brrère E ɛ E 半開前不圓唇母音 bed E ɛ E 雙母音 bee E 閉前不圓唇母音 ver ɪ I 次閉次前不圓唇母音 o: o: 長半閉後圓唇母音 boo o 母音 23

29 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɔ O 半開後圓唇母音 o O 閉後圓唇母音 hoed ʌ V 雙母音 o E yː y: 長閉前圓唇母音 ʏ Y 次閉次前圓唇母音 h ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 英文 澳洲 (en-au) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 支援澳洲英文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bed d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve g g 濁軟顎塞音 gme h h 清聲門擦音 hoe j j 硬顎近音 ye 清軟顎塞音 c l l 齒齦邊近音 ly l l= 音節齒齦邊近音 ble m m 雙唇鼻音 moe m m= 音節雙唇鼻音 nhem n n 齒齦鼻音 n n n= 音節齒齦鼻音 n 子音 24

30 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ŋ N 軟顎鼻音 hng 清雙唇塞音 n ɹ r\ 齒齦近音 red r 清齒齦擦音 eem ʃ S 清齦後擦音 h S 清齒齦塞音 ʃ S 清齦後塞擦音 chr S Θ T 清齒擦音 hn T v v 濁唇齒擦音 ve w w 圓唇軟顎近音 we z z 濁齒齦擦音 zero ʒ Z 濁齦後擦音 von S 中央母音 雙母音 æ { 次開前不圓唇母音 r ɪ I 雙母音 rce ʊ U 雙母音 moh ɑː A: 長開後不圓唇母音 her eɪ ei 雙母音 ce e ɜː 3: 長半開央不圓唇音 nre E ɛ E 半開前不圓唇母音 dre E ɛə 雙母音 qre E : 長閉前不圓唇母音 leece ɪ I 次閉次前不圓唇母音 ɪə 雙母音 ner ɔː OI 長半開後圓唇母音 hogh O ɔɪ OI 雙母音 choce O ɒ Q 開後圓唇母音 lo O : : 長閉後圓唇母音 gooe ʊ U 次閉次後圓唇母音 oo 母音 25

31 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ʊə 雙母音 cre ʌ V 半開後不圓唇母音 r E ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 英文 印度 (en-in) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援印度英文 聲音對應的視素 如需搭配印度英文使用之其他音素的詳細資訊 請參閱印地語 (h-in) (. 38) 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bed d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve g g 濁軟顎塞音 gme h h 清聲門擦音 hoe j j 硬顎近音 ye 清軟顎塞音 c l l 齒齦邊近音 ly l l= 音節齒齦邊近音 ble m m 雙唇鼻音 moe m m= 音節雙唇鼻音 nhem n n 齒齦鼻音 n n n= 音節齒齦鼻音 n ŋ N 軟顎鼻音 hng 清雙唇塞音 n 子音 26

32 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɹ r\ 齒齦近音 red r 清齒齦擦音 eem ʃ S 清齦後擦音 h S 清齒齦塞音 ʃ S 清齦後塞擦音 chr S Θ T 清齒擦音 hn T v v 濁唇齒擦音 ve w w 圓唇軟顎近音 we z z 濁齒齦擦音 zero ʒ Z 濁齦後擦音 von S 中央母音 雙母音 æ { 次開前不圓唇母音 r ɪ I 雙母音 rce ʊ U 雙母音 moh ɑː A: 長開後不圓唇母音 her eɪ ei 雙母音 ce e ɜː 3: 長半開央不圓唇音 nre E ɛ E 半開前不圓唇母音 dre E ɛə 雙母音 qre E : 長閉前不圓唇母音 leece ɪ I 次閉次前不圓唇母音 ɪə 雙母音 ner ɔː OI 長半開後圓唇母音 hogh O ɔɪ OI 雙母音 choce O ɒ Q 開後圓唇母音 lo O : : 長閉後圓唇母音 gooe ʊ U 次閉次後圓唇母音 oo ʊə 雙母音 cre ʌ V 半開後不圓唇母音 r E 母音 27

33 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 視素 其他符號 英文 英國 (en-gb) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 支援英式英文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bed d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve g g 濁軟顎塞音 gme h h 清聲門擦音 hoe j j 硬顎近音 ye 清軟顎塞音 c l l 齒齦邊近音 ly l l= 音節齒齦邊近音 ble m m 雙唇鼻音 moe m m= 音節雙唇鼻音 nhem n n 齒齦鼻音 n n n= 音節齒齦鼻音 bon ŋ N 軟顎鼻音 hng 清雙唇塞音 n ɹ r\ 齒齦近音 red r 清齒齦擦音 eem ʃ S 清齦後擦音 h S 子音 28

34 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 清齒齦塞音 ʃ S 清齦後塞擦音 chr S Θ T 清齒擦音 hn T v v 濁唇齒擦音 ve w w 圓唇軟顎近音 we z z 濁齒齦擦音 zero ʒ Z 濁齦後擦音 von S 中央母音 雙母音 æ { 次開前不圓唇母音 r ɪ I 雙母音 rce ʊ U 雙母音 moh ɑː A: 長開後不圓唇母音 her eɪ ei 雙母音 ce e ɜː 3: 長半開央不圓唇音 nre E ɛ E 半開前不圓唇母音 dre E ɛə 雙母音 qre E : 長閉前不圓唇母音 leece ɪ I 次閉次前不圓唇母音 ɪə 雙母音 ner ɔː O: 長半開後圓唇母音 hogh O ɔɪ OI 雙母音 choce O ɒ Q 開後圓唇母音 lo O : : 長閉後圓唇母音 gooe ʊ U 次閉次後圓唇母音 oo ʊə 雙母音 cre ʌ V 半開後不圓唇母音 r E ˈ " 主要重音 Albm ˌ % 次要重音 Albm 母音 其他符號 29

35 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例.. 音節邊界 A.l.b.m 視素 英文 美國 (en-us) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 支援美式英文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bed d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve ɡ g 濁軟顎塞音 gme h h 清聲門擦音 hoe j j 硬顎近音 ye 清軟顎塞音 c l l 齒齦邊近音 ly m m 雙唇鼻音 moe n n 齒齦鼻音 n ŋ N 軟顎鼻音 hng 清雙唇塞音 e ɹ r\ 齒齦近音 red r 清齒齦擦音 eem ʃ S 清齦後擦音 h S 清齒齦塞音 r ʃ S 清齦後塞擦音 chr S θ T 清齒擦音 hn T v v 濁唇齒擦音 ve w w 圓唇軟顎近音 we z z 濁齒齦擦音 zero 子音 30

36 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ʒ Z 濁齦後擦音 von S 中央母音 中央 r 色彩母音 æ { 次開前不圓唇母音 r ɪ I 雙母音 rce ʊ U 雙母音 moh ɑ A 長開後不圓唇母音 her eɪ ei 雙母音 ce e ɝ 3` 半開央不圓唇 r 色彩 母音 nre E ɛ E 半開前不圓唇母音 dre E 長閉前不圓唇母音 leece ɪ I 次閉次前不圓唇母音 oʊ ou 雙母音 go o ɔ O 長半開後圓唇母音 hogh O ɔɪ OI 雙母音 choce O 長閉後圓唇母音 gooe ʊ U 次閉次後圓唇母音 oo ʌ V 半開後不圓唇母音 r E ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 母音 其他符號 英文 威爾斯 (en-gb-wsl) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援威爾斯英 文聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b 濁雙唇塞音 bed 子音 b 31

37 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve g g 濁軟顎塞音 gme h h 清聲門擦音 hoe j j 硬顎近音 ye 清軟顎塞音 c l l 齒齦邊近音 ly l l= 音節齒齦邊近音 ble m m 雙唇鼻音 moe m m= 音節雙唇鼻音 nhem n n 齒齦鼻音 n n n= 音節齒齦鼻音 n ŋ N 軟顎鼻音 hng 清雙唇塞音 n ɹ r\ 齒齦近音 red r 清齒齦擦音 eem ʃ S 清齦後擦音 h S 清齒齦塞音 ʃ S 清齦後塞擦音 chr S Θ T 清齒擦音 hn T v v 濁唇齒擦音 ve w w 圓唇軟顎近音 we z z 濁齒齦擦音 zero ʒ Z 濁齦後擦音 von S 中央母音 雙母音 æ { 次開前不圓唇母音 r ɪ I 雙母音 rce 母音 32

38 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ʊ U 雙母音 moh ɑː A: 長開後不圓唇母音 her eɪ ei 雙母音 ce e ɜː 3: 長半開央不圓唇音 nre E ɛ E 半開前不圓唇母音 dre E ɛə 雙母音 qre E : 長閉前不圓唇母音 leece ɪ I 次閉次前不圓唇母音 ɪə 雙母音 ner ɔː OI 長半開後圓唇母音 hogh O ɔɪ OI 雙母音 choce O ɒ Q 開後圓唇母音 lo O : : 長閉後圓唇母音 gooe ʊ U 次閉次後圓唇母音 oo ʊə 雙母音 cre ʌ V 半開後不圓唇母音 r E ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 法文 (r-fr) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援法文聲音 對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bore d d 濁齒齦塞音 mdme 清唇齒擦音 emme g g 濁軟顎塞音 grnd 子音 33

39 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɥ H 唇硬顎近音 br j j 硬顎近音 meller 清軟顎塞音 qre l l 齒齦邊近音 mlde m m 雙唇鼻音 mon n n 齒齦鼻音 ronome ɲ J 硬顎鼻音 bgner J ŋ N 軟顎鼻音 rng 清雙唇塞音 omme ʁ R 濁小舌擦音 morex 清齒齦擦音 né ʃ S 清齦後擦音 ch S 清齒齦塞音 éléhone v v 濁唇齒擦音 vr w w 圓唇軟顎近音 or z z 濁齒齦擦音 ron ʒ Z 濁齦後擦音 bergne S ø 2 半閉前圓唇母音 dex o œ 9 半開前圓唇母音 ne O œ 9~ 鼻半開前圓唇母音 brn O 中央母音 開前不圓唇母音 ble ɑ A~ 鼻開後不圓唇母音 cmember e e 半閉前不圓唇母音 mrché e ɛ E 半開前不圓唇母音 nege E ɛ E~ 鼻半開前不圓唇母音 n E 閉前不圓唇母音 mlle o o 半閉後圓唇母音 hôl o ɔ O 半開後圓唇母音 homme O ɔ O~ 鼻半開後圓唇母音 bon O 母音 34

40 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 閉後圓唇母音 o y y 閉前圓唇母音 dr ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 法文 加拿大 (r-ca) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援加拿大法 文聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bore d d 濁齒齦塞音 mdme 清唇齒擦音 emme g g 濁軟顎塞音 grnd ɥ H 唇硬顎近音 br j j 硬顎近音 meller 清軟顎塞音 qre l l 齒齦邊近音 mlde m m 雙唇鼻音 mon n n 齒齦鼻音 ronome ɲ J 硬顎鼻音 bgner J ŋ N 軟顎鼻音 rng 清雙唇塞音 omme ʁ R 濁小舌擦音 morex 清齒齦擦音 né ʃ S 清齦後擦音 ch S 清齒齦塞音 éléhone v v 濁唇齒擦音 vr 子音 35

41 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 w w 圓唇軟顎近音 or z z 濁齒齦擦音 ron ʒ Z 濁齦後擦音 bergne S ø 2 半閉前圓唇母音 dex o œ 9 半開前圓唇母音 ne O œ 9~ 鼻半開前圓唇母音 brn O 中央母音 開前不圓唇母音 ble ɑ A~ 鼻開後不圓唇母音 cmember e e 半閉前不圓唇母音 mrché e ɛ E 半開前不圓唇母音 nege E ɛ E~ 鼻半開前不圓唇母音 n E 閉前不圓唇母音 mlle o o 半閉後圓唇母音 hôl o ɔ O 半開後圓唇母音 homme O ɔ O~ 鼻半開後圓唇母音 bon O 閉後圓唇母音 o y y 閉前圓唇母音 dr ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 母音 其他符號 德文 (de-de) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援德文聲音 對應的視素 音素/視素表 IPA X-SAMPA 描述 聲門塞音 範例 子音 ʔ 36 視素

42 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 Ber d d 濁齒齦塞音 Dch ç C 清硬顎擦音 ch d ʒ dz 濁顎齦塞擦音 Dchngel S 清唇齒擦音 Vogel g g 濁軟顎塞音 Gbel h h 清聲門擦音 H j j 清聲門擦音 jemnd 清軟顎塞音 Kled l l 齒齦邊近音 Loch m m 雙唇鼻音 Mlch n n 齒齦鼻音 Nr ŋ N 軟顎鼻音 lngen 清雙唇塞音 Pr 清唇齒塞擦音 Ael ʀ R 小舌顫音 Regen 清齒齦擦音 Meer ʃ S 清齦後擦音 Fcher S 清齒齦塞音 To T T 清齒齦塞擦音 Zhl ʃ S 清齦後塞擦音 dech S v v 濁唇齒擦音 Wer x x 清軟顎擦音 ochen z z 濁齒齦擦音 See ʒ Z 濁齦後擦音 Ornge S øː 2: 長半閉前圓唇母音 böe o ɐ 6 次開央母音 beer ɐ 6_^ 非音節次開央母音 Klr œ 9 半開前圓唇母音 önnen O 中央母音 母音 37

43 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 開前不圓唇母音 Slz : : 長開前不圓唇母音 Shne ɪ I 雙母音 nen ʊ U 雙母音 Agen ɑ A~ 鼻開後不圓唇母音 Rern e: e: 長半閉前不圓唇母音 Rede e ɛ E 半開前不圓唇母音 Keller E ɛ E~ 鼻半開前不圓唇母音 Terrn E : : 長閉前不圓唇母音 Led ɪ I 次閉次前不圓唇母音 be o: o: 長半閉後圓唇母音 Kohl o ɔ O 半開後圓唇母音 Koer O ɔ O~ 鼻半開後圓唇母音 Annonce O ɔʏ OY 雙母音 ne O : : 長閉後圓唇母音 Brder ʊ U 次閉次後圓唇母音 Wnder y: y: 長閉前圓唇母音 ühl ʏ Y 次閉次前圓唇母音 Küche ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 印地語 (h-in) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援印地語音 素的聲音類型 如需搭配印地語使用的其他音素的詳細資訊 請參閱英文 印度 (en-in) (. 26) 音素/視素表 IPA X-SAMPA 描述 範例 _h 清送氣雙唇塞音 फ ल (hool) 子音 ʰ 38

44 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 bʱ b_h 濁送氣雙唇塞音 भ र (bhr) _d 清齒擦音 त पम न (mn) ʰ _d_h 清送氣齒擦音 थ ड (hod) d d_d 濁齒擦音 द ल ल (dll) d ʱ d_d_h 濁送氣齒擦音 ध ब (dhob) ʈ ` 清捲舌塞音 कट र (or) ʈʰ `_h 清送氣捲舌塞音 ठ ड (hnd) ɖ d` 濁捲舌塞音 डर (drr) ɖʱ d`_h 濁送氣捲舌塞音 ढ ल (dhl) ʃʰ S_h 清送氣塞擦音 छ ल (chl) dʒʱ dz_h 濁送氣塞擦音 झ ल (jhl) ʰ _h 清送氣軟顎塞音 ख न (hn) ɡʱ g_h 濁送氣軟顎塞音 घ न (ghn) ɳ n` 捲舌鼻音 क षण (hn) ɾ 4 齒齦閃音 र म (rm) ɽ r` 平捲舌閃音 बड (bd) ɽʱ r`_h 濁送氣捲舌閃音 बढ (brh) ʋ v\ 雙唇近音 वस ल (wool) 中央母音 अच छ (chh) 鼻音化中央母音 ह सन (hnn) A_o 開前不圓唇母音 आग (g) A~ 鼻音化開前不圓唇母音 घ ड य (ghryn) ɪ I_o 次閉次前不圓唇母音 इक क स (ee) ɪ I~ 鼻音化次閉次前不圓唇母音 स च ई (nch) _o 閉前不圓唇母音 ब ल ल (bllee) ~ 鼻音化閉前不圓唇母音 नह (nhn) ʊ U_o 次閉次後圓唇母音 उल ल (ll) ʊ U~ 鼻音化次閉次後圓唇母音 म ह (mnh) _o 閉後圓唇母音 फ ल (hool) ~ 鼻音化閉後圓唇母音 ऊ ट (oon) 母音 39

45 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 ɔ O_o 半開後圓唇母音 क न (n) ɔ O~ 鼻音化半開後圓唇母音 भ (bhn) o o 半閉後圓唇母音 स न (on) o o~ 鼻音化半閉後圓唇母音 क य (yon) ɛ E_o 半開前不圓唇母音 प स () ɛ E~ 鼻音化半開前不圓唇母音 म (mn) e e 半閉前不圓唇母音 एक (e) e e~ 鼻音化半閉前不圓唇母音 क त ब (ben) 冰島文 (-IS) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援冰島文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 grbnm 0 c c 清硬顎塞音 n cʰ c_h 送氣清硬顎塞音 nr ç C 清硬顎擦音 héðn d d 濁齒齦塞音 bónd ð D 濁齒擦音 borð T 清唇齒擦音 d g g 濁軟顎塞音 holgóm ɣ G 濁軟顎擦音 hgr h h 清聲門擦音 hel j j 硬顎近音 jöll ʰ _h 送氣清軟顎塞音 óönm l l 齒齦邊近音 gól l l_0 清齒齦邊近音 ól m m 雙唇鼻音 eember m m_0 清雙唇鼻音 om 子音 40

46 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 n n 齒齦鼻音 númer n n_0 清齒齦鼻音 önn ɲ J 硬顎鼻音 ælngr J ŋ N 軟顎鼻音 öngvrnn ŋ N_0 清軟顎鼻音 ræn ʰ _h 送氣清雙唇塞音 lánn r r 齒齦顫音 r r r r_0 清齒齦顫音 ndvörm r 清齒齦擦音 bðhú ʰ _h 送氣清齒齦塞音 n θ T 清齒擦音 þeldö T v v 濁唇齒擦音 lr w w 圓唇軟顎近音 x x 清軟顎擦音 mélg œ 9 半開前圓唇母音 þröldnm O œː 9: 長半開前圓唇母音 vö O 開前不圓唇母音 nen : : 長開前不圓唇母音 r 雙母音 á : : 雙母音 áján ɛ E 半開前不圓唇母音 ennr E ɛ: E: 長半開前不圓唇母音 dre E 閉前不圓唇母音 Gúlíver : : 長閉前不圓唇母音 þrír ɪ I 次閉次前不圓唇母音 ml ɪ: I: 長次閉次前不圓唇母 音 g ɔ O 半開後圓唇母音 regndror O ɔ: O: 長半開後圓唇母音 llrbolr O ɔ O 雙母音 ól O 母音 41

47 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɔ: O: 雙母音 jórr O 閉後圓唇母音 úln : : 長閉後圓唇母音 rú ʏ Y 次閉次前圓唇母音 í ʏ: Y 長次閉次前圓唇母音 grnnn ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 義大利文 (-IT) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援義大利文 聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bcc d d 濁齒齦塞音 dm d z dz 濁齒齦塞擦音 zero d ʒ dz 濁顎齦塞擦音 gro S 清唇齒擦音 mgl g g 濁軟顎塞音 go h h 清聲門擦音 horror j j 硬顎近音 dec 清軟顎塞音 cmo l l 齒齦邊近音 ldo ʎ L 硬顎邊近音 glo J m m 雙唇鼻音 mlle n n 齒齦鼻音 nove ɲ J 硬顎鼻音 lgne J 清雙唇塞音 zz 子音 42

48 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 r r 齒齦顫音 r r 清齒齦擦音 e ʃ S 清齦後擦音 cenz S 清齒齦塞音 vol 清齒齦塞擦音 orz ʃ S 清齦後塞擦音 celo S v v 濁唇齒擦音 ven w w 圓唇軟顎近音 qro z z 濁齒齦擦音 bogno ʒ Z 濁齦後擦音 bjo S 開前不圓唇母音 rco e e 半閉前不圓唇母音 re e ɛ E 半開前不圓唇母音 ero E 閉前不圓唇母音 mero o o 半閉後圓唇母音 ceno o ɔ O 半開後圓唇母音 oo O 閉後圓唇母音 no ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 母音 其他符號 日文 (j-jp) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援日文聲音 對應的視素 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 練習 +renh ʔ 聲門塞音 あつっ ' b b 濁雙唇塞音 舞踊 byo 子音 43

49 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 β B 濁雙唇擦音 ヴィンテー ジ vneej B c c 清硬顎塞音 ききょう yo ç C 清硬顎擦音 人 ho d d 濁齒齦塞音 濁点 den d ʑ dz\ 濁齦顎塞擦音 純 jn J ɡ g 濁軟顎塞音 ご飯 gohn h h 清聲門擦音 本 hon j j 硬顎近音 屋根 yne ɟ J\ 濁硬顎塞音 行儀 gyog J 清軟顎塞音 漢字 nj ɺ l\ 齒齦邊閃音 釣り r r ɺj l\j 齒齦邊閃音 硬顎近 音 流行 ryo r m m 雙唇鼻音 飯 meh n n 齒齦鼻音 猫 neo ɲ J 硬顎鼻音 日本 non J ɴ N\ 小舌鼻音 缶 n 清雙唇塞音 パン n ɸ \ 清雙唇擦音 福 h 清齒齦擦音 層 o ɕ \ 清硬顎擦音 書簡 hon J 清齒齦塞音 手紙 egm 清齒齦塞擦音 釣り r ɕ \ 清齦顎塞擦音 吉 ch J w w 圓唇軟顎近音 電話 denw z z 濁齒齦擦音 座敷 zh äː :_" 長開央不圓唇母音 羽蟻 hr ä _" 開央不圓唇母音 仮名 n eː e:_o 長半開前不圓唇母音 学生 e e_o 半開前不圓唇母音 歴 母音 44

50 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 閉前不圓唇母音 気 ː : 長閉前不圓唇母音 詩歌 h ɯ M 閉後不圓唇母音 運 n ɯː M: 長閉後不圓唇母音 宗教 hyo oː o:_o 長半後圓唇母音 購読 oodo o o o_o 半後圓唇母音 読者 doh o 韓文 (o-kr) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援韓文聲音 對應的視素 IPA X-SAMPA 描述 範例 視素 清軟顎塞音 강, [g]ng # _ 強清軟顎塞音 깨, []e n n 齒齦鼻音 남, [n]m 清齒齦塞音 도, [d]o # _ 強清齒齦塞音 때, []e ɾ 4 齒齦閃音 사랑, [r]ng l l 齒齦邊近音 돌, do[l] m m 雙唇鼻音 무, [m] 清雙唇塞音 봄, [b]om # _ 強清雙唇塞音 뻘, []eol 清齒齦擦音 새, []e # _ 強清齒齦擦音 씨, [] ŋ N 軟顎鼻音 방, b[ng] ɕ \ 清齦顎塞擦音 조, [j]o J # ɕ \_ 強清齦顎塞擦音 찌, [jj] J ɕʰ \_h 送氣清齦顎塞擦音 차, [ch] J ʰ _h 送氣清軟顎塞音 코, []o ʰ _h 送氣清齒齦塞音 통, []ong ʰ _h 送氣清雙唇塞音 패, []e 子音 45

51 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 h h 清聲門擦音 힘, [h]m j j 硬顎近音 양, [y]ng w w 圓唇軟顎近音 왕, [w]ng ɰ M\ 軟顎近音> 의, [wj] 開前不圓唇母音 밥, b[]b ʌ V 半開後不圓唇母音 정, j[eo]ng E ɛ E 半開前不圓唇母音 배, b[e] E o o 半閉後圓唇母音 노, n[o] o 閉後圓唇母音 둘, d[]l ɯ M 閉後不圓唇母音 은, [e]n 閉前不圓唇母音 김, []m 母音 挪威文 (nb-no) 下表列出整組的國際音標 (IPA) 音素和拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援挪 威文聲音對應的視素 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 røv b b 濁雙唇塞音 lbb ç C 清硬顎擦音 no d d 濁齒齦塞音 ldd ɖ d` 濁捲舌塞音 verd 清唇齒擦音 o ɡ ɡ 濁軟顎塞音 gg h h 清聲門擦音 h j j 硬顎近音 g 清軟顎塞音 l l 齒齦邊近音 ll bll ɭ l` 捲舌邊近音 ærlg m m 雙唇鼻音 lm 子音 46

52 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 n n 齒齦鼻音 vnn ɳ n` 捲舌鼻音 grn ŋ N 軟顎鼻音 ng 清雙唇塞音 ho 清齒齦擦音 l ʂ ` 清捲舌擦音 år S ʃ S 清齦後擦音 y S 清齒齦塞音 l ʈ ` 清捲舌塞音 hrd ʋ v\ 唇齒近音 vn w w 圓唇軟顎近音 wll x øː 2: 長半閉前圓唇母音 ø o œ 9 半開前圓唇母音 ø O 中央母音 æː {: 長次開前不圓唇母音 vær ʉ } 閉央圓唇母音 lnd ʉː } 長閉央圓唇母音 ln æ { 次開前不圓唇母音 vær ɑ A 開後不圓唇母音 h ɑː A: 長開後不圓唇母音 h e: e: 長半閉前不圓唇母音 en e ɛ E 半開前不圓唇母音 end E : : 長閉前不圓唇母音 vn ɪ I 次閉次前不圓唇母音 vnd oː oː 長半閉後圓唇母音 vå o ɔ O 半開後圓唇母音 vå O : : 長閉後圓唇母音 bo ʊ U 次閉次後圓唇母音 b y: y: 長閉前圓唇母音 lyn ʏ Y 次閉次前圓唇母音 lynne 母音 47

53 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 視素 其他符號 波蘭文 (l-pl) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援波蘭文聲 音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bob bel d d 濁齒齦塞音 dr do d z dz 濁齒齦塞擦音 dzwon wdzowe d ʑ dz\ 濁齦顎塞擦音 dźwę J d ʐ dz` 濁捲舌塞擦音 dżem dżngl S 清唇齒擦音 r lm g g 濁軟顎塞音 gze wg h h 清聲門擦音 chleb hndel j j 硬顎近音 j mj 清軟顎塞音 r mre l l 齒齦邊近音 l lcj m m 雙唇鼻音 m molo n n 齒齦鼻音 nor ɲ J 硬顎鼻音 oń orń J 清雙唇塞音 or o r r 齒齦顫音 ro r r 清齒齦擦音 m ɕ \ 清硬顎擦音 śrb śneg J ʂ ` 清捲舌擦音 zm mz S 清齒齦塞音 o ół 子音 48

54 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 清齒齦塞擦音 cr co ɕ \ 清齦顎塞擦音 ćm meć J ʂ ` 清捲舌塞擦音 cz rczej S v v 濁唇齒擦音 wore mew w w 圓唇軟顎近音 ł mło z z 濁齒齦擦音 zero ʑ z\ 濁齦顎擦音 źrebę belźne J ʐ z` 濁捲舌擦音 żr żon S 開前不圓唇母音 j ɛ E 半開前不圓唇母音 echo E ɛ E~ 鼻半開前不圓唇母音 węże E 閉前不圓唇母音 le ɔ O 半開後圓唇母音 oczy O ɔ O~ 鼻半開後圓唇母音 wąż O 閉後圓唇母音 cz ɨ 1 閉央不圓唇母音 by ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 母音 其他符號 葡萄牙文 (-PT) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援葡萄牙文 聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 r b b 濁雙唇塞音 do d d 濁齒齦塞音 do 子音 49

55 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 清唇齒擦音 co g g 濁軟顎塞音 go j j 硬顎近音 rgy 清軟顎塞音 cco l l 齒齦邊近音 glo ʎ L 硬顎邊近音 glho J m m 雙唇鼻音 mo n n 齒齦鼻音 no ɲ J 硬顎鼻音 nh J 清雙唇塞音 o ʀ R\ 小舌顫音 brroo 清齒齦擦音 c ʃ S 清齦後擦音 cho S 清齒齦塞音 co v v 濁唇齒擦音 vc w w 圓唇軟顎近音 m z z 濁齒齦擦音 zc ʒ Z 濁齦後擦音 jco S 開前不圓唇母音 ro ~ 鼻開前不圓唇母音 eg e e 半閉前不圓唇母音 eg e e e~ 鼻半閉前不圓唇母音 movem e ɛ E 半開前不圓唇母音 cé E 閉前不圓唇母音 lnge ~ 鼻閉前不圓唇母音 cno o o 半閉後圓唇母音 oder o o o~ 鼻半閉後圓唇母音 comr o ɔ O 半開後圓唇母音 coó O 閉後圓唇母音 ~ 鼻閉後圓唇母音 no 母音 50

56 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 視素 其他符號 葡萄牙文 巴西 (-BR) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援葡萄牙文 (巴西) 聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 r b b 濁雙唇塞音 bo d d 濁齒齦塞音 do d ʒ dz 濁顎齦塞擦音 dde S 清唇齒擦音 co g g 濁軟顎塞音 go j j 硬顎近音 rgy 清軟顎塞音 cco l l 齒齦邊近音 glo ʎ L 硬顎邊近音 glho J m m 雙唇鼻音 mo n n 齒齦鼻音 no ɲ J 硬顎鼻音 nh J 清雙唇塞音 o 清齒齦擦音 c ʃ S 清齦後擦音 cho S 清齒齦塞音 co ʃ S 清齦後塞擦音 noe S v v 濁唇齒擦音 vc w w 圓唇軟顎近音 m 子音 51

57 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 χ X 清小舌擦音 crro z z 濁齒齦擦音 zc ʒ Z 濁齦後擦音 jco S 開前不圓唇母音 ro ~ 鼻開前不圓唇母音 enmo e e 半閉前不圓唇母音 eg e e e~ 鼻半閉前不圓唇母音 movem e ɛ E 半開前不圓唇母音 cé E 閉前不圓唇母音 lnge ~ 鼻閉前不圓唇母音 cno o o 半閉後圓唇母音 oder o o o~ 鼻半閉後圓唇母音 comr o ɔ O 半開後圓唇母音 coó O 閉後圓唇母音 ~ 鼻閉後圓唇母音 no ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 母音 其他符號 羅馬尼亞文 (ro-ro) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援羅馬尼亞 文聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bbă d d 濁齒齦塞音 dă d ʒ dz 濁顎齦塞擦音 george S 清唇齒擦音 cere 子音 52

58 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 g g 濁軟顎塞音 gr# h h 清聲門擦音 hră j j 硬顎近音 be 清軟顎塞音 co# l l 齒齦邊近音 lm m m 雙唇鼻音 mm n n 齒齦鼻音 nor 清雙唇塞音 lă r r 齒齦顫音 rmă r 清齒齦擦音 ore ʃ S 清齦後擦音 m#nă S 清齒齦塞音 清齒齦塞擦音 #ră ʃ S 清齦後塞擦音 ce S v v 濁唇齒擦音 v#ă w w 圓唇軟顎近音 be z z 濁齒齦擦音 mozol ʒ Z 濁齦後擦音 jocă S 中央母音 開前不圓唇母音 c e e 半閉前不圓唇母音 eln e e e_^ 非音節半閉前不圓唇 母音 be e 閉前不圓唇母音 me o o 半閉後圓唇母音 oră o o o_^ 雙母音 ore o 閉後圓唇母音 nde ɨ 1 閉央不圓唇母音 Român " 主要重音 Albm 母音 其他符號 ˈ 53

59 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 視素 俄文 (r-ru) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援俄文聲音 對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 борт bʲ b' 顎音化濁雙唇塞音 бюро d d 濁齒齦塞音 дом dʲ d' 顎音化濁齒齦塞音 дядя 清唇齒擦音 флаг ʲ ' 顎音化清唇齒擦音 февраль g g 濁軟顎塞音 нога ɡʲ g' 顎音化濁軟顎塞音 герой j j 硬顎近音 дизайн ящик 清軟顎塞音 кот ʲ ' 顎音化清軟顎塞音 кино l l 齒齦邊近音 лампа lʲ l' 顎音化齒齦邊近音 лес m m 雙唇鼻音 мама mʲ m' 顎音化雙唇鼻音 мяч n n 齒齦鼻音 нос nʲ n' 顎音化齒齦鼻音 няня 清雙唇塞音 папа ʲ ' 顎音化清雙唇塞音 перо r r 齒齦顫音 роза r rʲ r' 顎音化齒齦顫音 рюмка r 清齒齦擦音 сыр 子音 54

60 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ʲ ' 顎音化清齒齦擦音 сердце русь ɕ: \: 長清齦顎擦音 щека J ʂ ` 清捲舌擦音 шум S 清齒齦塞音 точка ʲ ' 顎音化清齒齦塞音 тётя 清齒齦塞擦音 царь ɕ \ 清齦顎塞擦音 час J v v 濁唇齒擦音 вор vʲ v' 顎音化濁唇齒擦音 верфь x x 清軟顎擦音 хор xʲ x' 顎音化清軟顎擦音 химия z z 濁齒齦擦音 зуб zʲ z' 顎音化濁齒齦擦音 зима ʑ: z\: 長濁齦顎擦音 уезжать J ʐ z` 濁捲舌擦音 жена S 中央母音 開前不圓唇母音 два яблоко e e 半閉前不圓唇母音 печь e ɛ E 半開前不圓唇母音 это E 閉前不圓唇母音 один четыре o o 半閉後圓唇母音 кот o 閉後圓唇母音 муж вьюга ɨ 1 閉央不圓唇母音 мышь 母音 西班牙文 (e-es) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援西班牙文 聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 子音 55 視素

61 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 ero brvo mor eerno b b 濁雙唇塞音 be β B 濁雙唇擦音 bebé B d d 濁齒齦塞音 cndo ð D 濁齒擦音 rder T 清唇齒擦音 e cé g g 濁軟顎塞音 go leng gerr ɣ G 濁軟顎擦音 rgo Argo j j 硬顎近音 hc err rdo vd ʝ j\ 濁硬顎擦音 enhelr yo nyecdo deyerb J 清軟顎塞音 cñ lc qmo l l 齒齦邊近音 lno clor rncl ʎ L 硬顎邊近音 llve ollo J m m 雙唇鼻音 mdre comer nbo n n 齒齦鼻音 ndo nllo n ɲ J 硬顎鼻音 cbñ ñoq J ŋ N 軟顎鼻音 cnco veng 清雙唇塞音 ozo oo r r 齒齦顫音 erro enrchdo r 清齒齦擦音 co c er 清齒齦塞音 mz áomo ʃ S 清齦後塞擦音 chbco S θ T 清齒擦音 cerez zorro lcero z T w w 圓唇軟顎近音 ego mo co cdro x x 清軟顎擦音 jmón generl je reloj z z 濁齒齦擦音 rgo mmo 開前不圓唇母音 nqe e e 半閉前不圓唇母音 eo e 閉前不圓唇母音 cnco o o 半閉後圓唇母音 boqe o 母音 56

62 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 半閉前不圓唇母音 blcr e e 半閉前不圓唇母音 eç e ɛ E 半開前不圓唇母音 dede e 閉前不圓唇母音 br : : 長閉前不圓唇母音 zh ɪ I 次閉次前不圓唇母音 eç ɯ M 閉後不圓唇母音 ıl o o 長半閉後圓唇母音 ol o o: o: 長半閉後圓唇母音 dolr o 閉後圓唇母音 drm : : 長閉後圓唇母音 rhm ʊ U 次閉次後圓唇母音 dol Y y 閉前圓唇母音 güvenl ʏ Y 次閉次前圓唇母音 şı ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 墨西哥西班牙文 (e-mx) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援墨西哥西 班牙文聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 ero brvo mor eerno b b 濁雙唇塞音 be β B 濁雙唇擦音 bebé B d d 濁齒齦塞音 cndo ð D 濁齒擦音 rder T 清唇齒擦音 e cé 子音 57

63 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 g g 濁軟顎塞音 go leng gerr ɣ G 濁軟顎擦音 rgo Argo j j 硬顎近音 hc err rdo vd ʝ j\ 濁硬顎擦音 enhelr yo nyecdo deyerb J 清軟顎塞音 cñ lc qmo l l 邊齒齦近音 lno clor rncl m m 雙唇鼻音 mdre comer nbo n n 齒齦鼻音 ndo nllo n ɲ J 硬顎鼻音 cbñ ñoq J ŋ N 軟顎鼻音 ngoo, ncreíble 清雙唇塞音 ozo oo r r 齒齦顫音 erro enrchdo r 清齒齦擦音 co c er ʃ S 清齦後擦音 how, lh S 清齒齦塞音 mz áomo ʃ S 清齦後塞擦音 chbco S w w 圓唇軟顎近音 ego mo co cdro x x 清軟顎擦音 jmón, generl, eje, reloj z z 濁齒齦擦音 rgo mmo h h 清聲門擦音 Hrron ɹ r\ 齦塞近音 Brn r v v 濁唇齒擦音 Vncover 央開不圓唇母音 nqe e e 半閉前不圓唇母音 eo e 閉前不圓唇母音 cnco o o 半閉後圓唇母音 boqe o 閉後圓唇母音 blcr ɛ E 半開前不圓唇母音 dre E ɔ O 半開後圓唇母音 For O 母音 58

64 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 中央母音 ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 美國西班牙文 (e-us) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援美國西班 牙文聲音對應的視素 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bed d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve g g 濁軟顎塞音 gme h h 清聲門擦音 hoe j j 硬顎近音 ye 清軟顎塞音 c l l 齒齦邊近音 ly m m 雙唇鼻音 moe n n 齒齦鼻音 n ŋ N 軟顎鼻音 hng 清雙唇塞音 e ɹ r\ 齒齦近音 red r 清齒齦擦音 eem ʃ S 清齦後擦音 h S 清齒齦塞音 r ʃ S 清齦後塞擦音 chr S Θ T 清齒擦音 hn T 子音 59

65 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 v v 濁唇齒擦音 ve w w 圓唇軟顎近音 we z z 濁齒齦擦音 zero ʒ Z 濁齦後擦音 von S 中央母音 中央 r 色彩母音 æ { 次開前不圓唇母音 r ɪ I 雙母音 rce ʊ U 雙母音 moh ɑ A 長開後不圓唇母音 her eɪ ei 雙母音 ce e ɝ 3` 半開央不圓唇 r 色彩 母音 nre E ɛ E 半開前不圓唇母音 dre E : 長閉前不圓唇母音 leece ɪ I 次閉次前不圓唇母音 oʊ ou 雙母音 go o ɔ O 長半開後圓唇母音 hogh O ɔɪ OI 雙母音 choce O 長閉後圓唇母音 gooe ʊ U 次閉次後圓唇母音 oo ʌ V 半開後不圓唇母音 r E ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 母音 其他符號 瑞典文 (v-se) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援瑞典文聲 音對應的視素 60

66 適用於支援語言的音素和視素表 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bl d d 濁齒齦塞音 dl ɖ d` 濁捲舌塞音 bord 清唇齒擦音 l g g 濁軟顎塞音 gå h h 清聲門擦音 hl j j 硬顎近音 jg 清軟顎塞音 l l l 齒齦邊近音 lö ɭ l` 捲舌邊近音 härlg m m 雙唇鼻音 ml n n 齒齦鼻音 nålr ɳ n` 捲舌鼻音 brn ŋ N 軟顎鼻音 rng 清雙唇塞音 l r r 齒齦顫音 r r 清齒齦擦音 l ɕ \ 清硬顎擦音 joc J ʂ ` 清捲舌擦音 or chlger S 清齒齦塞音 l ʈ ` 清捲舌塞音 hjor v v 濁唇齒擦音 vår w w 圓唇軟顎近音 l rwy ɧ x\ 清硬顎軟顎擦音 j ø 2 半閉前圓唇母音 öll örr o ø 2: 長半閉前圓唇母音 öl nö ör o ɵ 8 半閉央圓唇母音 b ll o 中央母音 子音 母音 61

67 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ʉː } 長閉央圓唇母音 h l 開前不圓唇母音 hll m æ { 次開前不圓唇母音 herr ɑː A: 長開後不圓唇母音 hl m e: e: 長半閉前不圓唇母音 ve hel e ɛ E 半開前不圓唇母音 ve rä he häll E ɛː E: 長半開前不圓唇母音 äl häl här E: : : 長閉前不圓唇母音 v l : ɪ I 次閉次前不圓唇母音 v ll o: o: 長半閉後圓唇母音 hål mål o ɔ O 半開後圓唇母音 håll moll O : : 長閉後圓唇母音 ol bo ʊ U 次閉次後圓唇母音 bo y y 閉前圓唇母音 by y: y: 長閉前圓唇母音 yl yl ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 土耳其文 (r-tr) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援土耳其文 聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 ɾ 4 齒齦閃音 drm ɾ 4_0_r 清擦齒齦閃音 br ɾ 4_r 擦齒齦閃音 r b b 濁雙唇塞音 r c c 清硬顎塞音 ed 子音 62

68 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 d d 濁齒齦塞音 dede d ʒ dz 濁顎齦塞擦音 cm S 清唇齒擦音 re g g 濁軟顎塞音 glb h h 清聲門擦音 h j j 硬顎近音 y ɟ J\ 濁硬顎塞音 genç J 清軟顎塞音 ıl l l 齒齦邊近音 lle ɫ 5 軟顎化齒齦邊近音 lbren m m 雙唇鼻音 mş n n 齒齦鼻音 nı 清雙唇塞音 清齒齦擦音 e ʃ S 清齦後擦音 şı S 清齒齦塞音 üü ʃ S 清齦後塞擦音 çb S v v 濁唇齒擦音 evor hvec vrym veçl eşv cevel z z 濁齒齦擦音 ver ʒ Z 濁齦後擦音 zı S ø 2 半閉前圓唇母音 göl 0 œ 9 半開前圓唇母音 bnlyö O 開前不圓唇母音 l : : 長開前不圓唇母音 dvcı æ { 次開前不圓唇母音 özlem güvenl gürel omerl e e 半閉前不圓唇母音 eç e ɛ E 半開前不圓唇母音 dede E 閉前不圓唇母音 br : : 長閉前不圓唇母音 zh ɪ I 次閉次前不圓唇母音 eç 母音 63

69 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 ɯ M 閉後不圓唇母音 ıl o o 半閉後圓唇母音 ol o o: o: 長半閉後圓唇母音 dolr o 閉後圓唇母音 drm : : 長閉後圓唇母音 rhm ʊ U 次閉次後圓唇母音 dol y y 閉前圓唇母音 güvenl ʏ Y 次閉次前圓唇母音 şı ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 威爾斯文 (cy-gb) 下表列出國際音標 (IPA) 音素 拓展音標字母評估法 (X-SAMPA) 符號 以及 Amzon Polly 所支援威爾斯文 聲音對應的視素 音素/視素表 IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bbn d d 濁齒齦塞音 deg d ʒ dz 濁顎齦塞擦音 grej S ð D 濁齒擦音 deddeg T 清唇齒擦音 c g g 濁軟顎塞音 gdel h h 清聲門擦音 hern j j 硬顎近音 do 清軟顎塞音 cn l l 齒齦邊近音 ln ɬ K 清齒齦邊擦音 lln m m 雙唇鼻音 me 子音 64

70 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 m m_0 清雙唇鼻音 ymhen n n 齒齦鼻音 nw n n_0 清齒齦鼻音 nhwer ŋ N 軟顎鼻音 rgywng ŋ N_0 清軟顎鼻音 nghenon 清雙唇塞音 m r r 齒齦顫音 rho r r r_0 清齒齦顫音 grw r 清齒齦擦音 h ʃ S 清齦後擦音 wn S 清齒齦塞音 egn ʃ S 清齦後塞擦音 cyn S θ T 清齒擦音 berh T v v 濁唇齒擦音 rw w w 圓唇軟顎近音 rhgweld χ X 清小舌擦音 chwech z z 濁齒齦擦音 d ʒ Z 濁齦後擦音 roge S 中央母音 開前不圓唇母音 cen 雙母音 d 雙母音 wdr ɑː A: 長開後不圓唇母音 mb ɑːɨ A:1 雙母音 elod e: e: 長半閉前不圓唇母音 eh e ɛ E 半開前不圓唇母音 edwr E ɛ E 雙母音 bec E : : 長閉前不圓唇母音 r ɪ I 次閉次前不圓唇母音 mlwn ɨ 1 雙母音 ngryw 母音 65

71 適用於支援語言的音素和視素表 IPA X-SAMPA 描述 範例 視素 o: o: 長半閉後圓唇母音 odd o ɔ O 半開後圓唇母音 oddehr O ɔ O 雙母音 ro O ɔ O 雙母音 rownd O : : 長閉後圓唇母音 cwch ʊ U 次閉次後圓唇母音 cwg ʊ U 雙母音 wyh ˈ " 主要重音 Albm ˌ % 次要重音 Albm.. 音節邊界 A.l.b.m 其他符號 66

72 功能和區域相容性 神經 TTS Amzon Polly 擁有神經 TTS (NTTS) 系統 能夠產生比標準語音更高品質的語音 NTTS 系統可產生最自然 且類似人類的文字轉語音 標準 TTS 語音使用串連合成 此方法會將錄製語音的音素串接 (串連) 在一起 產生非常自然發音的合成語 音 然而 語音中不可避免的變化以及用於分段波形的技術會限制語音品質 Amzon Polly 類神經 TTS 系統不使用標準串連合成來產生語音 它有兩個部分 一種神經網路 將一系列音素 (最基本的語言單位) 轉換為一系列光譜圖 它是不同頻帶中的能階的快照 聲碼器 將光譜圖轉換為連續音訊訊號 類神經 TTS 系統的第一個元件是序列對序列的模型 此模型不會只從對應的輸入建立其結果 也會考慮輸入 元素序列如何共同運作 模型會選擇其輸出的光譜圖 以便其頻帶強調人類大腦在處理語音時使用的聲學特 徵 接著 此模型的輸出會傳遞至神經聲碼器 這會將光譜圖轉換為語音波形 在用來建置一般用途串連合成系 統的大型資料集上進行訓練時 這種序列對序列的方法會產生品質更高 發音更自然的語音 主題 功能和區域相容性 (. 67) 語音引擎 (. 68) 神經語音 (. 70) NTTS 新聞播報員風格 (. 71) 功能和區域相容性 並非所有 AWS 區域都提供神經語音或支援所有 Amzon Polly 功能 以下區域支援神經語音 : 美國東部 (維吉尼亞北部) -e-1 美國西部 (奧勒岡) -we-2 歐洲 (愛爾蘭) e-we-1 這些區域的端點和協定與用於標準語音的端點和協定相同 如需詳細資訊 請參閱區域與端點 神經語音支援以下功能 即時和非同步語音合成操作 新聞播報員風格 (如需新聞播報員風格的詳細資訊 請參閱 NTTS 新聞播報員風格 (. 71) ) 所有語音標記 Amzon Polly 支援的許多 (但並非全部) SSML 標籤 (如需 NTTS 支援的 SSML 標籤的詳細資訊 請參閱 支援的 SSML 標籤 (. 84) ) 67

73 語音引擎 如同標準語音 您可以從各種取樣率中選擇 為您的應用程式最佳化頻寬和音訊品質 標準和神經語音的 有效取樣率為 8 Hz 16 Hz 22 Hz 或 24 Hz 標準語音的預設值為 22 Hz 神經語音的預設值為 24 Hz Amzon Polly 支援 MP3 OGG (Vorb) 和原始 PCM 音訊串流格式 語音引擎 Amzon Polly 可讓您使用神經或標準語音搭配 engne 屬性 它有兩個可能的值 Sndrd (標準) 或 Nerl (神經) 指出要使用標準或神經語音 Sndrd (標準) 為預設值 選擇語音引擎 (主控台) 選擇語音引擎 (主控台) 1. 開啟位於 h://conole.w.mzon.com/olly/ 的 Amzon Polly 主控台 2. 在 Tex-o-Seech (文字轉語音) 頁面上 針對 Engne (引擎) 選擇 Sndrd (標準) 或 Nerl (神經) 68

74 選擇語音引擎 (主控台) 69

75 選擇語音引擎 (CLI) 如果您選擇 Nerl (神經) 只會提供神經語音 並將會停用僅標準語音 選擇語音引擎 (CLI) 選擇語音引擎 (CLI) engne 參數為選用 有兩個可能的值 ndrd 或 Nerl 在建立 SynheSynheT 操作 時使用此屬性 例如 您可以使用下列程式碼在美國西部-1 (奧勒岡) 區域中執行 r-eech-ynhe- AWS CLI 命令 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly r-eech-ynhe- \ --engne nerl --regon -we-1 \ --endon-rl "h://olly.-we-1.mzonw.com/" \ --o-orm m3 \ --o-3-bce-nme yor-bce-nme \ --o-3-ey-rex oonl/rex/h/le \ --voce-d Jonn \ --ex le://ex_le.x 這將會產生類似於下列的回應 "SynheT": { "CreonTme": [..], "Engne": "nerl", "OForm": "m3", "OUr": "h://3.-we-1.mzonw.com/yor-bce-nme/oonl/rex/ h/le.<_d>.m3", "TexTye": "ex", "ReqeChrcer": [..], "TS": "chedled", "TId": [_d], "VoceId": "Jonn" } 神經語音 神經語音僅提供美式英文 (e-us) 和英式英文 (e-gb) 下表列出了這些語音 語言 名稱/ID 性別 英文 (英國) (en-gb) Amy 女性 Emm 女性 Brn 男性 70

76 NTTS 新聞播報員風格 語言 名稱/ID 性別 英文 (美國) (en-us) Ivy 女性 Jonn 女性 Kendr 女性 Kmberly 女性 Sll 女性 Joey 男性 Jn 男性 Kevn 男性 Mhew 男性 粗語音可以與新聞播報員說話風格搭配使用 如需更多詳細資訊 請參閱 NTTS 新聞播報員風 格 (. 71) NTTS 新聞播報員風格 人們會根據情境使用不同的說話風格 例如 輕鬆的交談聽起來與電視或廣播新聞非常不同 當 Amzon Polly 使用標準語音合成語音時 會使用串連方法 串連方法將儲存在音訊資料庫的簡短語音片段拼在一起 以產生最佳且發音最自然的語音 不過 這些語音錄音是沒有特定風格的 Amzon Polly 使用序列到序列模型產生神經語音 產生的結果不僅使用音訊資料輸入來形成語音 也會考慮 其在輸出序列中的位置 然後 它會針對特定的說話風格進行訓練 並強調該風格中固有的某些語音部分 新聞播報員風格使用神經系統來產生 提供具有電視或廣播新聞風格的語音 新聞播報員風格僅適用於 Mhew 和 Jonn 語音 並且僅提供美式英文 (en-us) 下表同時使用標準和神經引擎以及新聞播報員風格 提供 Mhew 和 Jonn 語音的範例 Mhew 語音 Jonn 語音 標準 (串連) 語音 標準 (串連) 語音 神經語音 神經語音 Newcer (神經式) 樣式 Newcer (神經式) 樣式 使用新聞播報員風格 新聞播報員風格僅適用於使用神經引擎的美式英文 (en-us) 語音 Mhew 或 Jonn 語音 若要使用新聞播 報員風格 您必須先選擇神經引擎 然後在您的輸入文字中使用以下語法 套用新聞播報員風格 (主控台) 開啟位於 h://conole.w.mzon.com/olly/ 的 Amzon Polly 主控台 在 Tex-o-Seech (文字轉語音) 頁面上 針對 Engne (引擎) 選擇 Nerl (神經) 71

77 使用新聞播報員風格 3. 使用下方的新聞播報員風格 SSML 語法 將輸入文字新增到您的文字轉語音請求 套用新聞播報員風格 (CLI) 1. 在您的 API 請求中 包含引擎參數 其 nerl 值為 : --engne nerl 2. 使用下方的新聞播報員風格 SSML 語法 將輸入文字新增到您的 API 請求 在您的輸入檔案中使用以下語法 <mzon:domn nme="new">ex</mzon:domn> 例如 您可以搭配 Mhew 或 Jonn 語音使用 newcer (新聞播報員) 標籤 如下所示 : <e> <mzon:domn nme="new"> From he Tedy, Arl 16h, 1912 edon o The Grdn newer: The mden voyge o he Whe Sr lner Tnc, he lrge h ever lnched, h ended n der. The Tnc red her r rom Sohmon or New Yor on Wednedy. Le on Sndy ngh he rc n ceberg o he Grnd Bn o Newondlnd. By wrele elegrhy he en o gnl o dre, nd everl lner were ner enogh o cch nd reond o he cll. </mzon:domn> </e> 如需 SSML 的詳細資訊 請參閱支援的 SSML 標籤 (. 84) 72

78 語音標記類型 語音標記 語音標記是描述您所合成的語音的中繼資料 例如句子或文字在音訊串流中開始和結束的地方 當您為您的 文字請求語音標記時 Amzon Polly 會傳回此中繼資料 而不是合成的語音 透過使用語音標記與合成語音 音訊串流 您可以為您的應用程式提供增強的視覺化體驗 例如 結合文字的中繼資料和音訊串流 可以讓您同步語音與臉部動畫 (同步對嘴) 或說出時反白顯示書寫文 字 使用神經或標準文字轉語音格式時 可以使用語音標記 主題 語音標記類型 (. 73) 使用語音標記 (. 74) 請求語音標記 (主控台) (. 77) 語音標記類型 您可以使用 SynhezeSeech 或 SrSeechSynheT 指令的 SeechMrTye 選項 來請求語音 標記 您指定要從您的輸入文字傳回的中繼資料元素 您可以請求最多四種類型的中繼資料 但是每個請求 必須至少指定一個 請求不會產生任何音訊輸出 在 AWS CLI 中 例如 --eech-mr-ye='["enence", "word", "veme", "ml"]' Amzon Polly 使用下列元素產生語音標記 句子 表示輸入文字中的句子元素 字詞 表示文字中的字詞元素 視素 描述對應每個將說出的視素的臉部和嘴部動作 如需詳細資訊 請參閱Veme 和 Amzon Polly (. 73) ml 描述 SSML 輸入文字的 <mr> 元素 如需詳細資訊 請參閱從 SSML 文件產生語音 (. 78) Veme 和 Amzon Polly 視素代表說出文字時臉部和嘴部的位置 它同等視覺上的音素 是形成單字的基本聲音單位 視素是語音的 基本視覺化建置區塊 每個語言都有一組視素對應到其特定音素 在語言中 每個音素都有對應的視素 其代表形成聲音時的嘴 形 不過 並非所有視素都可對應到特定得音素 因為許多音素在說出時看起來相同 即使聽起來不同 例 如 英文中的 e 和 be 這兩個詞在聲音上不同 但是 在視覺上觀察 (沒有聲音) 時 它們看起來完 全相同 下表列出國際音標 (IPA) 音素和拓展音標字母評估法 (X-SAMPA) 符號的部分清單 以及美式英文聲音對應的 視素 73

79 使用語音標記 如需所有可用語言的完整表格 請參閱適用於支援語言的音素和視素表 (. 15) IPA X-SAMPA 描述 範例 視素 b b 濁雙唇塞音 bed d d 濁齒齦塞音 dg d ʒ dz 濁顎齦塞擦音 jm S ð D 濁齒擦音 hen T 清唇齒擦音 ve g g 濁軟顎塞音 gme h h 清聲門擦音 hoe 子音 使用語音標記 請求語音標記 若要為輸入文字請求語音標記 請使用 ynheze-eech 命令 除了輸入文字 要傳回此中繼資料需 要以下元素 o-orm 當傳回語音標記時 Amzon Polly 僅支援 JSON 格式 --o-orm jon 如果您使用不支援的輸出格式 Amzon Polly 會擲回例外 voce-d 為確保中繼資料符合關聯的音訊串流 請指定相同的語音用來產生合成的語音音訊串流 可用的語音沒有 相同的語音速率 如果您使用用於產生語音以外的聲音 中繼資料不會與音訊串流相符 --voce-d Jonn eech-mr-ye 指定您想要的語音標記的類型 您可以請求任何或所有語音標記類型 但是必須至少指定一個類型 --eech-mr-ye='["enence", "word", "veme", "ml"]' ex-ye 純文字是 Amzon Polly 的預設輸入文字 因此如果您想要傳回 SSML 語音標記 您必須使用 ex-ye ml ole 74

80 語音標記輸出 指定要寫入中繼資料的輸出檔案 MryLmb.x 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly ynheze-eech \ --o-orm jon \ --voce-d Voce ID \ --ex 'In ex' \ --eech-mr-ye='["enence", "word", "veme"]' \ ole 語音標記輸出 Amzon Polly 會以行分隔的 JSON 串流傳回語音標記物件 語音標記物件包含下列欄位 時間 從對應的音訊串流開始的時間戳記 (以毫秒為單位) 類型 語音標記的類型 (句子 文字 視素或 ml) 開始 輸入文字中物件開始的位移 (以位元組為單位) (不包括視素標記) 結束 輸入文字中物件結束的位移 (以位元組為單位) (不包括視素標記) 值 這會根據語音標記的類型而異 SSML <mr> SSML 標籤 視素 視素名稱 文字或句子 輸入文字的子字串 由開始和結束欄位分隔 例如 Amzon Polly 從文字 Mry hd lle lmb 產生以下 word 語音標記物件 {"me":373,"ye":"word","r":5,"end":8,"vle":"hd"} 所述文字 ( hd ) 在音訊串流開始後 373 毫秒起始 並在輸入文字的位元組 5 開始位元組 8 結束 Noe 此中繼資料是用於 Jonnvoce-d 如果您使用另一個具相同輸入文字的語音 中繼資料可能不 同 語音標記範例 以下語音標記請求的範例顯示如何提出一般請求以及其所產生的輸出 範例 1 沒有 SSML 的語音標記 以下範例顯示您請求的簡單句子 Mry hd lle lmb. 的中繼資料在畫面上的呈現 為簡單起見 我 們在這個範例中不包含 SSML 語音標記 75

81 語音標記範例 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly ynheze-eech \ --o-orm jon \ --voce-d Jonn \ --ex 'Mry hd lle lmb.' \ --eech-mr-ye='["veme", "word", "enence"]' \ MryLmb.x 當您提出此請求時 Amzon Polly 以.x 檔案傳回下列 {"me":0,"ye":"enence","r":0,"end":23,"vle":"mry hd lle lmb."} {"me":6,"ye":"word","r":0,"end":4,"vle":"mry"} {"me":6,"ye":"veme","vle":""} {"me":73,"ye":"veme","vle":"e"} {"me":180,"ye":"veme","vle":"r"} {"me":292,"ye":"veme","vle":""} {"me":373,"ye":"word","r":5,"end":8,"vle":"hd"} {"me":373,"ye":"veme","vle":""} {"me":460,"ye":"veme","vle":""} {"me":521,"ye":"veme","vle":""} {"me":604,"ye":"word","r":9,"end":10,"vle":""} {"me":643,"ye":"word","r":11,"end":17,"vle":"lle"} {"me":643,"ye":"veme","vle":""} {"me":739,"ye":"veme","vle":""} {"me":769,"ye":"veme","vle":""} {"me":799,"ye":"veme","vle":""} {"me":882,"ye":"word","r":18,"end":22,"vle":"lmb"} {"me":882,"ye":"veme","vle":""} {"me":964,"ye":"veme","vle":""} {"me":1082,"ye":"veme","vle":""} 在這個輸出中 文字的每個部分是以語音標記分開 句子 Mry hd lle lmb. 句子中的每個字 Mry hd lle 和 lmb. 對應的音訊串流中每個聲音的視素 E r 以此類推 如需有關視素的詳細資訊 請參閱Veme 和 Amzon Polly (. 73) 範例 2 含有 SSML 的語音標記 從 SSML 增強文字產生語音標記的程序與沒有 SSML 的程序類似 使用 ynheze-eech 命令 並指 定 SSML 增強的文字和語音標記的類型 如下例所示 為使用範例容易讀取 我們不包含視素語音標記 但 這些是可以包含的 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly ynheze-eech \ --o-orm jon \ --voce-d Jonn \ --ex-ye ml \ --ex '<e><roody volme="+20db">mry hd <bre me="300m"/> lle <mr nme="nml"/>lmb</roody></e>' \ --eech-mr-ye='["enence", "word", "ml"]' \ o.x 76

82 請求語音標記 (主控台) 當您提出此請求時 Amzon Polly 以.x 檔案傳回下列 {"me":0,"ye":"enence","r":31,"end":95,"vle":"mry hd <bre me=\"300m\"\/> lle <mr nme=\"nml\"\/>lmb"} {"me":6,"ye":"word","r":31,"end":35,"vle":"mry"} {"me":325,"ye":"word","r":36,"end":39,"vle":"hd"} {"me":897,"ye":"word","r":40,"end":61,"vle":"<bre me=\"300m\"\/>"} {"me":1291,"ye":"word","r":61,"end":62,"vle":""} {"me":1373,"ye":"word","r":63,"end":69,"vle":"lle"} {"me":1635,"ye":"ml","r":70,"end":91,"vle":"nml"} {"me":1635,"ye":"word","r":91,"end":95,"vle":"lmb"} 請求語音標記 (主控台) 您可以使用主控台從 Amzon Polly 請求語音標記 然後 您可以檢視中繼資料或將其儲存至檔案 產生語音標記 (主控台) 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 2. 選擇 Tex-o-Seech (文字轉換語音) 索引標籤 繼續使用 Pln Tex (純文字) 索引標籤 或選擇 SSML 索引標籤 輸入文字或將其貼到輸入方塊 對於 Lngge nd regon (語言和區域) 選擇文字的語言 對於 Voce (語音) 選擇您要用於文字的語音 若要變更文字發音 選擇 Comze Pronncon (自訂發音) 以及對於 Aly Lexcon (套用語彙) 選 擇所要的語彙 若要確認語音是在其最終形式 選擇 Len o eech (聆聽語音) 選擇 Chnge Fle Form (變更檔案格式) Noe 下載 MP3 OGG 或 PCM 格式不會產生語音標記 10. 對於 Fle Form (檔案格式) 選擇 Seech Mr (語音標記) 11. 對於 Seech Mr Tye (語音標記類型) 選擇要產生的類型語音標記 選擇 SSML 中繼資料的選項僅 適用於 SSML 索引標籤 如需搭配 Amzon Polly 使用 SSML 的詳細資訊 請參閱從 SSML 文件產生語 音 (. 78) 12. 選擇 Chnge (變更) 13. 選擇 Downlod Seech Mr (下載語音標記) 77

83 保留字元 從 SSML 文件產生語音 您可以使用 Amzon Polly 從純文字或使用語音合成標記語言 (SSML) 標記的文件產生語音 使用 SSML 增 強的文字 可讓您更能控制 Amzon Polly 如何以您提供的文字產生語音 例如 您可以在文字內加入長時間停頓 或變更語音速度或音調 其他選項包括 強調特定字詞或片語 使用音標發音 包括呼吸聲 輕聲低語 使用新聞播報員的說話風格 如需 Amzon Polly 支援的 SSML 標籤及其使用方式的完整詳細資訊 請參閱支援的 SSML 標 籤 (. 84) 使用 SSML 時 有幾個保留字元需要特殊處理 這是因為 SSML 使用這些字元做為其程式碼的一部分 為了 使用它們 您可以使用特定實體來逸出它們 如需詳細資訊 請參閱 SSML 中的保留字元 (. 78) Amzon Polly 運用由語音合成標記語言 (SSML) 版本 1.1 W3C 建議所定義的 SSML 標籤子集 以提供這 些類型的控制 您可以在 Amzon Polly 主控台中或透過 AWS CLI 來使用 SSML 下列主題示範如何使用 SSML 產生語音和 控制輸出 讓它完全符合您的需求 主題 SSML 中的保留字元 (. 78) 使用 SSML (主控台) (. 80) 使用 SSML(AWS CLI) (. 81) 支援的 SSML 標籤 (. 84) SSML 中的保留字元 有五個預先定義的字元不能在 SSML 陳述式中正常使用 這些實體由語言規格保留 這些字元是 名 字 逸 稱 元 出 程 式 碼 &qo; 引 號 (雙 引 號) &m; & 符 號 78

84 保留字元 名 字 逸 稱 元 出 程 式 碼 &o; 單 ' 引 號 &l; < 小 於 符 號 &g; > 大 於 符 號 由於 SSML 使用這些字元做為其程式碼的一部分 若要在 SSML 中使用這些符號 您必須在使用時逸出該字 元 您使用逸出碼而非實際字元 因此它可以正確顯示並且仍建立有效的 SSML 文件 例如 以下句子 We're ng he lwyer Pebody & Chmber, orney--lw. 將在 SSML 轉譯為 <e> We&o;re ng he lwyer Pebody &m; Chmber, orney--lw. </e> 在此情況下 單引號和 & 符號的特殊字元會逸出 因此 SSML 文件仍然有效 對於 & < 和 > 符號 當您使用 SSML 時 一律需要逸出碼 此外 當您使用單引號 (') 做為單引號時 也 必須使用逸出碼 不過 當您使用雙引號 (") 或單引號 (') 做為引號時 是否使用逸出碼將取決於內容 雙引號 在以雙引號分隔的屬性值中 必須逸出 例如 在下列 AWS CLI 程式碼中 --ex "Pee &qo;mverc&qo; Mchell" 在文字內容中不需要逸出 例如 在下列中 He d, "Trn rgh he corner." 使用單引號分隔的屬性值時 不需要逸出 例如 在下列 AWS CLI 程式碼中 --ex 'Pee "Mverc" Mchell' 單引號 當用作單引號時 必須逸出 例如 在下列中 79

85 在主控台使用 SSML We&o;ve go o leve qcly. 在文字內容中不需要逸出 例如 在下列中 "And hen I d, 'Don' qoe me.'" 在以雙引號分隔的程式碼屬性中 不需要逸出 例如 在下列 AWS CLI 程式碼中 --ex "Pee 'Mverc' Mchell" 使用 SSML (主控台) 使用 SSML 標籤 您可以自訂和控制語音的各方面 例如發音 音量和語音速率 在 AWS 主控台 您想要 轉換成音訊的 SSML 增強文字會輸入到文字轉語音頁面的 SSML 標籤上 雖然以純文字輸入的文字 和所您 選擇語言和語音的預設設定息息相關 但使用 SSML 增強的文字不只會告訴 Amzon Polly 您想說的內容 也會告知說的方式 除了新增的 SSML 標籤 Amzon Polly 也以合成純文字的相同方式來合成 SSML 增強 文字 如需詳細資訊 請參閱 練習 2 使用純文字輸入合成語音 (主控台) (. 5) 當使用 SSML 時 您將整個文字包在 <e> 標籤 讓 Amzon Polly 知道您正在使用 SSML 例如 <e>h! My nme Jonn. I wll red ny ex yo ye here.</e> 然後 您使用特定的 SSML 標籤針對 <e> 標籤內部文字來自訂說出文字的方式 您可以增加說話停頓 點 改變更說話節奏 降低或提高音量 或新增其他許多自訂方式 讓文字說出的聲音完全符合您 如需您 可使用的完整 SSML 標籤清單 請參閱支援的 SSML 標籤 (. 84) 在下列範例中 您使用 SSML 標籤來告知 Amzon Polly 在說一小段話時以 全球資訊網協會 取代 W3C 您也可以使用標籤來引進停頓和輕聲低語 比較本練習的結果和使用主控台套用語彙 (合成語 音) (. 105) 如需包含範例的 SSML 的詳細資訊 請參閱支援的 SSML 標籤 (. 84) 若要從 SSML 增強文字合成語音 (主控台) 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 2. 如果尚未顯示 請選擇 Tex-o-Seech (文字轉語音) 標籤 3. 請選擇 SSML 索引標籤 4. 請在文字方塊中輸入或貼上下列文字 <e> He w cgh n he gme.<bre me="1"/> In he mddle o he 10/3/2014 <b l="world Wde Web Conorm">W3C</b> meeng, he hoed, "Nce job!" qe lodly. When h bo red hm, he reeed <mzon:eec nme="whered">"nce job,"</mzon:eec> n wher. </e> SSML 標籤告知 Amzon Polly 如何轉譯文字 <bre me="1"/> 告知 Amzon Polly 在前兩個句子之間暫停 1 秒 <b l="world Wde Web Conorm">W3C</b> 告知 Amzon Polly 以 全球資訊 網協會 取代縮寫 W3C 80

86 在 AWS CLI 中使用 SSML <mzon:eec nme="whered">nce job</mzon:eec> 告知 Amzon Polly 低語 說出 Nce job 的第二個執行個體 Noe 使用 AWS CLI 時 需用引號括住輸入文字 以區隔輸入文字和周圍的程式碼 Amzon Polly 主控台不會顯示程式碼 因此當您使用它時 就不需要用引號括住輸入文字 5. 在 Chooe lngge nd regon (選擇語言和地區) 中 選擇 Englh US (英文 (美國)) 然後選擇聲 音 若要聆聽語音 請選擇 Len o eech (聆聽語音) 若要儲存語音檔案 請選擇 Downlod [orm] (下載 [格式]) 如果您想將其儲存為不同的格式 請選 擇 Chnge le orm (變更檔案格式) 然後選擇您想要的格式 然後選擇 Chnge (變更) 和 Downlod [orm] (下載 [格式]) 使用 SSML(AWS CLI) 您可以使用 AWS CLI 來合成 SSML 輸入文字 以下範例說明如何使用 AWS CLI 執行常見的任務 主題 使用 SSML 搭配 Synheze-Seech 命令 (. 81) 合成 SSML 增強的文件 (. 82) 將 SSML 用於常見的 Amzon Polly 任務 (. 82) 使用 SSML 搭配 Synheze-Seech 命令 此範例說明如何使用 ynheze-eech 命令搭配 SSML 字串 使用 ynheze-eech 命令時 通常會提供下列項目 輸入文字 (必要) 開頭和結尾標籤 (必要) 輸出格式 語音 在這個範例中 您將在引號中指定一個簡單的文字字串 以及所需的開頭和結尾 <e></e> 標籤 Imorn 雖然在 Amzon Polly 主控台中不需用引號括住輸入文字 但您必須在 AWS CLI 中使用引號 您也 務必區分括住輸入文字的引號和個別標籤所需的引號 例如 您可以使用標準引號 (") 括住輸入文字 並使用單引號 (') 括住內部標籤 或者反過來 兩種 選項都適用於 Unx Lnx 和 mcos 不過 在 Wndow 中 您必須使用標準引號括住輸入文 字 以及使用單引號括住標籤 對於所有作業系統 您可以使用標準引號 (") 括住輸入文字 並使用單引號 (') 括住內部標籤 例 如 --ex "<e>hello <bre me='300m'/> World</e>" 對於 Unx Lnx 和 mcos 您也可以採用相反方式 亦即使用單引號 (') 括住輸入文字 使用標 準引號 (") 括住內部標籤 --ex '<e>hello <bre me="300m"/> World</e>' 81

87 合成 SSML 增強的文件 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly ynheze-eech \ --ex-ye ml \ --ex '<e>hello world</e>' \ --o-orm m3 \ --voce-d Jonn \ eech.m3 若要聆聽合成語音 請使用任何音訊播放器來播放產生的 eech.m3 檔案 合成 SSML 增強的文件 對於較長的輸入文字 比較輕鬆的方法是將 SSML 內容儲存到檔案 然後在 ynheze-eech 命令中 指定檔案名稱 例如 您可以將以下內容儲存至名為 exmle.xml 的檔案 <?xml veron="1.0"?> <e veron="1.1" xmln="h:// xmln:x="h:// x:chemlocon="h:// h:// xml:lng="en-us">hello World</e> xml:lng 屬性將 en-us (美式英文) 指定為輸入文字的語言 如需輸入文字的語言和所選聲音的語言如何影 響 SynhezeSeech 操作的相關資訊 請參閱改進外語文字的發音 (. 84) 若要執行 SSML 增強的檔案 將 SSML 儲存到檔案 (例如 exmle.xml) 從 XML 檔案的存放路徑 執行下列 ynheze-eech 指令 並將輸入的文字換成 le:\ \exmle.xml 來將 SSML 檔案指定為輸入項目 因為這個命令會指向檔案 而非包含實際的輸入文 字 因此無使用需引號 Noe 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 用於 Wndow 時 請以插入號 (^) 取 代每一行結尾處的 Unx 接續字元斜線 (\) w olly ynheze-eech \ --ex-ye ml \ --ex le://exmle.xml \ --o-orm m3 \ --voce-d Jonn \ eech.m3 3. 若要聆聽合成語音 請使用任何音訊播放器來播放產生的 eech.m3 檔案 將 SSML 用於常見的 Amzon Polly 任務 以下範例顯示如何使用 SSML 標籤來完成常見的 Amzon Polly 任務 如需了解更多 SSML 標籤 請參閱支 援的 SSML 標籤 (. 84) 若要測試以下範例 請使用下列 ynheze-eech 命令搭配適當的 SSML 增強文字 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') 82

88 將 SSML 用於常見的 Amzon Polly 任務 w olly ynheze-eech \ --ex-ye ml \ --ex '<e>hello <bre me="300m"/> World</e>' \ --o-orm m3 \ --voce-d Jonn \ eech.m3 加入停頓 若要在文字之間加入停頓 請使用 <bre> 元素下列的 SSML ynheze-eech指令使用 <bre> 元 素 在 Hello 和 World 字詞之間加入 300 毫秒的延遲 <e> Hello <bre me="300m"/> World. </e> 控制音量 音調和速度 若要控制音調 說話的速度和音量 請使用 <roody> 元素 下列的 ynheze-eech (合成語音) 指令使用 <roody> 元素來控制音量 <e> <roody volme="+20db">hello world</roody> </e> 下列 ynheze-eech 命令使用 <roody> 元素來控制音調 <e> <roody ch="x-hgh">hello world.</roody> </e> 下列 ynheze-eech 命令使用 <roody> 元素指定語音速率 (說話的速度) <e> <roody re="x-">hello world.</roody> </e> 您可以在 <roody> 元素中指定多個屬性 如下列範例所示 <e> <roody volme="x-lod" ch="x-hgh" re="x-">hello world.</roody> </e> 輕聲低語 若要低聲說出文字 請使用 <mzon:eec nme="whered"> 元素 在下列範例中 <mzon:eec nme="whered"> 元素告知 Amzon Polly 低聲說出 lle lmb <e> Mry h <mzon:eec nme="whered">lle lmb.</mzon:eec> </e> 若要加強此種效果 可使用 <roody> 元素來稍微減慢低聲語音的速度 83

89 支援的 SSML 標籤 強調文字 若要強調一個單字或片語 請使用 <emh> 元素 <e> <emh level="rong">hello</emh> world how re yo? </e> 指定如何說出特定文字 若要提供口語文字類型的相關資訊 請使用 <y-> 元素 例如 在下列 SSML 中 <y-> 指出文字 4/6 應解譯為日期 nerre-="de" orm="dm" 屬性指出應使用月/日的格式來說出日期 您也可以使用 <y-> 元素 告知 Amzon Polly 將數字解說為分數 電話號碼 測量單位等等 <e> Tody <y- nerre-="de" orm="md" >4/6</y-> </e> 產生的語音是 Tody Jne 4h <y-> 標記利用 nerre- 屬性提供其他內容 說明應如 何解譯文字 若要驗證合成語音的準確性 請播放產生的 eech.m3 檔案 如需此元素的詳細資訊 請參閱 控制特殊字詞類型的口說方式 (. 93) 改進外語文字的發音 Amzon Polly 假設輸入文字的語言跟您所選的語音語言相同 若要改善輸入文字中外語字詞的發音 可在 ynheze-eech 呼叫中 利用 xml:lng 屬性來指定目標語言 這會告知 Amzon Polly 對您標記的 外語文字套用不同的發音規則 以下範例說明如何在輸入文字中使用不同的語言組合 以及如何指定外語文字的語音和發音 如需可用語言 的完整清單 請參閱Amzon Polly 支援的語言 (. 14) 在下列範例中 語音 (Jonn) 是美式英文語音 根據預設 Amzon Polly 會假設輸入文字的語言跟語音相 同 (在此例中是美式英文) 使用 xml:lng 標籤時 Amzon Polly 會根據外語的發音規則 將文字解譯為 西班牙文 因此所選語音說出的文字會以西班牙文字詞發音 如果沒有此標籤 將使用所選語音的發音規則 來說出文字 <e> Th rern errc. <lng xml:lng="e-es">mcho go.</lng> </e> 由於輸入文字的語言是英文 Amzon Polly 會將西班牙文音素對應至最接近的英文音素因此 Jonn 會以 美式英文為母語來讀出文字 也就是能以西班牙文正確發音 但帶著美式英腔 Noe 有些語言和其他語言更為相近 因此某些語言組合的效果會比其他語言的更好 支援的 SSML 標籤 Amzon Polly 支援下列 SSML 標籤 84

90 識別 SSML 增強文字 動作 SSML 標籤 神經語音可使用 加入停頓 (. 85) <bre> 完整可用性 強調文字 (. 86) <emh> 無 指定特定文字的其他語言 (. 87) <lng> 完整可用性 在您的文字中放置自訂標籤 (. 87) <mr> 完整可用性 在段落之間加入停頓 (. 88) <> 完整可用性 使用音標發音 (. 88) <honeme> 完整可用性 控制音量 說話速度和音調 (. 89) <roody> 僅限韻律音量 設定合成語音的持續時間長度上 限 (. 90) <roody mzon:mx-dron> 無 在句子之間加入停頓 (. 93) <> 完整可用性 控制特殊字詞類型的口說方式 (. 93) <y-> 部分可用性 識別 SSML 增強文字 (. 85) <e> 完整可用性 縮略詞和縮寫發音 (. 95) <b> 完整可用性 指定部分語音來改進發音 (. 95) <w> 完整可用性 加入呼吸聲 (. 96) <mzon:o-breh> 無 新聞播報員說話風格 (. 99) <mzon:domn nme="new"> 僅選取神經語音 加入動態範圍壓縮 (. 99) <mzon:eec nme="drc"> 完整可用性 輕聲說話 (. 101) <mzon:eec honon="o"> 無 控制音色 (. 101) <mzon:eec vocl-rc-lengh> 無 輕聲低語 (. 102) <mzon: eec nme="whered"> 無 如果您以神經或標準格式使用不支援的 SSML 標籤 將會收到錯誤 識別 SSML 增強文字 <e> 標籤是所有 Amzon Polly SSML 文字的根元素 所有 SSML 增強文字必須包含在一組 <e> 標籤中 <e>mry hd lle lmb.</e> 神經和標準 TTS 格式都支援此標籤 加入停頓 <bre> 若要在文字中加入停頓 請使用 <bre> 標籤 您可以根據強度設定停頓 (等同於逗號 句子或段落後的停 頓) 或者您可以將它設定為以秒或毫秒計算的特定時間長度 如果您不指定屬性來決定停頓長度 Amzon Polly 會使用預設值 <bre rengh="medm"> 在逗號後加入停頓和停頓的長度 85

91 強調文字 rengh 屬性值 none 無停頓 使用 none 可移除正常發生的停頓 例如在句點之後的停頓 x-we 具有 none 相同的強度 無停頓 we 設定和逗號後的停頓相同持續時間的停頓 medm 具有 we 相同的強度 rong 設定和句子後的停頓相同持續時間的停頓 x-rong 設定和段落後的停頓相同持續時間的停頓 me 屬性值 [nmber] 停頓期間 以秒為單位 最大期間為 10 [nmber]m 停頓期間 以毫秒為單位 最大期間為 10000m 例如 <e> Mry hd lle lmb <bre me="3"/>whoe leece w whe now. </e> 如果未搭配 bre 標籤來使用屬性 結果會因文字內容而有所不同 如果 bre 標籤旁沒有其他標點符號 該標籤會建立 <bre rengh="medm"> (逗號長度停 頓) 如果標籤旁邊有逗號 會將標籤升級為 <bre rengh="rong"> (句子長度停頓) 如果標籤旁邊有句點 會將標籤升級為 <bre rengh="x-rong"> (段落長度停頓) 神經和標準 TTS 格式都支援此標籤 強調文字 <emh> 若要強調文字 請使用 <emh> 標籤 強調文字會變更語音速度和音量 強調程度越大 會讓 Amzon Polly 說出文字的聲音更大 速度更慢 強調程度越小 則會更安靜 更迅速說出 若要指定強調程度 請使 用 level 屬性 level 屬性值 Srong 提高音量並減慢說話的速度 讓語音更大聲 更緩慢 Modere 提高音量並減慢說話的速度 但幅度比 rong 還小 Modere 是預設值 Redced 降低音量並加快說話的速度 語音更輕柔 更快速 Noe 聲音的正常講話速度和音量落在 modere 和 redced 等級之間 例如 <e> I lredy old yo I <emh level="rong">relly le</emh> h eron. </e> 86

92 指定特定文字的其他語言 目前只有標準 TTS 格式支援此標籤 指定特定文字的其他語言 <lng> 使用 <lng> 標籤可指定特定文字 片語或句子的其他語言 外國語言文字和片語以一組 <lng> 標籤括住 時 語音轉譯的表現一般都會比較好 若要指定語言 請使用 xml:lng 屬性 如需可用語言的完整清單 請參閱Amzon Polly 支援的語言 (. 14) 除非套用 <lng> 標籤 否則輸入文字中的所有字詞 都會以 voce-d 指定的語音語言說出 如果您套用 <lng> 標籤 文字會以該語言說出 例如 如果 voce-d 是 Jonn 講(美式英文) Amzon Polly 會以不帶法文腔調的 Jonn 語音說出以下 文 <e> Je ne rle rnç. </e> 如果您使用 Jonn 語音搭配 <lng> 標籤 Amzon Polly 會以美式腔調法文的 Jonn 語音說出下列句 子 <e> <lng xml:lng="r-fr">je ne rle rnç.</lng>. </e> 由於 Jonn 不是以法文為母語 發音會以其母語語言 (美式英文) 為主 例如 完美的法語發音在發出文字 rnç 的 /R/ 時會帶有小舌顫音 但 Jonn 的美式英文語音則會發音為對應的聲音 /r/ 如果使用 Gorgo 的 voce-d (講義大利文) Amzon Polly 會以 Gorgo 的語音 使用義大利語發音說出 下列句子 <e> M ce Brce Srngeen. </e> 如果您使用相同的語音搭配下列 <lng> 標籤 Amzon Polly 會使用義大利式腔調的英文來發音 Brce Srngeen <e> M ce <lng xml:lng="en-us">brce Srngeen.</lng> </e> 在合成語音時 此標籤也可用來做為選用 DelLngCode 選項的替代項目 不過 這樣就需要使用 SSML 來設定文字的格式 神經和標準 TTS 格式都支援此標籤 在您的文字中放置自訂標籤 <mr> 若要將自訂標籤放在文字內 請使用 <mr> 標籤 Amzon Polly 不會對此標籤採取動作 但會傳回標籤在 SSML 中繼資料的位置 只要維持以下格式 此標籤可以是您想呼叫的任何項目 <mr nme="g_nme"/> 87

93 在段落之間加入停頓 例如 假設標籤名稱為 動物 而輸入文字是 <e> Mry hd lle <mr nme="nml"/>lmb. </e> Amzon Polly 可能傳回以下 SSML 中繼資料 {"me":767,"ye":"ml","r":25,"end":46,"vle":"nml"} 神經和標準 TTS 格式都支援此標籤 在段落之間加入停頓 <> 若要在文字的段落之間加入停頓 請使用 <> 標籤 使用此標籤可提供比母語人士通常在逗號或句子結尾處 所用停頓更長的停頓時間 使用 <> 標籤來括住段落 <e> <>Th he r rgrh. There hold be e er h ex oen.</ > <>Th he econd rgrh.</> </e> 這相當於使用 <bre rengh="x-rong"/> 來指定停頓 神經和標準 TTS 格式都支援此標籤 使用音標發音 <honeme> 若要讓 Amzon Polly 對特定文字使用音標發音 請使用 <honeme> 標籤 <honeme> 標籤需要兩個屬性 這些屬性表示 Amzon Polly 使用的語音字母 以及修正發音的音標 lhbe 指出要使用的國際音標 (IPA) x-m 指出要使用的拓展音標字母評估法 (X-SAMPA) h 指定發音的音標 如需詳細資訊 請參閱 適用於支援語言的音素和視素表 (. 15) 透過 <honeme> 標籤 Amzon Polly 將使用 h 屬性指定的發音 而不是選定語音所用語言預設關聯的標 準發音 例如 文字 ecn 可用兩種方式發音 在下列範例中 於每一行指派不同的發音給 ecn Amzon Polly 會以 h 屬性中的指定方式來發音 ecn 而不使用預設讀音 國際音標 (IPA) <e> Yo y, <honeme lhbe="" h="####n">ecn</honeme>. I y, <honeme lhbe="" h="#.æn">ecn</honeme>. </e> 88

94 控制音量 說話速度和音調 拓展音標字母評估法 (X-SAMPA) <e> Yo y, <honeme lhbe='x-m' h='i"a:n'>ecn</honeme>. I y, <honeme lhbe='x-m' h='".{n'>ecn</honeme>. </e> 此外 中文會將拼音用於音標發音 拼音 <e> ## <honeme lhbe="x-mzon-nyn" h="bo2">#</honeme># ## <honeme lhbe="x-mzon-nyn" h="bo2">#</honeme># </e> 神經和標準 TTS 格式都支援此標籤 控制音量 說話速度和音調 <roody> 若要控制所選語音的音量 速度或音調 請使用 roody 標籤 音量 說話速度和音調取決於選擇的特定語音 除了不同語言語音之間的差異 講相同語言的各個語音之間 也存在差異 因此 雖然所有語言的屬性類似 但各語言間有明顯變化 因此沒有絕對值可用 roody 標籤有三個屬性 三個屬性都有數個可用值來設定屬性 每個屬性使用相同的語法 <roody rbe="vle"></roody> volme del 重設音量為目前語音的預設音量 len x-o o medm lod x-lod 將音量設定為目前語音的預先定義值 +ndb -ndb 根據目前音量來變更音量 +0dB 的值代表無變動 +6dB 表示大約目前音量的兩 倍 -6dB 則是指大約目前音量的一半 例如 您可以設定一個段落的音量 如下所示 <e> Someme cn omeme be el o <roody volme="lod">ncree he volme or ecc eech.</roody> </e> 或者 您可以用下列方式來設定音量 <e> And omeme lower volme <roody volme="-6db"> more eecve wy o nercng wh yor dence.</roody> </e> re x-low low medm x- 設定音調為所選語音的預先定義值 n% 說話速度的非負值百分比變更 例如 100% 表示說話速度無變化 200% 表示說話速度是預設速 度的兩倍 以及 50% 表示說話速度率是預設速度的一半 這個值的範圍為 20 到 200% 例如 您可以設定一個段落的說話速度 如下所示 89

95 設定合成語音的持續時間長度上限 <e> For drmc roe, yo mgh wh o <roody re="low">eed he eng re o yor ex.</roody> </e> 或者 您可以用下列方式來設定音量 <e> Alhogh n ome ce, mgh hel yor dence o <roody re="85%">low he eng re lghly o d n comrehenon.</roody> </e> ch del 重設音調為目前語音的預設層級 x-low low medm hgh x-hgh 設定音調為目前語音的預先定義值 +n% 或 -n% 利用相對百分比來調整音調 例如 +0% 的值代表基準音高未變 +5% 會將基準音高提高 一些 而 -5% 則會使基準音高降低一些 例如 您可以設定一個段落的音調 如下所示 <e> Do yo le yhezed eech <roody ch="hgh">wh ch h hgher hn norml?</roody> </e> 或者 您可以用下列方式來設定音量 <e> Or do yo reer yor eech <roody ch="-10%">wh omewh lower ch?</ roody> </e> <roody> 標籤必須至少包含一個屬性 但在相同標籤中可以包含多個屬性 <e> Ech mornng when I we, <roody volme="lod" re="x-low">i e qe lowly nd delberely nl I hve my coee.</roody> </e> 也可以和巢狀標籤結合使用 如下所示 <e> <roody re="85%">someme combnng rbe <roody ch="-10%">cn chnge he mreon yor dence h o voce</roody> well.</roody> </e> 只有使用 volme 屬性的神經語音才支援此標籤 使用神經格式時 任何其他屬性都會產生錯誤 標準 TTS 格式完全支援此標籤 設定合成語音的持續時間長度上限 <roody mzon:mx-dron> 90

96 設定合成語音的持續時間長度上限 若要控制語音合成時的持續時間長度 請使用 <roody> 標籤搭配 mzon:mx-dron 屬性 取決於您所選擇的語音 合成語音的持續時間長度會稍有不同 因此 如果要將合成的語音 對應到視覺效 果或需要精準對時的其他活動 可能會有點困難 對翻譯應用程式而言 這項問題會更嚴重 因為不同語言 說出特定詞組所需的時間 可能會有很大的差異 <roody mzon:mx-dron> 標籤會將合成語音對應到您所要的持續時間長度 此標籤使用以下語法 <roody mzon:mx-dron="me dron"> 使用 <roody mzon:mx-dron> 標籤 您可以指定持續時間長度 (秒或毫秒) n 持續時間長度上限 (以秒為單位) nm 持續時間長度上限 (以毫秒為單位) 例如 下列口說文字的時間長度上限為 2 秒 <e> <roody mzon:mx-dron="2"> Hmn eech owerl wy o commnce. </roody> </e> 放置在標籤內的文字 不會超過指定的持續時間長度 如果選擇的語音或語言 通常會超過該持續時間長 度 則 Amzon Polly 會加快語音的速度 以讓內容符合此時間長度 如果指定的持續時間長度 多於以正常速度說出文字所需的時間 則 Amzon Polly 會以正常速度來讀出語 音 &POL; 不會減慢語音的速度或加入靜音 因此產生的音訊會比所請求的短 Noe Amzon Polly 不會將速度增加超過正常速度的 5 倍 如果用超過這個標準的速度來說出文字 通常 會聽不清楚 如果即使加快到最高速度 也無法符合您指定的持續時間長度時 會將音訊的速度加 快 但持續時間將會超過指定的長度 您可以在 <roody mzon:mx-dron> 標籤中包含單一句子或多個句子 也可以在文字內容中使 用多個 <roody mzon:mx-dron> 例如 <e> <roody mzon:mx-dron="2400m"> Hmn eech owerl wy o commnce. </roody> <bre rengh="rong"/> <roody mzon:mx-dron="5100m"> Even mle Hello cn convey lo o normon deendng on he ch, nonon, nd emo. </roody> <bre rengh="rong"/> <roody mzon:mx-dron="8900m"> We nrlly ndernd h normon, whch why eech del or creng lcon where creen n rccl or oble, or mly n convenen. </roody> </e> 91

97 設定合成語音的持續時間長度上限 使用 <roody mzon:mx-dron> 標籤可以增加 Amzon Polly 傳回合成語音時的延遲時間 延遲 的程度取決於文字內容及其長度 我們建議所使用的文字內容 最好包含相對較短的文字段落 限制 使用 <roody mzon:mx-dron> 標籤的方式和此標籤搭配其他 SSML 標籤運作的方式 皆受到 限制 <roody mzon:mx-dron> 標籤內所包含的文字 其長度不能超過 1500 個字元 您不能嵌套 <roody mzon:mx-dron> 標籤 如果將一個 <roody mzon:mxdron> 標籤置於另一個標籤中 Amzon Polly 會忽略裡面的標籤 例如 在下列的範例內容中 <roody mzon:mx-dron="5"> 標籤會被忽略 <e> <roody mzon:mx-dron="16"> Hmn eech owerl wy o commnce. <roody mzon:mx-dron="5"> Even mle Hello cn convey lo o normon deendng on he ch, nonon, nd emo. </roody> We nrlly ndernd h normon, whch why eech del or creng lcon where creen n rccl or oble, or mly n convenen. </roody> </e> 您不能在使用 <roody> 標籤搭配 re 標籤中的 <roody mzon:mx-dron> 屬性 因為 這兩者都會影響到口語文字的速度 在下列的範例中 Amzon Polly 會忽略 <roody re="2"> 標籤 <e> <roody mzon:mx-dron="7500m"> Hmn eech owerl wy o commnce. <roody re="2"> Even mle Hello cn convey lo o normon deendng on he ch, nonon, nd emo. </roody> </roody> </e> 停頓和 mx-dron 使用 mx-dron 標籤時 您仍然可以在文字內容中插入停頓 不過 在計算語音的持續時間長度上限 時 Amzon Polly 也會將停頓的長度包含在內 此外 Amzon Polly 會保留段落中出現逗號和句點之處的 短暫停頓 並將其列入持續時間長度上限的計算 例如 在下列的段落中 8 秒的語音包含了 600 毫秒的停頓 以及逗號和句點所造成的停頓 <e> <roody mzon:mx-dron="8"> Hmn eech owerl wy o commnce. <bre me="600m"/> Even mle Hello cn convey lo o normon deendng on he ch, nonon, nd emo. </roody> 92

98 在句子之間加入停頓 </e> 目前只有標準 TTS 格式支援此標籤 在句子之間加入停頓 <> 若要在您的文字行或句子之間加入停頓 請使用 <> 標籤 使用此標籤與下列方式有相同的效果 使用句號 (.) 結束句子 使用 <bre rengh="rong"/> 指定停頓 與 <bre> 標籤不同的是 <> 標籤必須括住句子 這可用於依行 (而非句子) 分組的合成語音 例如詩 詞 在下列範例中 <> 標籤在第一個句子和第二個句子之後 建立短暫的停頓 最後一個句子沒有 <> 標籤 但其後也有短暫的停頓 因為以句號結尾 <e> <>Mry hd lle lmb</> <>Whoe leece w whe now</> And everywhere h Mry wen, he lmb w re o go. </e> 神經和標準 TTS 格式都支援此標籤 控制特殊字詞類型的口說方式 <y-> 使用 <y-> 標籤搭配 nerre- 屬性 告知 Amzon Polly 如何說出特定的字元 文字和數字 這可讓您提供額外的內容 以消除 Amzon Polly 應如何轉譯文字的任何模棱兩可說明 y- 標籤使用一個屬性 <nerre-> 此屬性可使用數個可能值 每個值使用相同的語法 <y- nerre-="vle">[ex o be nerreed]</y-> 以下值可用於 nerre- chrcer 或 ell-o 拼出文字的每個字母 如 -b-c Noe 此選項目前不支援使用神經語音 如果 Amzon Polly 在執行時間遇到此 SSML 程式碼 受影響 的句子將使用相關的標準語音合成 不過 請注意 這句子仍然會像使用神經語音一樣計費 crdnl 或 nmber 解讀數值文字為基數 如 1,234 ordnl 解讀數值文字為序號 如第 1,234 個 dg 個別拼出每個位數 如 rcon 解讀數值文字為分數 這可以處理常見的分數 例如 3/20 以及混合分數 例如 2 ½ 如需 詳細資訊 請參閱下方 n 將數值文字解譯為測量單位 值應該是一個數字或後面接著單位的分數 中間沒有空格 如 1/2nch 或只跟著一個單位 如 1meer de 將文字解譯為日期 日期的格式必須以格式屬性指定 如需詳細資訊 請參閱下方 me 將數值文字解譯為以分鐘和秒為單位的持續時間 例如 1'21" 93

99 控制特殊字詞類型的口說方式 ddre 將文字解譯為街道地址的一部分 exleve 嗶聲處理 標籤中所包含的內容 elehone 將數值文字解譯為 7 位數或 10 位數的電話號碼 如 您也可以使用此值來處 理電話分機 如 x345 如需詳細資訊 請參閱下方 Noe 目前只提供英文語音的 elehone 選項 分數 Amzon Polly 會將 y- 標籤內具有 nerre-="rcon" 屬性的值解譯為常用分數 以下是 分數的語法 分數 語法 語語/語語 如 2/9 例如 <y- nerre-="rcon">2/9</y-> 發音為 九分之二 非負數的混合數字 語法 語語+語語/語語 例如 3+1/2 例如 <y- nerre-="rcon">3+1/2</y-> 發音為 三又二分之一 Noe 3 和 1/2 之間必須有 + Amzon Polly 不支援未附加 + 的混合數字 例如 3 1/2 日期 當 nerre- 設定為 de 您也需要指出日期的格式 此標籤使用以下語法 <y- nerre-="de" orm="orm">[de]</y-> 例如 <e> I w born on <y- nerre-="de" orm="dmy"> </y->. </e> 下列格式可以搭配 de 屬性使用 mdy 月-日-年 dmy 日-月-年 ymd 年-月-日 md 月-日 dm 日-月 ym 年-月 my 月-年 d 日 m: 月. y: 年. 94

100 縮略詞和縮寫發音 yyyymmdd 年-月-日 如果使用此格式 您可以使用問號讓 Amzon Polly 略過日期的某些部分 例如 Amzon Polly 會將下列內容呈現為 9 月 22 日 <y- nerre-="de">????0922</y-> 不需要 Form 電話 <y-> 嘗試根據文字的格式 (即使沒有 Amzon Polly 標籤) 正確解譯您提供的文字 例如 如果您的文 字包含 Amzon Polly 會將它解譯為 10 位數的電話號碼 並個別說出每個數字 每個 破折號則個別做暫停的停頓 在這種情況下 您不需要使用 <y- nerre-="elehone"> 不過 如果您提供文字 且希望 Amzon Polly 將它說出為電話號碼 您需要指定 <y- nerre-="elehone"> 解譯每個元素的邏輯具有語言特殊性 例如 美式英文和英式英文對於電話號碼的發音方式各不相同 (在英 式英文中 同一個數字連續群組在一起時 例如 兩個五 或 三個四 ) 若想了解差異 您可以使用美國 語音與英國語音測試以下範例 <e> Rchrd' nmber <y- nerre-="elehone"> </y-> </e> 除了 字元 或 拼出 功能之外 神經和標準 TTS 格式都支援此標籤 如果 Amzon Polly 在執行時間遇 到此 SSML 程式碼 受影響的句子將使用相關的標準語音合成 不過 請注意 這句子仍然會像使用神經語 音一樣計費 縮略詞和縮寫發音 <b> 使用 <b> 標籤搭配 l 屬性 可取代所選文字的不同字詞 (或讀音) 例如首字母縮寫或縮寫 此屬性使用語法 <b l="new word">bbrevon</b> 在下列範例中 名稱 Mercry (水銀) 取代為元素的化學符號 讓音訊內容更清楚 <e> My vore chemcl elemen <b l="mercry">hg</b>, bece loo o hny. </e> 神經和標準 TTS 格式都支援此標籤 指定部分語音來改進發音 <w> 您可使用 <w> 標籤 透過指定單字的部分語音或替代含意來自訂文字發音 這可使用 role 屬性來完成 此標籤使用以下語法 <w role="rbe">ex</w> 95

101 加入呼吸聲 下列值可以用於 role 屬性 指定語音部分 mzon:vb 將文字解釋為動詞 (現在式) mzon:vbd 將文字解釋為過去時態或過去分詞 例如 視語音部分而定 美式英文的 red 讀音可依照標籤而改變 <e> The word <y- nerre-="chrcer">red</y-> my be nerreed eher he reen mle orm <w role="mzon:vb">red</w>, or he rcle orm <w role="mzon:vbd">red</w>. </e> 指定替代含意 mzon:sense_1 顯示時使用非預設的字意 例如 名詞 b 的讀音會因含意的不同而不同 預 設的含意是指音域的最低部分 其替代含意是指一種淡水魚 也叫做 b 但讀音不同 使用 <w role="mzon:sense_1">b</w> 轉譯音訊文字的非預設發音 (淡水魚) 如果您依下列合成 便可聽出其差異 <e> Deendng on yor menng, he word <y- nerre-="chrcer">b</y-> my be nerreed eher mcl elemen: red, or lernve menng, reh werh <w role="mzon:sense_1">b</w>. </e> Noe 有些語言可能會有不同的口語支援功能選擇 神經和標準 TTS 格式都支援此標籤 加入呼吸聲 <mzon:breh> 和 <mzon:o-breh> 自然音調的語音包含正確發音的字詞以及呼吸聲 新增呼吸聲至合成語音中 可讓語音聽起來更加自 然 <mzon:breh> 和 <mzon:o-breh> 標籤提供呼吸聲 您有下列選項 手動模式 您設定文字中呼吸聲的出現的位置 長度以及音量 自動模式 Amzon Polly 自動插入呼吸聲至語音輸出中 混合模式 您與 Amzon Polly 皆加入呼吸聲 手動模式 在手動模式中 您將 <mzon:breh/> 標籤放入輸入文字內想要加入呼吸聲的位置 您可以分別使用 dron 和 volme 屬性來自訂呼吸聲的長度和音量 dron 控制呼吸聲的長度 有效值為 del x-hor hor medm long xlong 預設值為 medm volme 控制呼吸聲的音量 有效值為 del x-o o medm lod x-lod 預設 值為 medm 96

102 加入呼吸聲 Noe 每個屬性值的確切長度與音量將取決於使用哪個特定 Amzon Polly 語音 若要使用預設值來設定呼吸聲 請使用沒有屬性的 <mzon:breh/> 例如 若要使用屬性來設定呼吸聲的長度與音量為中等 可將屬性設定如下 <e> Someme yo wn o ner only <mzon:breh dron="medm" volme="x-lod"/> ngle breh. </e> 若要使用預設值 您只需使用標籤 <e> Someme yo need <mzon:breh/>o ner one or more verge brehe <mzon:breh/> o h he ex ond correc. </e> 您可以新增呼吸聲到段落中 如下所示 <e> <mzon:breh dron="long" volme="x-lod"/> <roody re="120%"> <roody volme="lod"> Wow! <mzon:breh dron="long" volme="lod"/> </roody> Th w qe <mzon:breh dron="medm" volme="x-lod"/>. I lmo be my eronl be me on h rc. </roody> </e> 自動模式 在自動模式下 您可以使用 <mzon:o-breh> 標籤來分辨 Amzon Polly 以根據適當的間隔 時間來自動建立呼吸雜音 您可以設定間隔的頻率 呼吸聲音量以及呼吸聲長度 將 </mzon:obreh> 標籤置於您想要加入自動呼吸聲的文字開頭 並在尾端加上結束標籤 Noe 與手動模式標籤不同 <mzon:breh/> <mzon:o-breh> 標籤需要結束標記 (</ mzon:o-breh>) 您可以使用以下含有 <mzon:o-breh> 標籤的可選屬性 volme 控制呼吸聲的音量 有效值為 del x-o o medm lod x-lod 預設 值為 medm reqency 控制呼吸聲在文字中發生的頻率 有效值為 del xlow low medm hgh x-hgh 預設值為 medm dron 控制呼吸聲的長度 有效值為 del x-hor hor medm long xlong 預設值為 medm 在預設情況下 呼吸聲的頻率將取決於輸入文字 不過 呼吸聲經常出現在逗號和句點之後 下列範例示範如何使用 <mzon:o-breh> 標籤 若要決定您的內容要使用那些選項 將適用範例 複製到 Amzon Polly 主控台並聆聽差異 97

103 加入呼吸聲 使用不含選用參數的自動模式 <e> <mzon:o-breh>amzon Polly ervce h rn ex no lele eech, llowng yo o cree lcon h l nd bld enrely new cegore o eechenbled rodc. Amzon Polly ex-o-eech ervce h e dvnced dee lernng echnologe o ynheze eech h ond le hmn voce. Wh dozen o lele voce cro vrey o lngge, yo cn elec he del voce nd bld eechenbled lcon h wor n mny deren conre.</mzon:o-breh> </e> 使用含有音量控制的自動模式 未指定參數 (dron 與 reqency) 皆設為預設值 (medm) <e> <mzon:o-breh volme="x-o">amzon Polly ervce h rn ex no lele eech, llowng yo o cree lcon h l nd bld enrely new cegore o eech-enbled rodc. Amzon Polly ex-o-eech ervce, h e dvnced dee lernng echnologe o ynheze eech h ond le hmn voce. Wh dozen o lele voce cro vrey o lngge, yo cn elec he del voce nd bld eechenbled lcon h wor n mny deren conre.</mzon:o-breh> </e> 使用含有頻率控制的自動模式 未指定參數 (dron 與 volme) 皆設為預設值 (medm) <e> <mzon:o-breh reqency="x-low">amzon Polly ervce h rn ex no lele eech, llowng yo o cree lcon h l nd bld enrely new cegore o eech-enbled rodc. Amzon Polly ex-o-eech ervce, h e dvnced dee lernng echnologe o ynheze eech h ond le hmn voce. Wh dozen o lele voce cro vrey o lngge, yo cn elec he del voce nd bld eechenbled lcon h wor n mny deren conre.</mzon:o-breh> </e> 使用含有多個參數的自動模式 對於未指定的 Dron 參數 Amzon Polly 將使用預設值 (medm) <e> <mzon:o-breh volme="x-lod" reqency="x-low">amzon Polly ervce h rn ex no lele eech, llowng yo o cree lcon h l nd bld enrely new cegore o eech-enbled rodc. Amzon Polly ex-o-eech ervce, h e dvnced dee lernng echnologe o ynheze eech h ond le hmn voce. Wh dozen o lele voce cro vrey o lngge, yo cn elec he del voce nd bld eech-enbled lcon h wor n mny deren conre.</mzon:obreh> 98

104 新聞播報員說話風格 </e> 目前只有標準 TTS 格式支援此標籤 新聞播報員說話風格 <mzon:domn nme="new"> 新聞播報員風格僅適用於 Mhew 或 Jonn 語音 這些聲音僅適用於 Nerl 格式的美式英文 (en-us) 若要使用新聞播報員風格 請使用 SSML 標籤和下列語法 <mzon:domn nme="new">ex</mzon:domn> 例如 您可以搭配 Mhew 或 Jonn 語音使用新聞播報員風格, 如下所示 : <e> <mzon:domn nme="new"> From he Tedy, Arl 16h, 1912 edon o The Grdn newer: The mden voyge o he Whe Sr lner Tnc, he lrge h ever lnched, h ended n der. The Tnc red her r rom Sohmon or New Yor on Wednedy. Le on Sndy ngh he rc n ceberg o he Grnd Bn o Newondlnd. By wrele elegrhy he en o gnl o dre, nd everl lner were ner enogh o cch nd reond o he cll. </mzon:domn> </e> 加入動態範圍壓縮 <mzon:eec nme="drc"> 根據音訊檔中所使用的文字 語言和語音 聲音範圍從柔和到大聲 環境音例如移動中車輛的聲音 通常可 以遮罩為較柔和的聲音 使得音軌難以聽得清楚 若要增強音訊檔中特定聲音的音量 請使用動態範圍壓縮 (drc) 標記 drc 標籤會為您的音訊設定中音的 響度 閾值 並提高該閾值附近聲音的音量 (增益) 最靠近閾值套用最 大增益 遠離閾值則增益隨之減少 這可讓中間範圍的聲音在吵雜環境中比較容易聽到 使得整個音訊檔更清晰 drc 標記是一種布林值參數 (有或沒有) 它使用語法 <mzon:eec nme="drc"> 並以 </ mzon:eec> 結束 99

105 加入動態範圍壓縮 您可以使用 drc 標籤與 Amzon Polly 支援的任何語音或語言 您可以將其套用到錄音的整個部分或只幾個 字 例如 <e> Some do dcl o her n movng vehcle, b <mzon:eec nme="drc"> h do le dcl o her n movng vehcle.</mzon:eec> </e> Noe 當您使用 語法中的 drc 時 它會區分大小寫 mzon:eec 使用 drc 搭配 roody volme 標籤 如下圖所示 roody volme 標記從原始層級 (虛線) 到調整層級 (實線) 平均地提高整個音訊檔案的音 量 若要進一步提高檔案特定部分的音量 請使用 drc 標記搭配 roody volme 標記 結合使用標記不 會影響 roody volme 標記的設定 當您同時使用 drc 和 roody volme 標籤時 Amzon Polly 會先套用 drc 標籤 增加中介範圍的聲音 (靠近臨界值的部分) 接著套用 roody volme 標記並進一步平均提高整個音軌的音量 若要一起使用標記 請將其中一巢套到另一個內部 例如 <e> <roody volme="lod">th ex need o be nderndble nd lod. <mzon:eec nme="drc"> Th ex lo need o be more nderndble n movng cr.</mzon:eec></ roody> </e> 在這個文字中 roody volme 標記會提高整段的音量為 大聲 drc 標記會在第二個句子增強中間 範圍值的音量 Noe 一起使用 drc 和 roody volme 標記時 對於巢狀標記請使用標準 XML 做法 神經和標準 TTS 格式都支援此標籤 100

106 輕聲說話 輕聲說話 <mzon:eec honon="o"> 若要指定輸入文字的說出聲音應該比正常聲音更柔和 請使用 <mzon:eec honon="o"> 標籤 此屬性使用語法 <mzon:eec honon="o">ex</mzon:eec> 例如 您可以使用此標籤搭配 Mhew 語音 如下所示 <e> Th Mhew eng n my norml voce. <mzon:eec honon="o">th Mhew eng n my oer voce.</mzon:eec> </e> 目前只有標準 TTS 格式支援此標籤 控制音色 <mzon:eec vocl-rc-lengh> 音色是是語音的音質 可協助您分辨語音間的不同 甚至當其音調和大小聲相同時也能分辨出 決定語音音 色的其中一個最重要生理特徵是聲道的長度 這是範圍從聲帶頂部到嘴唇邊緣的一個氣腔 若要在 Amzon Polly 中控制輸出語音的音色 請使用 vocl-rc-lengh 標籤 此標記具有變更喇叭 聲道長度的效果 聽到類似喇叭的大小有所變更 當您增加 vocl-rc-lengh 時 喇叭實際聽起來越 大聲 當您縮短時 喇叭聲音會變小 您可以使用此標籤搭配 Amzon Polly 文字轉換語音組合中的任何語 音 若要變更音色 請使用以下值 +n% 或 -n% 按照目前語音的相對百分比變動來調整聲道長度 例如 +4% 或 -2% 有效值範圍從 + 100% 到 -50% 這個範圍以外的值會剪除 例如 + 111% 聽起來類似 + 100% 而 -60% 聽起來像 -50% n% 變更聲道長度為目前語音的聲道長度的絕對百分比 例如 110% 或 75% 絕對值 110% 等於相對值 +10% 絕對值 100% 與目前語音的預設值相同 以下範例說明如何透過變更聲道長度來變更音色 <e> Th my orgnl voce, who ny modcon. <mzon:eec vocl-rclengh="+15%"> Now, mgne h I m mch bgger. </mzon:eec> <mzon:eec vocl-rclengh="-15%"> Or, erh yo reer my voce when I'm very mll. </mzon:eec> Yo cn lo conrol he mbre o my voce by mng mnor djmen. <mzon:eec vocl-rclengh="+10%"> For exmle, by mng me ond j lle bgger. </mzon:eec><mzon:eec vocl-rc-lengh="-10%"> Or, mng me ond only omewh mller. </ mzon:eec> </e> 結合多個標記 101

107 輕聲低語 您可以結合 vocl-rc-lengh 標籤與 Amzon Polly 支援的任何其他 SSML 標籤 由於音色 (聲道長 度) 和音調密切連結 您可以透過使用 vocl-rc-lengh 和 <roody ch> 標記獲得最佳結果 若要產生最逼真的語音 建議您針對兩個標籤使用不同的百分比變化 試驗各種組合來獲得您想要的結果 下列範例顯示如何結合標記 <e> The ch nd mbre o eron' voce re conneced n hmn eech. <mzon:eec vocl-rc-lengh="-15%"> I yo re gong o redce he vocl rc lengh, </mzon:eec><mzon:eec vocl-rc-lengh="-15%"> <roody ch="+20%"> yo mgh conder ncreng he ch, oo. </roody></mzon:eec> <mzon:eec vocl-rc-lengh="+15%"> I yo chooe o lenghen he vocl rc, </mzon:eec> <mzon:eec vocl-rc-lengh="+15%"> <roody ch="-10%"> yo mgh lo wn o lower he ch. </roody></mzon:eec> </e> 目前只有標準 TTS 格式支援此標籤 輕聲低語 <mzon:eec nme="whered"> 此標籤表示輸入文字應以低聲而非一般語音說出 這可與 Amzon Polly 文字轉換語音組合中的任何語音搭 配使用 此標籤使用以下語法 <mzon:eec nme= whered >ex</mzon:eec> 例如 <e> <mzon:eec nme="whered">i yo me ny noe, </mzon:eec> he d, <mzon:eec nme="whered">hey wll her.</mzon:eec> </e> 在這種情況下 由字元合成的語音口語將會是低聲 而片語 he d 將以所選的 Amzon Polly 語音正常 合成的語音說出 根據想要的效果 您可以透過將韻律率減慢最多 10% 來增強 低語 效果 例如 <e> When ny voce mde o wher, <mzon:eec nme="whered"> <roody re="-10%">he ond lower nd qeer hn norml eech </roody></mzon:eec> </e> 當產生低聲語音的語音標記時 音訊串流還必須包含低聲語音 以確保語音標記符合音訊串流 目前只有標準 TTS 格式支援此標籤 102

108 套用多個語彙 管理語彙 發音語彙可讓您自訂文字發音 Amzon Polly 提供 API 操作 您可藉此用來將語彙存放於 AWS 區域 之後這些語彙為該特定區域專屬 使用 SynhezeSeech 作業合成文字時 您可以使用來自該區 域的一個或更多語彙 將會在合成開始時 將指定的語彙套用至輸入文字 如需更多詳細資訊 請參閱 SynhezeSeech (. 181) Noe 這些語彙必須符合發音語彙規格 (PLS) W3C 建議 如需更多詳細資訊 請參閱 W3C 網站上的發音 語彙規格 (PLS) 版本 1.0 以下範例展示以語音合成引擎使用語彙的方式 常見的單詞有時會以數字替代字母位置的方式格式化 如何 g3 m4r (變得有智慧) 人類可以正確 讀取這些單詞 不過 文字轉語音 (TTS) 引擎逐字地讀取文字 完全依照名稱拼法發音 您可以藉由 Amzon Polly 利用語彙自訂合成語音 在此範例中 您可以為語彙中的 g3 m4r 指定別名 (變得有智 慧) 您的文字可能包含縮寫 例如 W3C 您可以使用語彙來定義單字 W3C 的別名 以完整展開的形式讀取 (全球資訊網協會) 語彙能讓您額外控制 Amzon Polly 如何發出所選語言之稀有單字的讀音 例如 您可以使用音標指定發 音 如需更多詳細資訊 請參閱 W3C 網站上的發音語彙規格 (PLS) 版本 1.0 主題 套用多個語彙 (. 103) 使用 Amzon Polly 主控台管理語彙 (. 104) 使用 AWS CLI 管理語彙 (. 106) 套用多個語彙 您最多可以指定五個語彙到您的文字 如果套用到您的文字的一個以上的語彙中都出現相同語素 那麼其套 用順序會使產生的語音有所不同 例如 指定以下文字 Hello 我的名稱叫 Bob 而且不同語彙中的兩 個詞元都使用語素 Bob LexA <lexeme> <grheme>bob</grheme> <l>rober</l> </lexeme> LexB <lexeme> <grheme>bob</grheme> <l>bobby</l> </lexeme> 103

109 使用主控台管理語彙 如果語彙排列順序為 LexA 在先 LexB 在後 那麼合成語音將會是 Hello 我的名稱叫 Rober 如果語 彙排列順序為 LexB 在先 LexA 在後 那麼合成語音為 Hello 我的名稱叫 Bobby Exmle 將 LexA 套用在 LexB 之前 w olly ynheze-eech \ --lexcon-nme LexA LexB \ --o-orm m3 \ --ex 'Hello, my nme Bob' \ --voce-d Jn \ bobab.m3 語音輸出 Hello 我的名稱叫 Rober Exmle 將 LexB 套用在 LexA 之前 w olly ynheze-eech \ --lexcon-nme LexB LexA \ --o-orm m3 \ --ex 'Hello, my nme Bob' \ --voce-d Jn \ bobba.m3 語音輸出 Hello 我的名稱叫 Bobby 如需使用 Amzon Polly 主控台套用語彙的詳細資訊 請參閱 使用主控台套用語彙 (合成語音) (. 105) 使用 Amzon Polly 主控台管理語彙 您可以使用 Amzon Polly 主控台上傳 下載 套用 篩選和刪除語彙 以下程序示範這些每一個程序 使用主控台上傳語彙 若要使用發音語彙 您必須先上傳該發音語彙 在主控台有兩種位置可供上傳語彙 文字轉語音標籤和語 彙標籤 以下程序描述如何新增語彙 供您用於自訂所選語言稀有單字和片語的發音方式 從語彙標籤新增語彙 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 選擇 Lexcon (語彙) 索引標籤 選擇 Ulod (上傳) 瀏覽以尋找您要上傳的語彙 您可以僅使用具.l 和.xml 副檔名的檔案 選擇 Oen (開啟) 如果已存在具相同名稱的語彙 (無論是.l 或.xml 檔案) 上傳語彙將會覆寫現有的 語彙 從文字轉語音標籤新增語彙 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 選擇 Tex-o-Seech (文字轉換語音) 索引標籤 選擇 Comze ronncon o word or hre ng lexcon (使用語彙自訂單字或片語的發音) 然後選擇 Ulod lexcon (上傳語彙) 瀏覽以尋找您要上傳的語彙 您可以僅使用具.l 和.xml 副檔名的檔案

110 使用主控台套用語彙 (合成語音) 5. 選擇 Oen (開啟) 如果已存在具相同名稱的語彙 (無論是.l 或.xml 檔案) 上傳語彙將會覆寫現有的 語彙 使用主控台套用語彙 (合成語音) 下列程序示範如何將語彙套用到您的輸入文字 方法是套用 W3c.l 語彙 用 全球資訊網協會 取代 W3C 如果您套用多個語彙到您的文字 會以從上到下順序套用 第一個相符優先於之後的相符 如果 語彙中指定的語言和所選語言相同 語彙僅會套用到文字 您可以套用語彙至純文字或 SSML 輸入 Exmle 套用 W3C.l 語彙 如需建立此練習所需的語彙 請參閱 使用 PLexcon 操作 (. 107) 使用純文字編輯器來建立主題最上方 顯示的 W3C.l 語彙 請記住您儲存此檔案的地方 將 W3C.l 語彙套用到您的輸入 在此範例中 我們會引進語彙 以 全球資訊網協會 取代 W3C 將此練習的結果與英文和其他語言的 使用 SSML (主控台) (. 80) 結果做比較 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 請執行下列其中一項 選擇 Pln ex (純文字) 標籤 然後輸入此文字或將文字貼到文字輸入方塊 He w cgh n he gme. In he mddle o he 10/3/2014 W3C meeng he hoed, "Score!" qe lodly. 選擇 SSML 索引標籤 然後輸入此文字或將文字貼到文字輸入方塊 <e>he wn' yng enon.<bre me="1"/> In he mddle o he 10/3/2014 W3C meeng he hoed, "Score!" qe lodly.</e> 3. 在 Chooe lngge nd regon (選擇語言和地區) 清單中 選擇 Englh US (英文 (美國)) 然後選擇 您要用於此文字的語音 選擇 Comze ronncon o word or hre ng lexcon (使用語彙自訂單字或片語的發音) 從語彙清單中選擇 W3C (Englh, US) 如果沒有列出 W3C (Englh, US) 語彙 請選擇 Ulod lexcon (上傳語彙) 和上傳 然後從清單中 選擇它 若要建立此語彙訊 請參閱 使用 PLexcon 操作 (. 107) 若要立即聆聽語音 請選擇 Len o eech (聆聽語音) 若要將語音儲存至檔案. b. 選擇 Sve eech o MP3 (將語音儲存至 MP3) 若要變更為不同檔案格式 請選擇 Chnge le orm (變更檔案格式) 選擇您想要的檔案格式 然 後選擇 Chnge (變更) 重複之前的步驟 但選擇不同的語言 並留意輸出中的差異 使用主控台篩選語彙清單 下列程序說明如何篩選語彙清單 僅顯示所選語言的語彙 105

111 使用主控台下載語彙 依語言篩選列出的語彙 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 2. 選擇 Lexcon (語彙) 索引標籤 3. 選擇 Fler (篩選) 4. 從語言清單選擇您要篩選的語言 清單只顯示所選語言的語彙 使用主控台下載語彙 以下程序說明如何下載一或多個語彙 您可以新增 移除或修改檔案中的語彙項目 然後再次上傳 使您的 語彙再次保持最新狀態 下載一或多個語彙 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 2. 選擇 Lexcon (語彙) 索引標籤 3. 選擇您要下載的一個或多個語彙. 若要下載單一語彙 請自清單中選擇其名稱 b. 若要以單一壓縮封存檔案形式下載多個 (語彙) 選取清單中您要下載的每個項目 4. 選擇 Downlod (下載) 5. 開啟您想要下載語彙的資料夾 6. 選擇 Sve (儲存) 使用主控台刪除語彙 刪除語彙 以下程序說明如何刪除語彙 刪除語彙之後 您必須將其加回來 才能在再次使用 您可以同時刪除一或多 個語彙 方法是勾選個別語彙的核取方塊 1. 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 2. 選擇 Lexcon (語彙) 索引標籤 3. 選擇您要從清單刪除的一或多個語彙 4. 選擇 Delee (刪除) 5. 選擇 Delee (刪除) 將語彙從地區移除 或按或 [取消] 或讓它的 Cncel (取消) 使用 AWS CLI 管理語彙 下列主題涵蓋需要用來管理發音語彙的 AWS CLI 命令 主題 使用 PLexcon 操作 (. 107) 使用 GeLexcon 操作 (. 111) 使用 LLexcon 操作 (. 111) 106

112 PLexcon 使用 DeleeLexcon 操作 (. 112) 使用 PLexcon 操作 有了 Amzon Polly 您可以使用 PLexcon (. 173) 將發音語彙存放在您帳戶的特定 AWS 區域 然後 您可以在您的 SynhezeSeech (. 181) 請求中指定一個或多個儲存的語彙 以在服務開始合成這些文字 之前套用 如需更多詳細資訊 請參閱 管理語彙 (. 103) 本節提供有關儲存和測試這些語彙的範例語彙和逐步說明 Noe 這些語彙必須符合發音語彙規格 (PLS) W3C 建議 如需更多詳細資訊 請參閱 W3C 網站上的發音 語彙規格 (PLS) 版本 1.0 範例 1 語彙與一個詞元 考慮以下 W3C PLS 相容的語彙 <?xml veron="1.0" encodng="utf-8"?> <lexcon veron="1.0" xmln="h:// xmln:x="h:// x:chemlocon="h:// h:// lhbe="" xml:lng="en-us"> <lexeme> <grheme>w3c</grheme> <l>world Wde Web Conorm</l> </lexeme> </lexcon> 請注意以下內容 此兩個屬性指定於 <lexcon> 元素 xml:lng 屬性指定語彙要套用的語言代碼 en-us 如果在 SynhezeSeech 呼叫中指定的語音具 有相同語言代碼 (en-us) Amzon Polly 便可以使用此範例語彙 Noe 您可以使用 DecrbeVoce 操作來尋找和語音相關聯的語言代碼 此 lhbe 屬性指定 IPA 其表示國際音標用於發音 IPA 是其中一個用於撰寫發音的字 母 Amzon Polly 也支援拓展音標字母評估法 (X-SAMPA) 系統 <lexeme> 元素描述 <grheme> (也就是單字的文字表示) 和 <l> 之間的映射 要測試此語彙 請依下列步驟執行 1. 將語彙儲存為 exmle.l 2. 執行 -lexcon AWS CLI 命令 將語彙 (名稱為 w3c) 儲存在 -e-2 區域中 w olly -lexcon \ 107

113 PLexcon --nme w3c \ --conen le://exmle.l 3. 執行 ynheze-eech 命令將範例文字合成到音訊串流 (eech.m3) 然後指定選用的 lexcon-nme 參數 w olly ynheze-eech \ --ex 'W3C Conorm' \ --voce-d Jonn \ --o-orm m3 \ --lexcon-nme="w3c" \ eech.m3 4. 播放產生的 eech.m3 並留意 全球資訊網協會 已取代 W3C 這個字 前述範例語彙使用別名 未使用語彙中提及的 IPA 字母 以下語彙指定使用 <honeme> 元素與 IPA 字母的 語音發音 <?xml veron="1.0" encodng="utf-8"?> <lexcon veron="1.0" xmln="h:// xmln:x="h:// x:chemlocon="h:// h:// lhbe="" xml:lng="en-us"> <lexeme> <grheme>ecn</grheme> <honeme>####n</honeme> </lexeme> </lexcon> 請遵循相同步驟來測試此語彙 請確定您指定的輸入文字具有 ecn 這個字 (例如 Pecn 餅很好 吃 ) 範例 2 語彙與多個詞元 在這個範例中 您在語彙中指定的詞元僅適用於合成的輸入文字 請考量下列語彙 <?xml veron="1.0" encodng="utf-8"?> <lexcon veron="1.0" xmln="h:// xmln:x="h:// x:chemlocon="h:// h:// lhbe="" xml:lng="en-us"> <lexeme> <grheme>w3c</grheme> <l>world Wde Web Conorm</l> </lexeme> <lexeme> <grheme>w3c</grheme> <l>www Conorm</l> </lexeme> <lexeme> <grheme>conorm</grheme> <l>commny</l> </lexeme> </lexcon> 108

114 PLexcon 該語彙指定三個詞元 其中兩個為語素 W3C 定義別名 如下所示 第一個 <lexeme > 元素定義別名 (全球資訊網協會) 第二個 <lexeme> 定義另一種別名 (WWW 協會) Amzon Polly 使用第一個取代語彙中的任何指定語素 第三個 <lexeme> 定義協會這個字的取代 (社群) 首先 我們來測試這個語彙 假設您要合成以下範例文字到音訊檔案 (eech.m3) 而您將呼叫中的語彙 指定為 SynhezeSeech The W3C Conorm SynhezeSeech 先套用的語彙如下所示 就第一個詞元 W3C 這個字修訂為 全球資訊網協會 修訂文字如下所示 The World Wde Web Conorm Conorm 第三個詞元中所定義的別名僅適用於 協會 這個字 (原始文字的一部分) 產生以下文字 The World Wde Web Conorm Commny. 您可以使用 AWS CLI 進行測試 如下所示 將語彙儲存為 exmle.l 執行 -lexcon 命令 以名稱 w3c 將語彙儲存在 -e-2 區域中 w olly -lexcon \ --nme w3c \ --conen le://exmle.l 3. 執行 l-lexcon 命令 驗證 w3c 語彙在傳回的語彙清單中 w olly l-lexcon 4. 執行 ynheze-eech 命令將範例文字合成到音訊檔案 (eech.m3) 然後指定選用的 lexcon-nme 參數 w olly ynheze-eech \ --ex 'W3C Conorm' \ --voce-d Jonn \ --o-orm m3 \ --lexcon-nme="w3c" \ eech.m3 5. 播放產生的 eech.m3 檔案 確認合成語音反映文字變更 範例 3 指定多個語彙 在 SynhezeSeech 的呼叫中 您可以指定多個語彙 在此例中 第一個指定的語彙 (從左到右) 覆寫前 面的語彙 請考量下列兩個語彙 請注意 每個語彙描述相同語素 W3C 的不同別名 109

115 PLexcon 語彙 1 w3c.l <?xml veron="1.0" encodng="utf-8"?> <lexcon veron="1.0" xmln="h:// xmln:x="h:// x:chemlocon="h:// h:// lhbe="" xml:lng="en-us"> <lexeme> <grheme>w3c</grheme> <l>world Wde Web Conorm</l> </lexeme> </lexcon> 語彙 2 w3calerne.l <?xml veron="1.0" encodng="utf-8"?> <lexcon veron="1.0" xmln="h:// xmln:x="h:// x:chemlocon="h:// h:// lhbe="" xml:lng="en-us"> <lexeme> <grheme>w3c</grheme> <l>www Conorm</l> </lexeme> </lexcon> 假設您將這些語彙分別儲存為 w3c 和 w3calerne 如果您在 SynhezeSeech 呼叫中依順序 (w3c 在前 w3calerne 在後) 指定語彙 第一個語彙所定義的 W3C 別名優先於第二個 要測試語彙 請依 下列步驟執行 1. 將語彙儲存在本機檔案 w3c.l 和 w3calerne.l 中 2. 使用 -lexcon AWS CLI 命令上傳這些語彙 上傳 w3c.l 語彙 並將它儲存為 w3c w olly -lexcon \ --nme w3c \ --conen le://w3c.l 上傳服務上的 w3calerne.l 語彙做為 w3calerne w olly -lexcon \ --nme w3calerne \ --conen le://w3calerne.l 3. 執行 ynheze-eech 命令將範例文字合成到音訊串流 (eech.m3) 然後使用 lexconnme 參數指定兩種語彙 w olly ynheze-eech \ --ex 'PLS W3C recommendon' \ --voce-d Jonn \ --o-orm m3 \ --lexcon-nme '["w3c","w3calernve"]' \ eech.m3 110

116 GeLexcon 4. 測試產生的 eech.m3 其讀取如下 PLS World Wde Web Conorm recommendon PLexcon API 的其他程式碼範例 Jv 範例 PLexcon (. 120) Pyhon (Boo3) 範例PLexcon (. 126) 使用 GeLexcon 操作 Amzon Polly 提供 GeLexcon (. 165) API 操作來擷取您儲存在特定區域之帳戶中的發音語彙內容 以下 ge-lexcon AWS CLI 命令擷取 exmle 語彙的內容 w olly ge-lexcon \ --nme exmle 如果您帳戶中沒有儲存語彙 您可以使用 PLexcon 操作儲存一個語彙 如需更多詳細資訊 請參閱 使 用 PLexcon 操作 (. 107) 以下是範例回應 除了語彙內容外 回應中傳回中繼資料如語彙套用的語言代碼 語彙中定義的詞元 數 Amzon Reorce Nme (ARN) 資源 以及以位元組為單位的語彙大小 LModed 值是 Unx 時 間戳記 { } "Lexcon": { "Conen": "lexcon conen n ln ex PLS orm", "Nme": "exmle" }, "LexconArbe": { "LnggeCode": "en-us", "LModed": , "Alhbe": "", "LexemeCon": 1, "LexconArn": "rn:w:olly:-e-2:ccon-d:lexcon/exmle", "Sze": 495 } GeLexcon API 的其他程式碼範例 Jv 範例 GeLexcon (. 119) Pyhon (Boo3) 範例GeLexcon (. 124) 使用 LLexcon 操作 Amzon Polly 提供 LLexcon (. 169) API 操作 您可用來取得您帳戶中在特定 AWS 區域的發音語彙 清單 以下 AWS CLI 呼叫列出您在 -e-2 區域之帳戶中的語彙 w olly l-lexcon 111

117 DeleeLexcon 以下是範例回應 顯示兩個名為 w3c 和 omo 的語彙 對於每個語彙 回應傳回中繼資料如語彙套用的語 言代碼 語彙中定義的詞元數 以位元組為單位的大小等等 語言代碼描述語彙套用中所定義詞元的語言和 地區設定 { } "Lexcon": [ { "Arbe": { "LnggeCode": "en-us", "LModed": , "Alhbe": "", "LexemeCon": 1, "LexconArn": "rn:w:olly:w-regon:ccon-d:lexcon/w3c", "Sze": 495 }, "Nme": "w3c" }, { "Arbe": { "LnggeCode": "en-us", "LModed": , "Alhbe": "", "LexemeCon": 1, "LexconArn": "rn:w:olly:w-regon:ccon-d:lexcon/omo", "Sze": 645 }, "Nme": "omo" } ] LLexcon API 的其他程式碼範例 Jv 範例 LLexcon (. 119) Pyhon (Boo3) 範例LLexcon (. 125) 使用 DeleeLexcon 操作 Amzon Polly 提供 DeleeLexcon (. 160) API 操作 在您帳戶中從特定的 AWS 區域刪除發音語彙 以下 AWS CLI 刪除指定的語彙 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly delee-lexcon \ --nme exmle DeleeLexcon API 的其他程式碼範例 Jv 範例 DeleeLexcon (. 117) Pyhon (Boo3) 範例DeleeLexcon (. 124) 112

118 設定非同步合成的 IAM 政策 建立長時間音訊檔案 若要針對大篇幅文字建立 TTS 檔案 請使用 Amzon Polly 的非同步合成功能 這會用到三個 SeechSynheT API SrSeechSynheT 開始執行新的合成作業 GeSeechSynheT 針對先前提交的合成作業傳回詳細資訊 LSeechSynheT 列出所有已提交的合成作業 SynhezeSeech 作業會以近乎即時速度產生音訊 而且在大多數情況中的延遲相當少 為了實現此種 效能 這項作業只能合成 3000 個字元 Amzon Polly 的非同步合成功能 透過改變合成和傳回文件的方法 克服了處理大型文字文件的挑戰 使用 SrSeechSynheT 提交輸入文字來進行合成請求時 Amzon Polly 會將請求排入佇列 然後 在可使用系統資源時立即在背景非同步處理它們 接下來 Amzon Polly 會將產生的語音或語音標記的串流 直接上傳到您的 (必要) Amzon Smle Sorge Servce (Amzon S3) 儲存貯體 並透過 (選擇性) SNS 主 題通知您可以取得完成的檔案 利用這種方式 長度最多包含 100,000 個應計費字元 (或總計 200,000 個字元) 的文字 即可使用除了近乎即 時處理以外的所有功能 若要使用此方法來合成文件 您必須擁有 Amzon S3 可寫入的儲存貯體 能夠用來儲存音訊檔案 藉由提 供選用的 SNS 主題識別符 您可以在合成音訊準備完成時收到通知 當合成作業完成時 Amzon Polly 會 在該主題中發佈訊息 此訊息也可能包含有用的錯誤資訊 這些資訊會在合成作業失敗時顯示 若要這麼 做 請確定建立合成作業的使用者 也可以發佈到 SNS 主題 關於建立和訂閱 SNS 主題的方法 詳細資訊 請參閱 Amzon SNS 文件 加密 您可以根據需要 將加密的輸出檔案儲存於 S3 儲存貯體中 若要這麼做 您可以啟用 Amzon S3 儲存貯體 加密 這項功能使用目前最強大的其中一種區塊加密法 (256 位元進階加密標準 (AES-256)) 主題 設定非同步合成的 IAM 政策 (. 113) 建立長時間音訊檔案 (主控台) (. 114) 建立長時間音訊檔案 (CLI) (. 115) 設定非同步合成的 IAM 政策 為了使用非同步合成功能 將需要 IAM 政策來允許下列動作 使用新的 Amzon Polly 操作 寫入輸出的 S3 儲存貯體 發佈到狀態 SNS 主題 [選擇性] 下列的政策只授與進行非同步合成所需的必要權限 而且可以連結到 IAM 使用者 { 113

119 建立長時間音訊檔案 (主控台) } "Veron": " ", "Semen": [ { "Eec": "Allow", "Acon": [ "olly:srseechsynhet", "olly:geseechsynhet", "olly:lseechsynhet" ], "Reorce": "*" }, { "Eec": "Allow", "Acon": "3:PObjec", "Reorce": "rn:w:3:::bce-nme/*" }, { "Eec": "Allow", "Acon": "n:pblh", "Reorce": "rn:w:n:regon:ccon:oc" } ] 關於使用 IAM 政策搭配 Amzon Polly 以及如何建立 IAM 政策與 IAM 使用者的關聯 詳細資訊請參閱 存 取控制 (. 196) 建立長時間音訊檔案 (主控台) 您可以使用 Amzon Polly 主控台 利用非同步合成來製作長篇語音 (使用和 AWS CLI 相同的功能) 如同其 他所有的合成作業 這項作業也是在 Tex-o-Seech (文字轉語音) 標籤完成 其他的非同步合成功能 也可透過主控台使用 S3 ynhe (S3 合成作業) 標籤反映 LSeechSynheT 功能 會顯示儲存到 S3 儲存貯體的所有作業 並可讓您根據需要進行篩 選 按一下特定的單一作業來顯示其詳細資訊 (代表 GeSeechSynheT 功能) 使用 Amzon Polly 主控台合成大篇幅的文字 請至 h://conole.w.mzon.com/olly/ 登入 AWS 管理主控台 並開啟 Amzon Polly 主控台 選擇 Tex-o-Seech (文字轉換語音) 索引標籤 在 Pln Tex (純文字) 標籤或 SSML 標籤中 將您的文字輸入或貼入輸入方塊 為您的文字選擇語言 區域和語音 選擇 Synheze o S3 (合成到 S3) Noe 6. 如果文字的長度超過即時 SynhezeSeech 操作的上限 則 Downlod (下載) 和 Len o Seech (聆聽語音) 這兩個選項都會呈灰色而無法選取 如果您之前尚未使用過非同步合成功能 將會顯示 Chnge S3 ynhe eng (變更 S3 合成作 業設定) 讓您可以選擇輸出檔案的儲存位置. b. 填寫目的地 Amzon S3 儲存貯體的名稱 或者 您可以填寫輸出的前綴金鑰 Noe c. 輸出 S3 儲存貯體必須可以寫入 如果您想要在合成作業完成時收到通知 請提供選用的 SNS 主題識別符 114

120 建立長時間音訊檔案 (CLI) Noe SNS 必須開放給目前的主控台使用者 來發佈訊息 才能使用此選項 如需詳細資訊 請 參閱 Amzon Smle Nocon Servce (SNS) d. 選擇 Synheze (合成) 變更 S3 合成作業設定 1. 在主控台的 Te-o-Seech (文字轉語音) 標籤中 選擇 Chnge S3 eng (變更 S3 作業設定) 2. 對目的地 Amzon S3 儲存貯體的名稱 字首索引鍵或 SNS 主題識別符 進行任何需要的變更 3. 完成後 請選擇 Synheze (合成) 擷取語音合成作業的相關資訊 1. 在主控台中 選擇 S3 Synhe T (S3 合成作業) 標籤 2. 作業會依日期順序顯示 若要篩選作業 請選取 Fler (篩選條件) 然後選擇要使用的篩選條件 3. 若要查看特定作業的詳細資訊 請選擇連結的 T ID (作業 ID) 建立長時間音訊檔案 (CLI) Amzon Polly 非同步合成功能使用三種 SeechSynheT API 來處理大量的文字 SrSeechSynheT 開始執行新的合成作業 GeSeechSynheT 針對先前提交的合成作業傳回詳細資訊 LSeechSynheT 列出所有已提交的合成作業 合成大量的文字 (SrSeechSynheT) 如果您想要建立一個音訊檔案 其大小超過您可以使用即時 SynhezeSeech 所建立的檔案 時 請使用 SrSeechSynheT 作業 除了 SynhezeSeech 操作所需的引數以 外 SrSeechSynheT 還需要 Amzon S3 儲存貯體的名稱 您也可使用其他兩種選用的引 數 輸出檔案的金鑰前綴 和 SNS 主題的 ARN (如果想要收到關於作業狀態的通知) OS3BceNme Amzon S3 儲存貯體的名稱 合成的內容應上傳到此儲存貯體 這個儲存貯體 的所在區域 應該和 Amzon Polly 服務的相同 此外 用來發出呼叫的 IAM 使用者 應擁有對該儲存貯 體的存取權限 [必要] OS3KeyPrex 輸出檔案的金鑰前綴 如果您想要使用自訂的類目錄索引鍵 來將輸出的語音檔 案儲存到您的儲存貯體中 請使用此參數 [選擇性] SnTocArn 如果想要收到關於作業狀態的通知時 所使用的 SNS 主題 ARN 這個 SNS 主題的區 域 應該和 Amzon Polly 服務的相同 此外 用來發出呼叫的 IAM 使用者 應擁有對此主題的存取權 限 [選擇性] 例如 下列的範例可用來美國東部 (俄亥俄) 區域執行 r-eech-ynhe- AWS CLI 指令 以下 AWS CLI 範例格式適用於 Unx Lnx 和 mcos 使用 Wndow 時 請以插入號 (^) 取代每一行結尾 處的反斜線 (\) Unx 接續字元 在輸入字元前後使用雙引號 (") 在內部標籤前後使用單引號 (') w olly r-eech-ynhe- \ --regon -e-2 \ --endon-rl "h://olly.-e-2.mzonw.com/" \ 115

121 建立長時間音訊檔案 (CLI) --o-orm m3 \ --o-3-bce-nme yor-bce-nme \ --o-3-ey-rex oonl/rex/h/le \ --voce-d Jonn \ --ex le://ex_le.x 這將會產生類似於下列的回應 "SynheT": { "OForm": "m3", "OUr": "h://3.-e-2.mzonw.com/yor-bce-nme/oonl/rex/ h/le.<_d>.m3", "TexTye": "ex", "CreonTme": [..], "ReqeChrcer": [..], "TS": "chedled", "TId": [_d], "VoceId": "Jonn" } r-eech-ynhe- 作業會傳回幾個新的欄位 OUr 輸出語音檔案的所在位置 TId 語音合成作業的唯一識別符 由 Amzon Polly 產生 CreonTme 作業最初提交時的時間戳記 ReqeChrcer 作業中的應計費字元數目 TS 針對已提交作業的狀態 提供相關的資訊 當作業提交時 初始狀態會顯示為 chedled 當 Amzon Polly 開始處理任務之後 狀態將變 更為 nprogre 稍後再變更為 comleed 或 led 在呼叫 GeSeechSynheT 或 LSeechSynheT 操作時 如果作業失敗 會傳回錯誤訊息 任務完成後 語音檔案將會出現於 OUr 中所指定的位置 以提供使用 擷取語音合成作業的相關資訊 您可以利用 GeSeechSynheT 作業 來取得作業的相關資訊 例如錯誤和狀態等 若要這麼 做 您會需要由 -d 所傳回的 SrSeechSynheT 例如 下列的範例可用來執行 ge-eech-ynhe- AWS CLI 指令 w olly ge-eech-ynhe- \ --regon -e-2 \ --endon-rl "h:// olly.-e-2.mzonw.com/" \ ---d dener 您也可以利用 LSeechSynheT 操作 來列出在目前區域中已執行所有語音合成作業的清 單 例如 下列的範例可用來執行 l-eech-ynhe- AWS CLI 指令 w olly l-eech-ynhe- \ --regon -e-2 \ --endon-rl "h:// olly.-e-2.mzonw.com/" 116

122 範例程式碼 程式碼和應用程式範例 本節提供您可以用於探索 Amzon Polly 的範例程式碼和範例應用程式 主題 範例程式碼 (. 117) 範例應用程式 (. 128) 範例程式碼主題包含由程式設計語言組成的程式碼片段 並分成不同 Amzon Polly 功能的範例 範例應用 程式主題包含依程式語言組織的應用程式 可獨立用於探索 Amzon Polly 開始使用這些範例之前 我們建議您先閱讀 Amzon Polly 運作方式 (. 2) 並依照 Amzon Polly 入門 (. 3) 所述的步驟進行 範例程式碼 此主題包含各種功能的程式碼範例 可用於探索 Amzon Polly 依程式設計語言區分的範例程式碼 Jv 範例 (. 117) Pyhon 範例 (. 123) Jv 範例 以下程式碼範例展示如何使用以 Jv 為基礎的應用程式 完成使用 Amzon Polly 的各種工作 這些範例並 非完整的範例 但可包括在使用 AWS SDK or Jv 的更大型 Jve 應用程式中 程式碼片段 DeleeLexcon (. 117) DecrbeVoce (. 118) GeLexcon (. 119) LLexcon (. 119) PLexcon (. 120) SrSeechSynheT (. 121) 語音標記 (. 122) SynhezeSeech (. 123) DeleeLexcon 以下 Jv 程式碼範例展示如何使用以 Jv 為基礎的應用程式 來刪除儲存於 AWS 區域的特定語彙 已刪 除的語彙不可用於語音合成 也不可使用 GeLexcon 或 LLexcon API 擷取 如需此操作的詳細資訊 請參閱 DeleeLexcon API 的參考文章 117

123 Jv 範例 cge com.mzonw.olly.mle; mor com.mzonw.ervce.olly.amzonpolly; mor com.mzonw.ervce.olly.amzonpollyclenblder; mor com.mzonw.ervce.olly.model.deleelexconreqe; blc cl DeleeLexconSmle { rve Srng LEXICON_NAME = "SmleLexcon"; AmzonPolly clen = AmzonPollyClenBlder.delClen(); blc vod deleelexcon() { DeleeLexconReqe deleelexconreqe = new DeleeLexconReqe().whNme(LEXICON_NAME); } } ry { clen.deleelexcon(deleelexconreqe); } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } DecrbeVoce 以下 Jv 程式碼範例展示如何使用以 Jv 為基礎的應用程式 來產生聲音清單 這些聲音可在要求語音合 成時使用 您可以選擇指定語言代碼來篩選可用的聲音 例如 如果您指定 en-us 此次操作就會傳回所有 可用美式英文聲音的清單 如需此操作的詳細資訊 請參閱 DecrbeVoce API 的參考文章 cge com.mzonw.olly.mle; mor mor mor mor com.mzonw.ervce.olly.amzonpolly; com.mzonw.ervce.olly.amzonpollyclenblder; com.mzonw.ervce.olly.model.decrbevocereqe; com.mzonw.ervce.olly.model.decrbevocerel; blc cl DecrbeVoceSmle { AmzonPolly clen = AmzonPollyClenBlder.delClen(); blc vod decrbevoce() { DecrbeVoceReqe llvocereqe = new DecrbeVoceReqe(); DecrbeVoceReqe enuvocereqe = new DecrbeVoceReqe().whLnggeCode("en-US"); ry { Srng nextoen; do { DecrbeVoceRel llvocerel = clen.decrbevoce(llvocereqe); nextoen = llvocerel.genextoen(); llvocereqe.enextoen(nextoen); Syem.o.rnln("All voce: " + llvocerel.gevoce()); } whle (nextoen!= nll); do { DecrbeVoceRel enuvocerel = clen.decrbevoce(enuvocereqe); nextoen = enuvocerel.genextoen(); enuvocereqe.enextoen(nextoen); 118

124 Jv 範例 } } Syem.o.rnln("en-US voce: " + enuvocerel.gevoce()); } whle (nextoen!= nll); } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } GeLexcon 以下 Jv 程式碼範例展示如何使用以 Jv 為基礎的應用程式 來產生儲存於 AWS 區域的特定發音語彙內 容 如需此操作的詳細資訊 請參閱 GeLexcon API 的參考文章 cge com.mzonw.olly.mle; mor mor mor mor com.mzonw.ervce.olly.amzonpolly; com.mzonw.ervce.olly.amzonpollyclenblder; com.mzonw.ervce.olly.model.gelexconreqe; com.mzonw.ervce.olly.model.gelexconrel; blc cl GeLexconSmle { rve Srng LEXICON_NAME = "SmleLexcon"; AmzonPolly clen = AmzonPollyClenBlder.delClen(); blc vod gelexcon() { GeLexconReqe gelexconreqe = new GeLexconReqe().whNme(LEXICON_NAME); } } ry { GeLexconRel gelexconrel = clen.gelexcon(gelexconreqe); Syem.o.rnln("Lexcon: " + gelexconrel.gelexcon()); } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } LLexcon 以下 Jv 程式碼範例展示如何使用以 Jv 為基礎的應用程式 來產生儲存於 AWS 區域的發音語彙清單 如需此操作的詳細資訊 請參閱 LLexcon API 的參考文章 cge com.mzonw.olly.mle; mor mor mor mor mor mor com.mzonw.ervce.olly.amzonpolly; com.mzonw.ervce.olly.amzonpollyclenblder; com.mzonw.ervce.olly.model.lexconarbe; com.mzonw.ervce.olly.model.lexcondecron; com.mzonw.ervce.olly.model.llexconreqe; com.mzonw.ervce.olly.model.llexconrel; blc cl LLexconSmle { AmzonPolly clen = AmzonPollyClenBlder.delClen(); blc vod llexcon() { LLexconReqe llexconreqe = new LLexconReqe(); 119

125 Jv 範例 ry { Srng nextoen; do { LLexconRel llexconrel = clen.llexcon(llexconreqe); nextoen = llexconrel.genextoen(); llexconreqe.enextoen(nextoen); or (LexconDecron lexcondecron : llexconrel.gelexcon()) { LexconArbe rbe = lexcondecron.gearbe(); Syem.o.rnln("Nme: " + lexcondecron.genme() + ", Alhbe: " + rbe.gealhbe() + ", LnggeCode: " + rbe.gelnggecode() + ", LModed: " + rbe.gelmoded() + ", LexemeCon: " + rbe.gelexemecon() + ", LexconArn: " + rbe.gelexconarn() + ", Sze: " + rbe.gesze()); } } whle (nextoen!= nll); } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } } } PLexcon 以下 Jv 程式碼範例展示如何使用以 Jv 為基礎的應用程式 來將發音語彙儲存於 AWS 區域 如需此操作的詳細資訊 請參閱 PLexcon API 的參考文章 cge com.mzonw.olly.mle; mor com.mzonw.ervce.olly.amzonpolly; mor com.mzonw.ervce.olly.amzonpollyclenblder; mor com.mzonw.ervce.olly.model.plexconreqe; blc cl PLexconSmle { AmzonPolly clen = AmzonPollyClenBlder.delClen(); rve Srng LEXICON_CONTENT = "<?xml veron=\"1.0\" encodng=\"utf-8\"?>" + "<lexcon veron=\"1.0\" xmln=\"h:// xmln:x=\"h:// " + "x:chemlocon=\"h:// h:// " + "lhbe=\"\" xml:lng=\"en-us\">" + "<lexeme><grheme>e1</grheme><l>e2</l></lexeme>" + "</lexcon>"; rve Srng LEXICON_NAME = "SmleLexcon"; blc vod Lexcon() { PLexconReqe LexconReqe = new PLexconReqe().whConen(LEXICON_CONTENT).whNme(LEXICON_NAME); } } ry { clen.lexcon(lexconreqe); } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } 120

126 Jv 範例 SrSeechSynheT 下列的 Jv 程式碼範例示範如何使用以 Jv 危基礎的應用程式 來合成長篇語音 (最多 100,000 個收費字 元) 並將其直接存放於 Amzon S3 儲存貯體中 如需詳細資訊 請參閱 SrSeechSynheT API 的參考文章 cge com.mzonw.rro.ervce.e.eech.; mor mor mor mor com.mzonw.rro.ervce.e.abrcprroservcete; com.mzonw.ervce.olly.amzonpolly; com.mzonw.ervce.olly.model.*; org.wly.dron; mor jv.l.concrren.tmeun; mor c org.wly.awly.w; blc cl SrSeechSynheTSmle { rve c nl n SYNTHESIS_TASK_TIMEOUT_SECONDS = 300; rve c nl AmzonPolly AMAZON_POLLY_CLIENT = AmzonPollyClenBlder.delClen(); rve c nl Srng PLAIN_TEXT = "Th mle ex o be ynhezed."; rve c nl Srng OUTPUT_FORMAT_MP3 = OForm.M3.oSrng(); rve c nl Srng OUTPUT_BUCKET = "ynh-boo-bce"; rve c nl Srng SNS_TOPIC_ARN = "rn:w:n:ewe-2: :ynheze-nh-oc"; rve c nl Dron SYNTHESIS_TASK_POLL_INTERVAL = Dron.FIVE_SECONDS; rve c nl Dron SYNTHESIS_TASK_POLL_DELAY = Dron.TEN_SECONDS; blc c vod mn(srng... rg) { SrSeechSynheTReqe reqe = new SrSeechSynheTReqe().whOForm(OUTPUT_FORMAT_MP3).whTex(PLAIN_TEXT).whTexTye(TexTye.Tex).whVoceId(VoceId.Amy).whOS3BceNme(OUTPUT_BUCKET).whSnTocArn(SNS_TOPIC_ARN); SrSeechSynheTRel rel = AMAZON_POLLY_CLIENT.rSeechSynheT(reqe); Srng Id = rel.gesynhet().getid(); w().wh().ollinervl(synthesis_task_poll_interval).olldely(synthesis_task_poll_delay).mo(synthesis_task_timeout_seconds, TmeUn.SECONDS).nl( () -> gesynhets(id).eql(ts.comleed.osrng()) ); } rve c SynheT gesynhet(srng Id) { GeSeechSynheTReqe geseechsynhetreqe = new GeSeechSynheTReqe().whTId(Id); GeSeechSynheTRel rel =AMAZON_POLLY_CLIENT.geSeechSynheT(geSeechSynheTReqe); rern rel.gesynhet(); } rve c Srng gesynhets(srng Id) { 121

127 Jv 範例 GeSeechSynheTReqe geseechsynhetreqe = new GeSeechSynheTReqe().whTId(Id); GeSeechSynheTRel rel =AMAZON_POLLY_CLIENT.geSeechSynheT(geSeechSynheTReqe); rern rel.gesynhet().gets(); } } 語音標記 以下 Jv 程式碼範例展示如何使用以 Jv 為基礎的應用程式 來合成輸入文字的語音標記 此功能使用 SynhezeSeech API 如需該功能的詳細資訊 請參閱語音標記 (. 73) 如需 API 詳細資訊 請參閱 SynhezeSeech API 的參考文章 cge com.mzonw.olly.mle; mor mor mor mor mor mor mor com.mzonw.ervce.olly.amzonpolly; com.mzonw.ervce.olly.amzonpollyclenblder; com.mzonw.ervce.olly.model.oform; com.mzonw.ervce.olly.model.seechmrtye; com.mzonw.ervce.olly.model.synhezeseechreqe; com.mzonw.ervce.olly.model.synhezeseechrel; com.mzonw.ervce.olly.model.voceid; mor jv.o.fle; mor jv.o.fleosrem; mor jv.o.insrem; blc cl SynhezeSeechMrSmle { AmzonPolly clen = AmzonPollyClenBlder.delClen(); blc vod ynhezeseechmr() { Srng oflenme = "/m/eechmr.jon"; SynhezeSeechReqe ynhezeseechreqe = new SynhezeSeechReqe().whOForm(OForm.Jon).whSeechMrTye(SeechMrTye.Veme, SeechMrTye.Word).whVoceId(VoceId.Jonn).whTex("Th mle ex o be ynhezed."); ry (FleOSrem osrem = new FleOSrem(new Fle(oFleNme))) { SynhezeSeechRel ynhezeseechrel = clen.ynhezeseech(ynhezeseechreqe); bye[] ber = new bye[2 * 1024]; n redbye; } ry (InSrem n = ynhezeseechrel.geadosrem()){ whle ((redbye = n.red(ber)) > 0) { osrem.wre(ber, 0, redbye); } } } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } 122

128 Pyhon 範例 } SynhezeSeech 下列的 Jv 程式碼範例示範如何使用以 Jv 撰寫的應用程式 來合成較短篇的語音 實現接近即時的處理 速度 如需詳細資訊 請參閱 SynhezeSeech API 的參考文章 cge com.mzonw.olly.mle; mor mor mor mor mor mor com.mzonw.ervce.olly.amzonpolly; com.mzonw.ervce.olly.amzonpollyclenblder; com.mzonw.ervce.olly.model.oform; com.mzonw.ervce.olly.model.synhezeseechreqe; com.mzonw.ervce.olly.model.synhezeseechrel; com.mzonw.ervce.olly.model.voceid; mor jv.o.fle; mor jv.o.fleosrem; mor jv.o.insrem; blc cl SynhezeSeechSmle { AmzonPolly clen = AmzonPollyClenBlder.delClen(); blc vod ynhezeseech() { Srng oflenme = "/m/eech.m3"; SynhezeSeechReqe ynhezeseechreqe = new SynhezeSeechReqe().whOForm(OForm.M3).whVoceId(VoceId.Jonn).whTex("Th mle ex o be ynhezed."); ry (FleOSrem osrem = new FleOSrem(new Fle(oFleNme))) { SynhezeSeechRel ynhezeseechrel = clen.ynhezeseech(ynhezeseechreqe); bye[] ber = new bye[2 * 1024]; n redbye; } } ry (InSrem n = ynhezeseechrel.geadosrem()){ whle ((redbye = n.red(ber)) > 0) { osrem.wre(ber, 0, redbye); } } } cch (Exceon e) { Syem.err.rnln("Exceon cgh: " + e); } Pyhon 範例 以下程式碼範例展示如何使用以 Pyhon (boo3) 為基礎的應用程式 完成使用 Amzon Polly 的各種工作 這些範例並非預定做為完整的範例 但可包括在使用 AWS SDK or Pyhon (Boo) 的更大型 Pyhon 應用程 式中 程式碼片段 DeleeLexcon (. 124) GeLexcon (. 124) 123

129 Pyhon 範例 LLexcon (. 125) PLexcon (. 126) SrSeechSynheT (. 127) SynhezeSeech (. 127) DeleeLexcon 以下 Pyhon 程式碼範例使用 AWS SDK or Pyhon (Boo) 來刪除在您本機 AWS 組態內所指定區域中的語 彙 此範例僅刪除指定的語彙 此範例會在真正刪除語彙語彙前詢問您 以確認您要繼續進行 以下程式碼範例使用儲存於 AWS SDK 組態檔的預設認證 如需建立組態檔的資訊 請參閱 步驟 3.1 設 定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 如需此操作的詳細資訊 請參閱 DeleeLexcon API 的參考文章 rom rgre mor ArgmenPrer rom y mor veron_no rom boo3 mor Seon rom boocore.exceon mor BooCoreError, ClenError # Dene nd re he commnd lne rgmen cl = ArgmenPrer(decron="DeleeLexcon exmle") cl.dd_rgmen("nme", ye=r, mevr="lexicon_name") rgmen = cl.re_rg() # Cree clen ng he credenl nd regon dened n he dmner # econ o he AWS credenl nd congron le eon = Seon(role_nme="dmner") olly = eon.clen("olly") # Reqe conrmon rom = n veron_no >= (3, 0) ele rw_n roceed = rom(("th wll delee he \"{0}\" lexcon," " do yo wn o roceed? [y,n]: ").orm(rgmen.nme)) roceed n ("y", "Y"): rn("deleng {0}...".orm(rgmen.nme)) ry: # Reqe deleon o lexcon by nme reone = olly.delee_lexcon(nme=rgmen.nme) exce (BooCoreError, ClenError) error: # The ervce rerned n error, ex grcelly cl.error(error) rn("done.") ele: rn("cncelled.") GeLexcon 以下 Pyhon 程式碼使用 AWS SDK or Pyhon (Boo) 來擷取 AWS 區域存放的所有語彙 此範例接受作為命 令行參數的語彙名稱 並僅擷取該語彙 列印本機儲存的 m 路徑 以下程式碼範例使用儲存於 AWS SDK 組態檔的預設認證 如需建立組態檔的資訊 請參閱 步驟 3.1 設 定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 如需此操作的詳細資訊 請參閱 GeLexcon API 的參考文章 124

130 Pyhon 範例 rom rgre mor ArgmenPrer rom o mor h rom emle mor geemdr rom boo3 mor Seon rom boocore.exceon mor BooCoreError, ClenError # Dene nd re he commnd lne rgmen cl = ArgmenPrer(decron="GeLexcon exmle") cl.dd_rgmen("nme", ye=r, mevr="lexicon_name") rgmen = cl.re_rg() # Cree clen ng he credenl nd regon dened n he dmner # econ o he AWS credenl nd congron le eon = Seon(role_nme="dmner") olly = eon.clen("olly") rn("fechng {0}...".orm(rgmen.nme)) ry: # Fech lexcon by nme reone = olly.ge_lexcon(nme=rgmen.nme) exce (BooCoreError, ClenError) error: # The ervce rerned n error, ex grcelly cl.error(error) # Ge he lexcon d rom he reone lexcon = reone.ge("lexcon", {}) # Acce he lexcon' conen "Conen" n lexcon: o = h.jon(geemdr(), "%.l" % rgmen.nme) rn("svng o %..." % o) ry: # Sve he lexcon conen o locl le wh oen(o, "w") l_le: l_le.wre(lexcon["conen"]) exce IOError error: # Cold no wre o le, ex grcelly cl.error(error) ele: # The reone ddn' conn lexcon d, ex grcelly cl.error("cold no ech lexcon conen") rn("done.") LLexcon 以下 Pyhon 程式碼範例使用 AWS SDK or Pyhon (Boo) 列出在您本機 AWS 組態內所指定區域中您 帳戶的語彙 如需建立組態檔的資訊 請參閱 步驟 3.1 設定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 如需此操作的詳細資訊 請參閱 LLexcon API 的參考文章 mor y rom boo3 mor Seon rom boocore.exceon mor BooCoreError, ClenError # Cree clen ng he credenl nd regon dened n he dmner # econ o he AWS credenl nd congron le eon = Seon(role_nme="dmner") 125

131 Pyhon 範例 olly = eon.clen("olly") ry: # Reqe he l o vlble lexcon reone = olly.l_lexcon() exce (BooCoreError, ClenError) error: # The ervce rerned n error, ex grcelly rn(error) y.ex(-1) # Ge he l o lexcon n he reone lexcon = reone.ge("lexcon", []) rn("{0} lexcon() ond".orm(len(lexcon))) # O ormed l o lexcon wh ome o he rbe or lexcon n lexcon: rn((" - {Nme} ({Arbe[LnggeCode]}), " "{Arbe[LexemeCon]} lexeme()").orm(**lexcon)) PLexcon 以下程式碼範例展示如何使用以 Pyhon (boo3) 為基礎的應用程式 來將發音語彙儲存於 AWS 區域 如需此操作的詳細資訊 請參閱 PLexcon API 的參考文章 請注意以下內容 您需要提供本機語彙檔名和儲存的語彙名稱 以更新程式碼 此範例假設您在 l 子目錄中建立語彙檔案 您需要適時更新路徑 以下程式碼範例使用儲存於 AWS SDK 組態檔的預設認證 如需建立組態檔的資訊 請參閱 步驟 3.1 設 定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 如需此操作的詳細資訊 請參閱 PLexcon API 的參考文章 rom rgre mor ArgmenPrer rom boo3 mor Seon rom boocore.exceon mor BooCoreError, ClenError # Dene nd re he commnd lne rgmen cl = ArgmenPrer(decron="PLexcon exmle") cl.dd_rgmen("h", ye=r, mevr="file_path") cl.dd_rgmen("-n", "--nme", ye=r, reqred=tre, mevr="lexicon_name", de="nme") rgmen = cl.re_rg() # Cree clen ng he credenl nd regon dened n he dmner # econ o he AWS credenl nd congron le eon = Seon(role_nme="dmner") olly = eon.clen("olly") # Oen he PLS lexcon le or redng ry: wh oen(rgmen.h, "r") lexcon_le: # Red he l le conen lexcon_d = lexcon_le.red() # Sore he PLS lexcon on he ervce. # I lexcon wh h nme lredy ex, # conen wll be ded reone = olly._lexcon(nme=rgmen.nme, 126

132 Pyhon 範例 Conen=lexcon_d) exce (IOError, BooCoreError, ClenError) error: # Cold no oen/red he le or he ervce rerned n error, # ex grcelly cl.error(error) rn("the \"{0}\" lexcon now vlble or e.".orm(rgmen.nme)) SrSeechSynheT 以下 Pyhon 程式碼範例使用 AWS SDK or Pyhon (Boo) 列出在您本機 AWS 組態內所指定區域中您 帳戶的語彙 如需建立組態檔的資訊 請參閱 步驟 3.1 設定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 如需詳細資訊 請參閱 SrSeechSynheT API 的參考文章 mor boo3 mor me olly_clen = boo3.seon( w_cce_ey_d=, w_ecre_cce_ey=, regon_nme='e-we-2').clen('olly ) reone = olly_clen.r_eech_ynhe_(voceid='jonn', OS3BceNme='ynh-boo-bce', OS3KeyPrex='ey', OForm='m3', Tex = 'Th mle ex o be ynhezed.') Id = reone['synhet']['tid'] rn "T d {} ".orm(id) _ = olly_clen.ge_eech_ynhe_(tid = Id) rn _ SynhezeSeech 以下 Pyhon 程式碼範例使用 AWS SDK or Pyhon (Boo) 列出在您本機 AWS 組態內所指定區域中您 帳戶的語彙 如需建立組態檔的資訊 請參閱 步驟 3.1 設定 AWS Commnd Lne Inerce (AWS CLI) (. 6) 如需 API 詳細資訊 請參閱 SynhezeSeech API 的參考文章 mor boo3 olly_clen = boo3.seon( w_cce_ey_d=, w_ecre_cce_ey=, regon_nme='-we-2').clen('olly') reone = olly_clen.ynheze_eech(voceid='jonn', OForm='m3', Tex = 'Th mle ex o be ynhezed.') le = oen('eech.m3', 'wb') le.wre(reone['adosrem'].red()) le.cloe() 127

133 範例應用程式 範例應用程式 本節包含其他範例 格式為可用於探索 Amzon Polly 的範例應用程式 依程式設計語言區分的範例應用程式 Pyhon 範例 (HTML5 用戶端和 Pyhon 伺服器) (. 128) Jv 範例 (. 137) OS 範例 (. 141) Androd 範例 (. 143) Pyhon 範例 (HTML5 用戶端和 Pyhon 伺服器) 此範例應用程式包含以下項目 使用 HTTP 區塊傳輸編碼的 HTTP 1.1 伺服器 (請參閱 區塊傳輸編碼) 與 HTTP 1.1 伺服器互動的簡易 HTML5 使用者介面 (如下所示) 此範例的目標為展示如何使用 Amzon Polly 來串流來自以瀏覽器為基礎的 HTML5 應用程式的語音 在回 應性是重要因素的使用案例 (如對話系統 螢幕助讀程式等) 中 建議隨著文字合成取用 Amzon Polly 產生 的音訊串流 若要執行此範例應用程式 您需要以下項目 符合 HTML5 和 EcmScr5 標準的網頁瀏覽器 (如 Chrome 23.0 或以上 Freox 21.0 或以上 Inerne Exlorer 9.0 或以上) Pyhon 3.0 以上的版本 若要測試應用程式 1. 將伺服器程式碼另存為 erver.y 如需程式碼 請參閱 Pyhon 範例 Pyhon 伺服器程式碼 (erver.y) (. 132) 128

134 Pyhon 範例 2. 將 HTML5 用戶端程式碼另存為 ndex.hml 如需程式碼 請參閱 Pyhon 範例 HTML5 使用者介面 (ndex.hml) (. 129) 3. 從您儲存 erver.y 的路徑執行以下命令 以啟動應用程式 (在某些系統中 您可能需要在執行命令時使 用 yhon3 而非 yhon) $ yhon erver.y 應用程式啟動後 URL 在終端機上出現 4. 在網頁瀏覽器中開啟在終端機中顯示的 URL 您可以將應用程式伺服器的位址和連接埠 (以作為參數使用) 傳遞至 erver.y 如需詳細資訊 請執 行 yhon erver.y -h 若要聆聽語音 請從清單選擇聲音 輸入一些文字 然後選擇 [Red] Amzon Polly 一傳輸第一個可用 的音訊資料區塊後 語音隨即開始播放 若要在完成測試應用程式時停止 Pyhon 伺服器 請在伺服器正在執行的終端機中按下 Crl+C Noe 伺服器使用 AWS SDK or Pyhon (Boo) 建立 Boo3 用戶端 用戶端會使用在您電腦上 AWS Cong 中存放的登入資料 來簽署和驗證 Amzon Polly 的要求 如需如何建立 AWS 組態檔和存放 登入資料的詳細資訊 請參閱在 AWS Commnd Lne Inerce Uer Gde 中的設定 AWS 命令列 介面 Pyhon 範例 HTML5 使用者介面 (ndex.hml) 本節提供 Pyhon 範例 (HTML5 用戶端和 Pyhon 伺服器) (. 128) 所述的 HTML5 用戶端程式碼 <hml> <hed> <le>tex-o-seech Exmle Alcon</le> <cr> /* * Th mle code reqre web brower wh or or boh he * HTML5 nd ECMAScr 5 ndrd; he ollowng non-comrehenve * l o comln brower nd her mnmm veron: * * - Chrome * - Freox * - Inerne Exlorer 9.0+ * - Edge * - Oer * - Sr 6.1+ * - Androd (oc web brower) 4.4+ * - Chrome or Androd * - Freox or Androd * - Oer Moble * - OS (Sr Moble nd Chrome) 3.2+ * - Inerne Exlorer Moble * - Blcberry Brower */ // Mng o he OForm rmeer o he SynhezeSeech API // nd he do orm rng nderood by he brower vr AUDIO_FORMATS = { 'ogg_vorb': 'do/ogg', 'm3': 'do/meg', 'cm': 'do/wve; codec=1' }; 129

135 Pyhon 範例 /** * Hndle echng JSON over HTTP */ ncon echjson(mehod, rl, onscce, onerror) { vr reqe = new XMLHReqe(); reqe.oen(mehod, rl, re); reqe.onlod = ncon () { // I lodng comlee (reqe.redyse === 4) { // he reqe w ccel (reqe. === 200) { vr d; // Pre he JSON n he reone ry { d = JSON.re(reqe.reoneTex); } cch (error) { onerror(reqe., error.osrng()); } }; } } onscce(d); } ele { onerror(reqe., reqe.reonetex) } reqe.end(); /** * Rern l o do orm ored by he brower */ ncon gesoredadoform(lyer) { rern Objec.ey(AUDIO_FORMATS).ler(ncon (orm) { vr ored = lyer.cnplytye(audio_formats[orm]); rern ored === 'robbly' ored === 'mybe'; }); } // Inlze he lcon when he DOM loded nd redy o be // mnled docmen.ddevenlener("domconenloded", ncon () { vr n = docmen.geelemenbyid('n'), vocemen = docmen.geelemenbyid('voce'), ex = docmen.geelemenbyid('ex'), lyer = docmen.geelemenbyid('lyer'), bm = docmen.geelemenbyid('bm'), oredform = gesoredadoform(lyer); // Dly mege nd don' llow bmng he orm he // brower doen' or ny o he vlble do orm (oredform.lengh === 0) { bm.dbled = re; ler('the web brower n e doe no or ny o he' + ' vlble do orm. Plee ry wh deren' + ' one.'); } // Ply he do rem when he orm bmed ccelly n.ddevenlener('bm', ncon (even) { // Vlde he eld n he orm, dly mege // nexeced vle re enconered (vocemen.elecedindex <= 0 ex.vle.lengh === 0) { 130

136 Pyhon 範例 ler('plee ll n ll he eld.'); } ele { vr elecedvoce = vocemen.oon[vocemen.elecedindex].vle; } }); // Pon he lyer o he remng erver lyer.rc = '/red?voceid=' + encodeuricomonen(elecedvoce) + '&ex=' + encodeuricomonen(ex.vle) + '&oform=' + oredform[0]; lyer.ly(); // So he orm rom bmng, // Sbmng he orm llowed only he brower doen' // or Jvcr o enre nconly n ch ce even.revendel(); // Lod he l o vlble voce nd dly hem n men echjson('get', '/voce', // I he reqe cceed ncon (voce) { vr conner = docmen.creedocmenfrgmen(); // Bld he l o oon or he men voce.orech(ncon (voce) { vr oon = docmen.creeelemen('oon'); oon.vle = voce['id']; oon.nnerhtml = voce['nme'] + ' (' + voce['gender'] + ', ' + voce['lnggenme'] + ')'; conner.endchld(oon); }); // Add he oon o he men nd enble he orm eld vocemen.endchld(conner); vocemen.dbled = le; }); }, // I he reqe l ncon (, reone) { // Dly mege n ce lodng d rom he erver // l ler( + ' - ' + reone); }); </cr> <yle> #n { mn-wdh: 100x; mx-wdh: 600x; mrgn: 0 o; ddng: 50x; } #n dv { mrgn-boom: 20x; } #ex { wdh: 100%; hegh: 200x; dly: bloc; } 131

137 Pyhon 範例 #bm { wdh: 100%; } </yle> </hed> <body> <orm d="n" mehod="get" con="/red"> <dv> <lbel or="voce">selec voce:</lbel> <elec d="voce" nme="voceid" dbled> <oon vle="">chooe voce...</oon> </elec> </dv> <dv> <lbel or="ex">tex o red:</lbel> <exre d="ex" mxlengh="1000" mnlengh="1" nme="ex" lceholder="tye ome ex here..."></exre> </dv> <n ye="bm" vle="red" d="bm" /> </orm> <do d="lyer"></do> </body> </hml> Pyhon 範例 Pyhon 伺服器程式碼 (erver.y) 本節提供 Pyhon 範例 (HTML5 用戶端和 Pyhon 伺服器) (. 128) 所述的 Pyhon 伺服器程式碼 """ Exmle Pyhon 2.7+/3.3+ Alcon Th lcon con o HTTP 1.1 erver ng he HTTP chned rner codng (h://ool.e.org/hml/rc2616#econ-3.6.1) nd mnml HTML5 er nerce h nerc wh. The gol o h exmle o r remng he eech o he clen (he HTML5 web UI) oon he r conmble chn o eech rerned n order o r lyng he do oon oble. For e ce where low lency nd reonvene re rong reqremen, h he recommended roch. The ervce docmenon conn exmle or non-remng e ce where wng or he eech ynhe o comlee nd echng he whole do rem once re n oon. To e he lcon, rn 'yhon erver.y' nd hen oen he URL dlyed n he ermnl n web brower (ee ndex.hml or l o ored brower). The ddre nd or or he erver cn be ed rmeer o erver.y. For more normon, rn: 'yhon erver.y -h' """ rom rgre mor ArgmenPrer rom collecon mor nmedle rom conexlb mor clong rom o mor ByeIO rom jon mor dm jon_encode mor o mor y y.veron_no >= (3, 0): rom h.erver mor BeHTTPReqeHndler, HTTPServer rom oceerver mor ThredngMxIn 132

138 Pyhon 範例 rom ele: rom rom rom rllb.re mor re_q BeHTTPServer mor BeHTTPReqeHndler, HTTPServer SoceServer mor ThredngMxIn rlre mor re_q rom boo3 mor Seon rom boocore.exceon mor BooCoreError, ClenError ReoneS = nmedle("https", ["code", "mege"]) ReoneD = nmedle("reoned", ["", "conen_ye", "d_rem"]) # Mng he o orm ed n he clen o he conen ye or he # reone AUDIO_FORMATS = {"ogg_vorb": "do/ogg", "m3": "do/meg", "cm": "do/wve; codec=1"} CHUNK_SIZE = 1024 HTTP_STATUS = {"OK": ReoneS(code=200, mege="ok"), "BAD_REQUEST": ReoneS(code=400, mege="bd reqe"), "NOT_FOUND": ReoneS(code=404, mege="no ond"), "INTERNAL_SERVER_ERROR": ReoneS(code=500, mege="inernl erver error")} PROTOCOL = "h" ROUTE_INDEX = "/ndex.hml" ROUTE_VOICES = "/voce" ROUTE_READ = "/red" # Cree clen ng he credenl nd regon dened n he dmner # econ o he AWS credenl nd congron le eon = Seon(role_nme="dmner") olly = eon.clen("olly") cl HTTPSError(Exceon): """Exceon wrng vle rom h.erver.https""" de n (el,, decron=none): """ Conrc n error nnce rom le o (code, mege, decron), ee h.erver.https """ er(httpserror, el). n () el.code =.code el.mege =.mege el.exln = decron cl ThrededHTTPServer(ThredngMxIn, HTTPServer): """An HTTP Server h hndle ech reqe n new hred""" demon_hred = Tre cl ChnedHTTPReqeHndler(BeHTTPReqeHndler): """"HTTP 1.1 Chned encodng reqe hndler""" # Ue HTTP doen' or chned encodng roocol_veron = "HTTP/1.1" de qery_ge(el, qeryd, ey, del=""): """Heler or geng vle rom re-red qery rng""" rern qeryd.ge(ey, [del])[0] 133

139 Pyhon 範例 de do_get(el): """Hndle GET reqe""" # Exrc vle rom he qery rng h, _, qery_rng = el.h.ron('?') qery = re_q(qery_rng) reone = None rn("[start]: Receved GET or % wh qery: %" % (h, qery)) ry: # Hndle he oble reqe h h == ROUTE_INDEX: reone = el.roe_ndex(h, qery) el h == ROUTE_VOICES: reone = el.roe_voce(h, qery) el h == ROUTE_READ: reone = el.roe_red(h, qery) ele: reone = el.roe_no_ond(h, qery) el.end_heder(reone., reone.conen_ye) el.rem_d(reone.d_rem) exce HTTPSError err: # Reond wh n error nd log debg # normon y.veron_no >= (3, 0): el.end_error(err.code, err.mege, err.exln) ele: el.end_error(err.code, err.mege) el.log_error("% % % - [%d] %", el.clen_ddre[0], el.commnd, el.h, err.code, err.exln) rn("[end]") de roe_no_ond(el, h, qery): """Hndle rong or nexeced h""" re HTTPSError(HTTP_STATUS["NOT_FOUND"], "Pge no ond") de roe_ndex(el, h, qery): """Hndle rong or he lcon' enry on'""" ry: rern ReoneD(=HTTP_STATUS["OK"], conen_ye="ex_hml", # Oen bnry rem or redng he ndex # HTML le d_rem=oen(o.h.jon(y.h[0], h[1:]), "rb")) exce IOError err: # Coldn' oen he rem re HTTPSError(HTTP_STATUS["INTERNAL_SERVER_ERROR"], r(err)) de roe_voce(el, h, qery): """Hndle rong or lng vlble voce""" rm = {} voce = [] whle Tre: ry: # Reqe l o vlble voce, connon oen # w rerned by he revo cll hen e o conne # lng reone = olly.decrbe_voce(**rm) 134

140 Pyhon 範例 exce (BooCoreError, ClenError) err: # The ervce rerned n error re HTTPSError(HTTP_STATUS["INTERNAL_SERVER_ERROR"], r(err)) # Collec ll he voce voce.exend(reone.ge("voce", [])) # I connon oen w rerned conne, o erng # oherwe "NexToen" n reone: rm = {"NexToen": reone["nextoen"]} ele: bre jon_d = jon_encode(voce) bye_d = bye(jon_d, "-8") y.veron_no >= (3, 0) \ ele bye(jon_d) rern ReoneD(=HTTP_STATUS["OK"], conen_ye="lcon/jon", # Cree bnry rem or he JSON d d_rem=byeio(bye_d)) de roe_red(el, h, qery): """Hndle rong or redng ex (eech ynhe)""" # Ge he rmeer rom he qery rng ex = el.qery_ge(qery, "ex") voceid = el.qery_ge(qery, "voceid") oform = el.qery_ge(qery, "oform") # Vlde he rmeer, e error lg n ce o nexeced # vle len(ex) == 0 or len(voceid) == 0 or \ oform no n AUDIO_FORMATS: re HTTPSError(HTTP_STATUS["BAD_REQUEST"], "Wrong rmeer") ele: ry: # Reqe eech ynhe reone = olly.ynheze_eech(tex=ex, VoceId=voceId, OForm=oForm) exce (BooCoreError, ClenError) err: # The ervce rerned n error re HTTPSError(HTTP_STATUS["INTERNAL_SERVER_ERROR"], r(err)) rern ReoneD(=HTTP_STATUS["OK"], conen_ye=audio_formats[oform], # Acce he do rem n he reone d_rem=reone.ge("adosrem")) de end_heder(el,, conen_ye): """Send o he gro o heder or ccel reqe""" # Send HTTP heder el.end_reone(.code,.mege) el.end_heder('conen-ye', conen_ye) el.end_heder('trner-encodng', 'chned') el.end_heder('connecon', 'cloe') el.end_heder() de rem_d(el, rem): """Conme rem n chn o rodce he reone' o'""" rn("sremng red...") 135

141 Pyhon 範例 rem: # Noe: Clong he rem morn he ervce hrole on # he nmber o rllel connecon. Here we re ng # conexlb.clong o enre he cloe mehod o he rem objec # wll be clled omclly he end o he wh emen' # coe. wh clong(rem) mnged_rem: # Ph o he rem' conen n chn whle Tre: d = mnged_rem.red(chunk_size) el.wle.wre(b"%x\r\n%\r\n" % (len(d), d)) # I here' no more d o red, o remng no d: bre # Enre ny bered o h been rnmed nd cloe he # rem el.wle.lh() rn("sremng comleed.") ele: # The rem ed n emy el.wle.wre(b"0\r\n\r\n") rn("nohng o rem.") # Dene nd re he commnd lne rgmen cl = ArgmenPrer(decron='Exmle Pyhon Alcon') cl.dd_rgmen( "-", "--or", ye=n, mevr="port", de="or", del=8000) cl.dd_rgmen( "--ho", ye=r, mevr="host", de="ho", del="loclho") rgmen = cl.re_rg() # I he modle nvoed drecly, nlze he lcon nme == ' mn ': # Cree nd congre he HTTP erver nnce erver = ThrededHTTPServer((rgmen.ho, rgmen.or), ChnedHTTPReqeHndler) rn("srng erver, e <Crl-C> o o...") rn("oen {0}://{1}:{2}{3} n web brower.".orm(protocol, rgmen.ho, rgmen.or, ROUTE_INDEX)) ry: # Len or reqe ndenely erver.erve_orever() exce KeybordInerr: # A reqe o ermne h been receved, o he erver rn("\nshng down...") erver.oce.cloe() 136

142 Jv 範例 Jv 範例 此範例展示如何使用 Amzon Polly 來串流來自以 Jv 為基礎的應用程式的語音 此範例使用 AWS SDK or Jv 以從清單選取的聲音朗讀指定的文字 顯示的程式碼包括主要工作 但僅進行最基本的錯誤檢查 如果 Amzon Polly 遇到錯誤 應用程式即終 止 若要執行此範例應用程式 您需要以下項目 Jv 8 Jv Develomen K (JDK) 適用於 Jv 的 AWS 開發套件 Ache Mven 若要測試應用程式 1. 確認 JAVA_HOME 環境變數已針對 JDK 設定 例如 如果您在 Wndow 中將 JDK 1.8.0_121 安裝於 C:\Progrm Fle\Jv\jd1.8.0_121 您可在命令提示輸入以下命令 e JAVA_HOME=""C:\Progrm Fle\Jv\jd1.8.0_121"" 如果您在 Lnx 中將 JDK 1.8.0_121 安裝於 /r/lb/jvm/jv8-oenjd-md64 您可在命令提 示輸入以下命令 exor JAVA_HOME=/r/lb/jvm/jv8-oenjd-md64 2. 設定 Mven 環境變數 從命令列執行 Mven 例如 如果您在 Wndow 中將 Mven 安裝於 C:\Progrm Fle\che-mven 您可以輸入以下命令 e M2_HOME=""C:\Progrm Fle\che-mven-3.3.9"" e M2=%M2_HOME%\bn e PATH=%M2%;%PATH% 如果您在 Lnx 中將 Mven 安裝於 /home/ec2-er/o/che-mven 您可以輸 入以下命令 exor M2_HOME=/home/ec2-er/o/che-mven exor M2=$M2_HOME/bn exor PATH=$M2:$PATH 3. 建立名為 olly-jv-demo 的新目錄 4. 在 olly-jv-demo 目錄中 建立名為 om.xml 的新檔案 並將以下程式碼貼入其中 <rojec xmln="h://mven.che.org/pom/4.0.0" xmln:x="h:// x:chemlocon="h://mven.che.org/pom/4.0.0 h://mven.che.org/xd/ mven xd"> <modelveron>4.0.0</modelveron> <groid>com.mzonw.olly</groid> <rcid>jv-demo</rcid> <veron>0.0.1-snapshot</veron> 137

143 Jv 範例 <deendence> <!-- h://mvnreoory.com/rc/com.mzonw/w-jv-d-olly --> <deendency> <groid>com.mzonw</groid> <rcid>w-jv-d-olly</rcid> <veron> </veron> </deendency> <!-- h://mvnreoory.com/rc/com.googlecode.ondlb/jlyer --> <deendency> <groid>com.googlecode.ondlb</groid> <rcid>jlyer</rcid> <veron> </veron> </deendency> </deendence> <bld> <lgn> <lgn> <groid>org.codeh.mojo</groid> <rcid>exec-mven-lgn</rcid> <veron>1.2.1</veron> <execon> <execon> <gol> <gol>jv</gol> </gol> </execon> </execon> <congron> <mncl>com.mzonw.demo.olly.pollydemo</mncl> </congron> </lgn> </lgn> </bld> </rojec> 5. 在 rc/mn/jv/com/mzonw/demo 建立名為 olly 的新目錄 6. 在 olly 目錄中 建立名為 PollyDemo.jv 的新 Jv 來源檔案 並在以下程式碼貼中上 cge com.mzonw.demo.olly; mor jv.o.ioexceon; mor jv.o.insrem; mor mor mor mor mor mor mor mor mor mor mor com.mzonw.clencongron; com.mzonw.h.delawscredenlprovderchn; com.mzonw.regon.regon; com.mzonw.regon.regon; com.mzonw.ervce.olly.amzonpollyclen; com.mzonw.ervce.olly.model.decrbevocereqe; com.mzonw.ervce.olly.model.decrbevocerel; com.mzonw.ervce.olly.model.oform; com.mzonw.ervce.olly.model.synhezeseechreqe; com.mzonw.ervce.olly.model.synhezeseechrel; com.mzonw.ervce.olly.model.voce; mor jvzoom.jl.lyer.dvnced.advncedplyer; mor jvzoom.jl.lyer.dvnced.plybceven; mor jvzoom.jl.lyer.dvnced.plybclener; blc cl PollyDemo { rve nl AmzonPollyClen olly; 138

144 Jv 範例 rve nl Voce voce; rve c nl Srng SAMPLE = "Congrlon. Yo hve ccelly bl h worng demo o Amzon Polly n Jv. Hve n bldng voce enbled wh Amzon Polly (h' me!), nd lwy loo he AWS webe or nd rc on ng Amzon Polly nd oher gre ervce rom AWS"; blc PollyDemo(Regon regon) { // cree n Amzon Polly clen n ecc regon olly = new AmzonPollyClen(new DelAWSCredenlProvderChn(), new ClenCongron()); olly.eregon(regon); // Cree decrbe voce reqe. DecrbeVoceReqe decrbevocereqe = new DecrbeVoceReqe(); // Synchronoly Amzon Polly o decrbe vlble TTS voce. DecrbeVoceRel decrbevocerel = olly.decrbevoce(decrbevocereqe); voce = decrbevocerel.gevoce().ge(0); } blc InSrem ynheze(srng ex, OForm orm) hrow IOExceon { SynhezeSeechReqe ynhreq = new SynhezeSeechReqe().whTex(ex).whVoceId(voce.geId()).whOForm(orm); SynhezeSeechRel ynhre = olly.ynhezeseech(ynhreq); rern ynhre.geadosrem(); } blc c vod mn(srng rg[]) hrow Exceon { //cree he e cl PollyDemo helloworld = new PollyDemo(Regon.geRegon(Regon.US_EAST_1)); //ge he do rem InSrem eechsrem = helloworld.ynheze(sample, OForm.M3); //cree n MP3 lyer AdvncedPlyer lyer = new AdvncedPlyer(eechSrem, jvzoom.jl.lyer.fcoryregry.yemregry().creeadodevce()); lyer.eplybclener(new PlybcLener() blc vod lybcsred(plybceven ev) { Syem.o.rnln("Plybc red"); Syem.o.rnln(SAMPLE); blc vod lybcfnhed(plybceven ev) { Syem.o.rnln("Plybc nhed"); } }); // ly! lyer.ly(); } } 7. 回到 olly-jv-demo 目錄清理 編譯和執行示範 mvn clen comle exec:jv 139

145 Jv 範例 140

146 OS 範例 OS 範例 以下範例使用 OS SDK or Amzon Polly 並使用從聲音清單選取的聲音朗讀指定的文字 在此顯示的程式碼涵蓋主要工作 但不會處理錯誤 如需完整的程式碼 請參閱 AWS SDK or OS Amzon Polly示範 初始化 // Regon o Amzon Polly. le AwRegon = AWSRegonTye.E1 // Cogno ool ID. Pool need o be nhenced ool wh // Amzon Polly ermon. le CognoIdenyPoolId = "YorCognoIdenyPoolId" // Inlze he Amzon Cogno credenl rovder. le credenlprovder = AWSCognoCredenlProvder(regonTye: AwRegon, denypoolid: CognoIdenyPoolId) // Cree n do lyer vr doplyer = AVPlyer() 取得可用聲音的清單 // Ue he congron del AWSServceMnger.del().delServceCongron = congron // Ge ll he voce (no rmeer eced n n) rom Amzon Polly // Th cree n ync. le = AWSPolly.del().decrbeVoce(AWSPollyDecrbeVoceIn()) // When he reqe done, ynchronoly do he ollowng bloc // (we gnore ll he error, b n rel-world cenro hey need // o be hndled).conne(ccebloc: { (wt: AWST) -> Any? n // wt.rel n nnce o AWSPollyDecrbeVoceO n // ce o he "decrbevoce" mehod le voce = (wt.rel! AWSPollyDecrbeVoceO).voce }) rern nl 合成語音 // Fr, Amzon Polly reqre n n, whch we need o rere. // Agn, we gnore he error, however h hold be hndled n // rel lcon. Here we re ng he URL Blder Reqe, // nce n order o me he ynhe qcer we wll he // regned URL o he yem do lyer. le n = AWSPollySynhezeSeechURLBlderReqe() // Tex o ynheze n.ex = "Smle ex" // We exec he o n MP3 orm n.oform = AWSPollyOForm.m3 // Chooe he voce ID n.voceid = AWSPollyVoceId.jonn 141

147 OS 範例 // Cree n o ynheze eech ng he gven ynhe n le blder = AWSPollySynhezeSeechURLBlder.del().gePreSgnedURL(n) // Reqe he URL or ynhe rel blder.conneonsccewh(bloc: { (wt: AWST<NSURL>) -> Any? n // The rel o gepregnedurl NSURL. // Agn, we gnore he error n he exmle. le rl = wt.rel! // Try lyng he d ng he yem AVAdoPlyer el.doplyer.relcecrreniem(wh: AVPlyerIem(rl: rl URL)) el.doplyer.ly() rern nl }) 142

148 Androd 範例 Androd 範例 以下範例使用 Androd SDK or Amzon Polly 並使用從聲音清單選取的聲音朗讀指定的文字 在此顯示的程式碼涵蓋主要工作 但不會處理錯誤 如需完整的程式碼 請參閱 AWS SDK or AndrodAmzon Polly 示範 初始化 // Cogno ool ID. Pool need o be nhenced ool wh // Amzon Polly ermon. Srng COGNITO_POOL_ID = "YorCognoIdenyPoolId"; // Regon o Amzon Polly. Regon MY_REGION = Regon.US_EAST_1; // Inlze he Amzon Cogno credenl rovder. CognoCchngCredenlProvder credenlprovder = new CognoCchngCredenlProvder( gealconconex(), COGNITO_POOL_ID, MY_REGION ); // Cree clen h or generon o regned URL. AmzonPollyPregnngClen clen = new AmzonPollyPregnngClen(credenlProvder); 取得可用聲音的清單 // Cree decrbe voce reqe. DecrbeVoceReqe decrbevocereqe = new DecrbeVoceReqe(); // Synchronoly Amzon Polly o decrbe vlble TTS voce. DecrbeVoceRel decrbevocerel = clen.decrbevoce(decrbevocereqe); L<Voce> voce = decrbevocerel.gevoce(); 取得音訊串流的 URL // Cree eech ynhe reqe. SynhezeSeechPregnReqe ynhezeseechpregnreqe = new SynhezeSeechPregnReqe() // Se he ex o ynheze..whtex("hello world!") // Selec voce or ynhe..whvoceid(voce.ge(0).geid()) // "Jonn" // Se orm o MP3..whOForm(OForm.M3); // Ge he regned URL or ynhezed eech do rem. URL regnedsynhezeseechurl = clen.gepregnedsynhezeseechurl(ynhezeseechpregnreqe); 播放合成的語音 // Ue MedPlyer: h://develoer.ndrod.com/gde/oc/med/medlyer.hml // Cree med lyer o ly he ynhezed do rem. MedPlyer medplyer = new MedPlyer(); medplyer.eadosremtye(adomnger.stream_music); 143

149 Androd 範例 ry { // Se med lyer' d orce o revoly obned URL. medplyer.edsorce(regnedsynhezeseechurl.osrng()); } cch (IOExceon e) { Log.e(TAG, "Unble o e d orce or he med lyer! " + e.gemege()); } // Prere he MedPlyer ynchronoly (nce he d orce newor rem). medplyer.rereaync(); // Se he cllbc o r he MedPlyer when ' rered. medplyer.eonpreredlener(new MedPlyer.OnPreredLener() blc vod onprered(medplyer m) { m.r(); } }); // Se he cllbc o relee he MedPlyer er lybc comleed. medplyer.eoncomleonlener(new MedPlyer.OnComleonLener() blc vod oncomleon(medplyer m) { m.relee(); } }); 144

150 設定外掛程式 Amzon Polly 適用的 WordPre 外 掛程式 您可以使用 WordPre 的 Amzon Polly 外掛程式 為造訪您 WordPre 網站的訪客 提供網站內容的錄 音 透過外掛程式 使用 Amzon Polly 支援的任何語音和語言 來製作音訊檔案 您的訪客可以使用內嵌 的音訊播放器和行動應用程式 在自己方便的時間串流音訊 您可以設定外掛程式執行下列動作 在發布時自動製作新內容的錄音 或選擇針對個別的發文來製作錄音 針對封存的內容製作錄音 透過 Amzon Pollyc RSS 訊息饋送來提供播客的音訊內容 主題 安裝外掛程式 (. 145) 安裝外掛程式 若要安裝和設定外掛程式 請使用 WordPre Add Plgn (新增外掛程式) 頁面 在安裝和啟動外掛程式之 後 請瀏覽至 Amzon Polly Seng (設定) 頁面 並且將該外掛程式連線到您的 AWS 帳戶 若要安裝 WordPre 的 Amzon Polly 外掛程式 您需要擁有 AWS 帳戶及有效的 WordPre 安裝 如果您 沒有帳戶 請參閱步驟 1.1 註冊 AWS (. 3) 當您擁有 AWS 帳戶時 請依照以下步驟來安裝外掛程式 1. 建立許可政策 (. 145) 2. 建立外掛程式的 IAM 使用者 (. 146) 3. 安裝與設定外掛程式 (. 146) 建立許可政策 在AWS Mngemen Conole中 建立稱為 PollyForWordPrePolcy 的 AWS Ideny nd Acce Mngemen (IAM) 許可政策 許可政策是一種文件 定義了套用於使用者 (或群組或角色) 的許可 許可會 決定哪些使用者可以在 AWS 中進行操作 請複製並貼入下列程式碼 { "Veron": " ", "Semen": [ { "Sd": "Permon1", "Eec": "Allow", "Acon": [ "3:HedBce", "olly:synhezeseech", "olly:decrbevoce" ], "Reorce": "*" }, 145

151 建立外掛程式的 IAM 使用者 { } ] } "Sd": "Permon2", "Eec": "Allow", "Acon": [ "3:LBce", "3:GeBceAcl", "3:GeBcePolcy", "3:PObjec", "3:DeleeObjec", "3:CreeBce", "3:PObjecAcl" ], "Reorce": [ "rn:w:3:::do_or_wordre*", "rn:w:3:::do-or-wordre*" ] 如需建立許可政策的詳細資訊 請參閱建立客戶受管政策 建立外掛程式的 IAM 使用者 在將外掛程式連線到 AWS 帳戶之前 您需要先建立 IAM 使用者 然後將您在 建立許可政策 (. 145) 中建 立的許可政策連接到該使用者 IAM 使用者是 AWS 帳戶中的人員或應用程式 需要對 AWS 產品發出 API 呼叫 如果您在 Amzon Elc Come Clod (Amzon EC2) 上部署了 WordPre 可以略過此步驟 並使用 IAM 角色而非 IAM 使用者 如需詳細資訊 請參閱 Amzon EC2 使用者指南中的 Amzon EC2 的 IAM 角 色 建立 IAM 使用者 1. Sgn n o he AWS Mngemen Conole nd oen he IAM conole h:// conole.w.mzon.com/m/. 2. 選擇 Uer (使用者) 3. 選擇 Add Uer (新增使用者) 4. 在 Uer Nme (使用者名稱) 中 輸入 WordPre 5. 對於 Acce Tye (存取類型) 選擇 Progrmmc cce (以程式設計方式存取) 然後選擇 Nex: Permon (下一步 許可) 6. 選取 Ach exng olce drecon (連接現有政策方向) 然後從清單中選擇您新建立的政策 (PollyForWordPrePolcy) 接著選擇 Nex: Revew (下一步 審閱) 7. 選擇 Cree Uer (建立使用者) 8. 記下存取金鑰 ID 和私密存取金鑰 您需要它們來設定外掛程式 Imorn 這是您唯一可以存取這些金鑰的時候 因此務必記錄 安裝與設定外掛程式 從 GHb 安裝外掛程式 然後對其進行設定 以啟用播客 替代儲存位置和其他選項 Noe 在下列的程序中 指令和欄位的名稱 可能會和在 WordPre 中所使用的名稱 有些微的不同 146

152 自訂 WordPre 安裝與設定外掛程式 1. 從 Amzon Polly 外掛程式 GHb 網站下載 Amzon Polly 的 WordPre 外掛程式 2. 在 WordPre Admn (WordPre 管理員) 頁面上 選擇 Add New Plgn (新增外掛程式) 然後安裝並 啟用外掛程式 3. 在 WordPre Admn (WordPre 管理) 頁面上 選擇 Seng (設定) 4. 使用下列 Amzon Polly 設定 選項來設定外掛程式 AWS cce ey nd AWS ecre ey (AWS 存取金鑰和 AWS 私密金鑰) 這些 AWS 登入資料可讓 外掛程式使用 Amzon Polly 和 Amzon Smle Sorge Servce (Amzon S3) 輸入您在 建立外掛 程式的 IAM 使用者 (. 146) 中所建立的 AWS 存取金鑰和私密金鑰 如果您是在 Amzon EC2 上託 管 WordPre 網站 可以使用 IAM 角色而非登入資料 在這種情況下 請讓這兩個欄位空白 Smle re (取樣率) 所要產生音訊檔的取樣率 以 Hz 為單位 取樣率越高 音訊品質就越高 Voce nme (語音名稱) 要在音訊檔案中使用的 Amzon Polly 語音 播放器位置 音訊播放器在網站上的位置 您可以將它放在文章之前或之後 或者完全不使用它 如 果想讓檔案可以透過 Amzon Pollyc 做為播客使用 請不要顯示音訊播放器 New o del (新文章預設) 指定 Amzon Polly 是否應針對所有新的文章 自動製作音訊檔案 如果您想要 Amzon Polly 使用組態設定來為每個新文章建立音訊檔案 請選擇此選項 Aoly (自動播放) 指定是否要在訪客瀏覽文章時 讓音訊播放器自動開始播放文章的音訊 Sore do n Amzon S3 (將音訊存放於 S3 中) 如果想要將音訊檔案存放在 S3 儲存貯體而非您 的 Web 伺服器上 請選擇此選項 Amzon Polly 會為您建立儲存貯體 如需詳細資訊和定價 請參 閱Amzon S3 Amzon ClodFron (CDN) 網域名稱 如果想要使用 Amzon ClodFron 來廣播音訊檔案 請提 供您的 ClodFron 網域的名稱 外掛程式會使用該網域來串流音訊 如果您尚未擁有網域 請在 Amzon ClodFron 中建立一個 ITne cegory (ITne 類別) 播客的類別 選擇類別可讓播客使用者輕鬆在播客目錄中找到您的 播客 ITne exlc (ITne 明確) 指定是否啟用 Amzon Pollyc 廣播 Bl de ll o (大量更新所有文章) 如果您想要將所有文章轉換為使用新的外掛程式設定 請選擇此選項 5. 選擇 Sve Chnge (儲存變更) 自訂您的 WordPre 頁面 您可以使用多種選項來自訂您的 WordPre 內容 讓其更有效地搭配 Amzon Polly WordPre 外掛程式運 作 調整外掛程式設定以微調音訊檔案 (. 147) 在內容中使用 SSML 來修改口說方式 (. 148) 在您的內容中使用 Ado Only 和 Word Only 標籤 (. 148) 調整外掛程式設定以微調音訊檔案 Amzon Polly WordPre 外掛程式設定有三個選項 可協助您自訂音訊檔案 WordPre 文字的音效 語音名稱 選取的語音名稱和語言 可讓您選擇 Amzon Polly 語音的性別 每個語言有特定的適用語 音 許多語言的每個性別也有數個選項 如需更多詳細資訊 請參閱 語音 Amzon Polly (. 10) 自動呼吸聲 如果啟用 Amzon Polly 會在內容的適當位置自動加上呼吸聲 設定此選項 僅可讓您使用 自動呼吸聲 但不能手動設定 如需詳細資訊 請參閱自動呼吸聲 音訊速度 此選項可讓您更改內容音訊版本的傳輸速度 範圍是預設語音速度的 20% 到 200% 147

153 自訂 WordPre 1. 在 WordPre Admn (WordPre 管理) 頁面上 選擇 Seng (設定) 2. 從 Seng (設定) 選單中選擇 Amzon Polly 3. 視需要變更個別的選項 在內容中使用 SSML 來修改口說方式 Amzon Polly 本身支援多個 SSML 標籤 可讓您控制 Amzon Polly 如何從您提供文字產生語音的許多層 面 (如需 SSML 和 Amzon Polly 的詳細資訊 請參閱支援的 SSML 標籤 (. 84) 有些標籤在您設定外掛 程式時會在外掛程式設定中呼應 不過目前只有 <bre> 標籤可直接用於您的 WordPre 外掛程式 未來 的外掛程式更新會提供更多選擇 <bre> 標籤可讓您新增停頓到文字的口說版本 您可以調整此停頓長度 以符合您的特定需求 預設停頓 長度等同於逗號後面的停頓 如需 <bre> 標籤的詳細資訊 請參閱支援的 SSML 標籤 (. 84) 若要使用 SSML 標籤來增強您的 WordPre 文字 必須在 Amzon Polly 設定中選取 [Enble SSML or (啟用 SSML 支援)] 選項 (在 WordPre Admn (WordPre 管理) 頁面) 也必須選取 Sore do n Amzon S3 (將音訊儲存在 Amzon S3 中) 選項 因為具備 SSML 標籤的音訊檔案必須存放在 S3 儲存貯體 中 在您的內容中使用 Ado Only 和 Word Only 標籤 有時候您要新增某些項目到音訊播客 但不需要在瀏覽器中顯示 或者 您想在瀏覽器中顯示某些內容 但 不將其包含在音訊檔案中 做法是使用 Ado Only 和 Word Only 標籤 放在 WordPre 內容中用以控 制顯示或說出哪些文字部分 若要將文字轉換成音訊 但不顯示在瀏覽器中 1. 在 WordPre 頁面的選定文字上下方放置空行來隔離選定文字 2. 在選定文字的上方行中 插入以下標籤 -AMAZONPOLLY-ONLYAUDIO-START- 3. 在選定文字的下方行中 插入以下標籤 -AMAZONPOLLY-ONLYAUDIO-END- 您可以使用相同程序在瀏覽器中顯示文字 但不包含在音訊檔案中 方法是以相同方式使用標籤 AMAZONPOLLY-ONLYWORDS-START- 和 -AMAZONPOLLY-ONLYWORDS-END- 例如 Inl ex o yor blog dlyed n he brower nd herd n he do le.] -AMAZONPOLLY-ONLYAUDIO-START[Th r wll no be dlyed n he brower b wll be herd n he do le.] -AMAZONPOLLY-ONLYAUDIO-END[Sbeqen ex o yor blog dlyed n he brower nd herd n he do le.] 和 [Inl ex o yor blog dlyed n he brower nd herd n he do le.] -AMAZONPOLLY-ONLYWORD-STARTTh r wll be dlyed n he brower b wll no be herd n he do le.] -AMAZONPOLLY-ONLYWORD-ENDSbeqen ex o yor blog dlyed n he brower nd herd n he do le. 148

154 存放音訊檔案 將翻譯文字加入文章 Amzon Polly WordPre 外掛程式使用 Amzon Trnle 來建立您文章的一或多種其他語言翻譯版本 除了英文 此服務提供四種語言 西班牙文 法文 德文和葡萄牙文 所用語音及那些語言的語音可在 [Amzon Polly 頁面的 [Amzon Trnle congron (Amzon Trnle 組態)] 下方進行設定 若要將您的 WordPre 文章翻譯成其他語言 1. 在 Add New Po (新增文章) 頁面中 建立和發佈新的 WordPre 文章 2. 在相同的頁面上 確保已選擇 Enble Amzon Polly oon (啟用 &POL; 選項) 3. 若要查看在原始語言中建立音訊檔再加上任何額外所選語言的大約成本 請選擇 How mch wll h co o conver? (轉換的成本是多少 ) 選擇 OK (確定) 返回 Add New Po (新增文章) 頁面 4. 選擇 Trnle (翻譯) 若要設定文章的翻譯語言 1. 在 Amzon Polly Seng (Amzon Polly 設定) 頁面的 Amzon Trnle congron (Amzon Trnle 組態) 下方 從 Sorce lngge (來源語言) 下拉式清單中選擇您文章的語言 2. 在 Trge lngge (目標語言) 下方 選擇您要翻譯文章的目標語言 3. 從 Voce (語音) 下拉式清單中 選擇您要用於每個語言的語音 4. 輸入語言選擇的標籤 5. 選擇 Sve Chnge (儲存變更) 儲存音訊檔案 當您在您的網站上發佈內容時 它會傳送到 Amzon Polly 進行合成 根據預設 Amzon Polly 會將新的音 訊檔案存放在您的 web 伺服器上 您也可以將檔案存放於 Amzon Smle Sorge Servce (Amzon S3) 或 Amzon ClodFron (全球內容交付網路 (CDN)) 上 無論您將音訊檔案存放於何處 使用者都能擁有相同的聆聽體驗 只有廣播位置會改變 1. 對於儲存在 WordPre 伺服器上的音訊檔案 檔案會直接從伺服器廣播 2. 如果檔案儲存於 S3 儲存貯體中 會從儲存貯體進行廣播 3. 如果您使用 ClodFron 檔案會存放在 Amzon S3 上 並透過 ClodFron 進行廣播 149

155 存放音訊檔案 在安裝 Amzon Polly 外掛程式時 您可以選擇儲存檔案的位置 定位 HTML 播放器 如果安裝 Amzon Polly 外掛程式 該程式預設會在您 WordPre 網站的頂端顯示 HTML 播放器 (除非您選 擇在網站的文字中顯示播放器或不顯示播放器) 您可以隨時調整播放器的位置 移除或加入播放器 (如果您選擇不顯示) 若要調整播放器的位置 從 WordPre 網站移除或加入播放器 1. 在 WordPre Admn (WordPre 管理) 頁面上 選擇 Seng (設定) 2. 在 Amzon Polly Seng (Amzon Polly 設定) 頁面上 針對 Plyer oon (播放器位置) 選擇適當 的選項 如需組態設定選項的詳細資訊 請參閱安裝與設定外掛程式 (. 146) 使用 Amzon Pollyc 廣播 透過 Amzon Pollyc 饋送服務 訪客可以使用標準的播客應用程式 來聆聽您的音訊內容 符合 RSS 2.0 的 Pollyc 饋送服務 可提供熱門行動播客應用程式 (例如 Tne) 和播客目錄所需的 XML 資料 以彙總播 客內容 150