レキシコンのアップロード
使用するレキシコンは、Pronunciation Lexicon Specification (PLS) の W3C 推奨事項に準拠している必要があります。詳細については、W3C ウェブサイトの「Pronunciation Lexicon Specification (PLS) バージョン 1.0
- Console - Lexicons tab
-
発音レキシコンを使用するには、最初にアップロードする必要があります。コンソールにはレキシコンをアップロードできる場所が 2 つあります。[Text-to-Speech] タブ、および [Lexicons] タブです。
以下のプロセスでは、選択した言語で一般的でない語句がどのように発音されるかをカスタマイズするのに使用できるレキシコンを追加する方法を説明します。
レキシコンを [Lexicons] タブから追加するには
AWS マネジメントコンソール にサインインして、Amazon Polly コンソール (https://console.aws.amazon.com/polly/
) を開きます。 -
[Lexicons] タブを選択します。
-
[Upload lexicon] (レキシコンのアップロード) を選択します。
-
レキシコンの名前を入力し、[Choose a lexicon file] (レキシコンファイルの選択) を使用して、アップロードするレキシコンを見つけます。アップロードできるのは、.pls または.xml 拡張子を持つ PLS ファイルのみです。
-
[Upload lexicon] (レキシコンのアップロード) を選択します。同じ名前でレキシコンが (.pls または .xml ファイルにかかわりなく) 既に存在する場合、レキシコンをアップロードすると既存のレキシコンは上書きされます。
- Console - TTS tab
-
レキシコンを [テキスト読み上げ機能] タブから追加するには
AWS マネジメントコンソール にサインインして、Amazon Polly コンソール (https://console.aws.amazon.com/polly/
) を開きます。 -
[Text-to-Speech (テキスト読み上げ機能)] タブを選択します。
-
[Additional settings] (詳細設定) を展開し、[Customize pronunciation] (発音のカスタマイズ) を有効にしてから、[Upload lexicon] (レキシコンのアップロード) を選択します。
-
レキシコンの名前を入力し、[Choose a lexicon file] (レキシコンファイルの選択) を使用して、アップロードするレキシコンを見つけます。.pls および .xml 拡張子を持つ PLS ファイルのみ使用できます。
-
[Upload lexicon] (レキシコンのアップロード) を選択します。同じ名前のレキシコンが (.pls または .xml ファイルにかかわりなく) 既に存在する場合、レキシコンをアップロードすると既存のレキシコンは上書きされます。
- AWS CLI - one lexeme
-
Amazon Polly では、PutLexicon を使用してアカウントの特定の AWS リージョンに発音レキシコンを保存できます。次に、サービスがテキストを合成し始める前に適用する SynthesizeSpeech リクエストに保存した 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>次の点に注意してください。
-
<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という名前でレキシコンを保存します。 -
us-east-2 リージョンに (
put-lexiconの名前で) レキシコンを保存するため AWS CLIw3cコマンドを実行します。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」など) を必ず指定します。
PutLexicon API オペレーションの追加コードサンプルについては、以下のリソースを参照してください。
-
Java サンプル: PutLexicon
-
Python (Boto3) サンプル: PutLexicon
-
- AWS CLI - multiple lexemes
-
Amazon Polly では、PutLexicon を使用してアカウントの特定の AWS リージョンに発音レキシコンを保存できます。次に、サービスがテキストを合成し始める前に適用する SynthesizeSpeech リクエストに保存した 1 つ以上のレキシコンを指定できます。詳細については、「レキシコンの管理」を参照してください。
この例では、レキシコンで指定する語彙素は合成の入力テキストのみに適用されます。次のレキシコンについて考えます。
<?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 ConsortiumSynthesizeSpeechは、まずレキシコンを次のように適用します。-
最初の語彙素では、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.plsw3c レキシコンは返されたレキシコンのリストにあることを確認するために、
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ファイルを再生して、合成された音声がテキストの変更を反映していることを確認します。
PutLexicon API オペレーションの追加コードサンプルについては、以下のリソースを参照してください。
-
Java サンプル: PutLexicon
-
Python (Boto3) サンプル: PutLexicon
-