翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PutLexicon オペレーションの使用
Amazon Polly では、 PutLexiconを使用して、アカウントの特定の AWS リージョンに発音レキシコンを保存できます。次に、サービスがテキストを合成し始める前に適用する SynthesizeSpeech リクエストに保存した 1 つ以上のレキシコンを指定できます。詳細については、「レキシコンの管理」を参照してください。
このセクションでは、レキシコンの例と、レキシコンの保存とテスト step-by-step の手順について説明します。
注記
これらのレキシコンは、Pronunciation Lexicon Specification (PLS) の W3C 推奨事項に準拠する必要があります。詳細については、W3C ウェブサイトの「Pronunciation Lexicon Specification (PLS) バージョン 1.0
例 1: 1 つの lexeme を持つレキシコン
次の 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>
要素で指定された 2 つの属性:-
xml:lang
属性は、レキシコンが適用される言語コードen-US
を指定します。Amazon Polly は、SynthesizeSpeech
コールで指定された音声が同じ言語コード (en-US) であれば、この例のレキシコンを使用できます。注記
音声に関連付けられている言語コードを探すため、
DescribeVoices
オペレーションを使用できます。 -
alphabet
属性はIPA
を指定します。つまり、国際音声記号 (IPA) のアルファベットが発音に使用されます。IPA は、発音を表記するためのアルファベットの 1 つです。Amazon Polly は、Extended Speech Assessment Methods 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 という単語が World Wide Web Consortium に置き換わっていることを確認します。
前の例のレキシコンでは、エイリアスを使用します。レキシコンで説明されている IPA のアルファベットは使用されません。以下のレキシコンでは、IPA のアルファベットで <phoneme>
要素を使用して音声発音を指定します。
<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>pecan</grapheme> <phoneme>pɪˈkɑːn</phoneme> </lexeme> </lexicon>
このレキシコンをテストするため、同じ手順に従います。「pecan」 という単語がある入力テキストを必ず指定します (例「Pecan pie is delicious」)。
例 2: 複数の lexemes を持つレキシコン
この例では、レキシコンで指定する語彙素は合成の入力テキストのみに適用されます。次のレキシコンについて考えます。
<?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>
レキシコンが 3 つの語彙素を指定し、そのうち 2 つは書記素 W3C のエイリアスを次のとおり定義します。
-
最初の
<lexeme
> 要素はエイリアス (World Wide Web Consortium) を定義します。 -
2 つめの
<lexeme>
は、代替エイリアス (WWW Consortium) を定義します。
Amazon Polly は、レキシコンにあるどの書記素にも最初の置き換えを使用します。
3 つめの <lexeme>
は、Consortium という単語に対する置き換え (Community) を定義します。
まず、このレキシコンをテストします。次のサンプルテキストを音声ファイル (speech.mp3
) に合成する場合、SynthesizeSpeech
への呼び出しでレキシコンを指定します。
The W3C is a Consortium
SynthesizeSpeech
は、まずレキシコンを次のように適用します。
-
最初の語彙素では、W3C という単語は World Wide Web Consortium に変更されます。変更したテキストは次のように表示されます。
The World Wide Web Consortium is a Consortium
-
3 番目の語彙素で定義したエイリアスは、元のテキストの一部にある Consortium という単語にのみ適用され、以下のテキストの結果となります。
The World Wide Web Consortium is a Community.
これは、 AWS CLI 次のように を使用してテストできます。
example.pls
という名前でレキシコンを保存します。us-east-2 リージョンに w3c の名前でレキシコンを保存するため
put-lexicon
コマンドを実行します。aws polly put-lexicon \ --name w3c \ --content file://example.pls
w3c レキシコンは返されたレキシコンのリストにあることを確認するために、
list-lexicons
コマンドを実行します。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
ファイルを再生して、合成された音声がテキストの変更を反映していることを確認します。
例 3: 複数のレキシコンを指定する
SynthesizeSpeech
への呼び出しでは、複数のレキシコンを指定できます。この場合、最初に指定したレキシコン (左から右の順序) により、他のすべてのレキシコンがオーバーライドされます。
次の 2 つのレキシコンを考えます。各レキシコンは、同じ書記素 W3C の異なるエイリアスを示していることに注意してください。
-
レキシコン 1:
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>
-
レキシコン 2:
w3cAlternate.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>WWW Consortium</alias> </lexeme> </lexicon>
これらのレキシコンを w3c
および w3cAlternate
としてそれぞれ保存するとします。w3c
呼び出しでレキシコンの順序を指定 (w3cAlternate
の次に SynthesizeSpeech
) すると、最初のレキシコンで指定した W3C のエイリアスは 2 番目より優先されます。レキシコンをテストするには、以下を実行します。
レキシコンを
w3c.pls
およびw3cAlternate.pls
という名前でローカルにファイルとして保存します。put-lexicon
AWS CLI コマンドを使用して、これらのレキシコンをアップロードします。-
w3c.pls
レキシコンをアップロードし、w3c
として保存します。aws polly put-lexicon \ --name w3c \ --content file://w3c.pls
-
w3cAlternate.pls
レキシコンをサービスにw3cAlternate
としてアップロードします。aws polly put-lexicon \ --name w3cAlternate \ --content file://w3cAlternate.pls
-
synthesize-speech
コマンドを実行してサンプルテキストを音声ストリーム (speech.mp3
) に合成し、lexicon-name
パラメーターを使用して両方のレキシコンを指定します。aws polly synthesize-speech \ --text 'PLS is a W3C recommendation' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names '["w3c","w3cAlternative"]' \ speech.mp3
-
speech.mp3
の結果のテスト 以下のようになるはずです。PLS is a World Wide Web Consortium recommendation
PutLexicon API の追加コードサンプル
-
Java サンプル: PutLexicon
-
Python (Boto3) サンプル: PutLexicon