本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
上傳詞庫
您使用的詞彙必須符合發音 Lexicon 規格 (PLS) W3C 建議。如需詳細資訊,請參閱 W3C 網站上的發音 Lexicon 規格 (PLS) 1.0 版
- Console - Lexicons tab
-
若要使用發音語彙,您必須先上傳該發音語彙。在主控台有兩種位置可供上傳語彙:文字轉語音標籤和語彙標籤。
以下程序描述如何新增語彙,供您用於自訂所選語言稀有單字和片語的發音方式。
若要從 Lexicons 索引標籤新增詞庫
登入 AWS Management Console 並在 開啟 Amazon Polly 主控台https://console.aws.amazon.com/polly/
。 -
選擇 Lexicons (語彙) 索引標籤。
-
選擇上傳詞庫 。
-
提供詞庫的名稱,然後使用選擇詞庫檔案來尋找要上傳的詞庫。您只能上傳副檔名為 .pls 或 .xml PLS的檔案。
-
選擇上傳詞庫 。如果已存在具有相同名稱的詞庫 (無論是 .pls 或 .xml 檔案),上傳詞庫會覆寫現有的詞庫。
- Console - TTS tab
-
從索引標籤新增詞庫 text-to-Speech
登入 AWS Management Console 並在 開啟 Amazon Polly 主控台https://console.aws.amazon.com/polly/
。 -
選擇 Text-to-Speech (文字轉換語音) 索引標籤。
-
展開其他設定 ,開啟自訂發音,然後選擇上傳詞庫 。
-
提供詞庫的名稱,然後使用選擇詞庫檔案來尋找要上傳的詞庫。您只能使用具有 .pls 或 .xml 副檔名PLS的檔案。
-
選擇上傳詞典 。如果已存在具有相同名稱的詞庫 (無論是 .pls 或 .xml 檔案),上傳該詞庫會覆寫現有的詞庫。
- AWS CLI - one lexeme
-
透過 Amazon Polly ,您可以使用 PutLexicon將發音詞儲存在帳戶的特定 AWS 區域中。然後,您可以在您的 SynthesizeSpeech 請求中指定一個或多個儲存的語彙,以在服務開始合成這些文字之前套用。如需詳細資訊,請參閱管理詞庫。
請考慮下列 W3C PLS相容詞庫。
<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> </lexicon>
注意下列事項:
-
此兩個屬性指定於
<lexicon>
元素:-
xml:lang
屬性會指定詞庫套用的語言代碼en-US
。如果您在SynthesizeSpeech
通話中指定的語音具有相同的語言代碼 (en-US),Amazon Polly 可以使用此範例詞庫。注意
您可以使用
DescribeVoices
操作來尋找和語音相關聯的語言代碼。 -
alphabet
屬性指定IPA
,這表示國際電話字母 (IPA) 字母用於發音。IPA 是撰寫發音的字母之一。Amazon Polly 也支援擴展語音評估方法 Phonetic Alphabet (X-SAMPA)。
-
-
<lexeme>
元素描述<grapheme>
(也就是單字的文字表示) 和<alias>
之間的映射。
要測試此語彙,請依下列步驟執行:
-
將語彙儲存為
example.pls
。 -
執行
put-lexicon
AWS CLI 命令,將詞庫 (名稱為w3c
) 存放在 us-east-2 區域中。aws polly put-lexicon \ --name w3c \ --content file://example.pls
-
執行
synthesize-speech
命令將範例文字合成到音訊串流 (speech.mp3
),然後指定選用的lexicon-name
參數aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
-
播放產生的
speech.mp3
,並留意「全球資訊網協會」已取代 W3C 這個字。
前述範例語彙使用別名。不會使用詞庫中提到的IPA字母。下列詞組會使用具有IPA字母的
<phoneme>
元素來指定語音發音。<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>pecan</grapheme> <phoneme>pɪˈkɑːn</phoneme> </lexeme> </lexicon>
請遵循相同步驟來測試此語彙。請確定您指定的輸入文字具有「pecan」一詞 (例如,「Pecan pie 很美味」)。
如需操作的其他程式碼範例 PutLexicon API,請參閱下列資源:
-
Java 範例:PutLexicon
-
Python (Boto3) 範例PutLexicon
-
- AWS CLI - multiple lexemes
-
透過 Amazon Polly ,您可以使用 PutLexicon將發音詞儲存在帳戶的特定 AWS 區域中。然後,您可以在您的 SynthesizeSpeech 請求中指定一個或多個儲存的語彙,以在服務開始合成這些文字之前套用。如需詳細資訊,請參閱管理詞庫。
在這個範例中,您在語彙中指定的詞元僅適用於合成的輸入文字。請考量下列語彙:
<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> <lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme> <lexeme> <grapheme>Consortium</grapheme> <alias>Community</alias> </lexeme> </lexicon>
該語彙指定三個詞元,其中兩個為語素 W3C 定義別名,如下所示:
-
第一個
<lexeme
> 元素定義別名 (全球資訊網協會)。 -
第二個
<lexeme>
定義替代別名 (WWW Consortium)。
Amazon Polly 會針對詞庫中任何指定圖形使用第一個取代。
第三個
<lexeme>
定義協會這個字的取代 (社群)。首先,我們來測試這個語彙。假設您要合成以下範例文字到音訊檔案 (
speech.mp3
),而您將呼叫中的語彙指定為SynthesizeSpeech
。The W3C is a Consortium
SynthesizeSpeech
先套用的語彙如下所示:-
就第一個詞元,W3C 這個字修訂為「全球資訊網協會」。修訂文字如下所示:
The World Wide Web Consortium is a Consortium
-
第三個詞元中所定義的別名僅適用於「協會」這個字 (原始文字的一部分),產生以下文字:
The World Wide Web Consortium is a Community.
您可以使用 來測試此項目 AWS CLI ,如下所示:
將語彙儲存為
example.pls
。執行
put-lexicon
命令,以名稱 w3c 將語彙儲存在 us-east-2 區域中。aws polly put-lexicon \ --name w3c \ --content file://example.pls
執行
list-lexicons
命令,驗證 w3c 語彙在傳回的語彙清單中。aws polly list-lexicons
-
執行
synthesize-speech
命令將範例文字合成到音訊檔案 (speech.mp3
),然後指定選用的lexicon-name
參數aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
播放產生的
speech.mp3
檔案,確認合成語音反映文字變更。
如需操作的其他程式碼範例 PutLexicon API,請參閱下列資源:
-
Java 範例:PutLexicon
-
Python (Boto3) 範例PutLexicon
-