Amazon Polly
開発者ガイド

SSML の使用 (AWS CLI)

AWS CLI を使用して SSML 入力テキストを合成できます。次の例では、AWS CLI を使用して一般的なタスクを実行する方法を示します。

Synthesize-Speech コマンドでの SSML の使用

この例では、SSML 文字列を指定して、synthesize-speech コマンドを使用する方法を示しています。synthesize-speech コマンドを使用する場合、通常、以下を指定します。

  • 入力テキスト (必須)

  • 開始と終了のタグ (必須)

  • 出力形式

  • 音声

この例では、引用符と必須の開始と終了の <speak></speak> タグで簡単なテキスト文字列を指定します。

重要

Amazon Polly コンソールでは入力テキストの前後に引用符は必要ありませんが、AWS CLI では使用する必要があります。また、入力テキストを囲む引用符と個々のタグで必要な引用符を区別することも重要です。

たとえば、標準引用符 (") で入力テキストを囲み、一重引用符 (') を内部タグに使用できます。逆に使用することもできます。どちらのオプションを選んでも、Unix、Linux、および macOS 用に使用できます。ただし、Windows では、入力テキストは標準引用符で囲み、タグには一重引用符を使用する必要があります。

すべてのオペレーティングシステムで、標準引用符 (") で入力テキストを囲み、一重引用符 (') を内部タグに使用できます。逆に使用することもできます。)以下に例を示します。

--text "<speak>Hello <break time='300ms'/> World</speak>"

Unix、Linux、および macOS では、逆に一重引用符 (') で入力テキストを囲み、標準引用符 (") を内部タグに使用することもできます。

--text '<speak>Hello <break time="300ms"/> World</speak>'

次の AWS CLI の例は、Unix、Linux、および macOS 用にフォーマットされています。Windows の場合、各行の末尾にあるバックスラッシュ (\) Unix 連結文字をキャレット (^) に置き換え、入力テキストの前後には二重引用符 (") を使用し、内部タグには一重引用符 (') を使用します。

aws polly synthesize-speech \ --text-type ssml \ --text '<speak>Hello world</speak>' \ --output-format mp3 \ --voice-id Joanna \ speech.mp3

合成された音声を聞くには、音声プレイヤーを使用して、生成された speech.mp3 ファイルを再生します。

SSML 拡張ドキュメントの合成

入力テキストが長い場合は、ファイルに SSML の内容を保存し、synthesize-speech コマンドでそのファイル名を指定する方が簡単です。たとえば、以下の内容を example.xml というファイルに保存します。

<?xml version="1.0"?> <speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis11/synthesis.xsd" xml:lang="en-US">Hello World</speak>

xml:lang 属性は、入力テキストの言語として en-US (米国英語) を指定します。入力テキストの言語と選択されたボイスの言語が SynthesizeSpeech オペレーションに与える影響については、「外国語の発音の向上」を参照してください。

SSML 拡張ファイルを実行するには

  1. SSML をファイル (example.xml など) に保存します。

  2. XML ファイルが保存されているパスから次の synthesize-speech コマンドを実行します。入力テキストの file:\\example.xml を置き換えて SSML ファイルを入力として指定します。このコマンドは、実際に入力テキストを追加するのではなく、ファイルの場所を指定しているため、引用符は不要です。

    注記

    次の AWS CLI の例は、Unix、Linux、および macOS 用にフォーマットされています。Windows の場合は、各行末のバックスラッシュ (\) Unix 連結文字をキャレット (^) に置き換えてください。

    aws polly synthesize-speech \ --text-type ssml \ --text file://example.xml \ --output-format mp3 \ --voice-id Joanna \ speech.mp3
  3. 合成された音声を聞くには、音声プレイヤーを使用して、生成された speech.mp3 ファイルを再生します。

一般的な Amazon Polly タスクで SSML を使用する

次の例では、SSML タグを使用して一般的な Amazon Polly タスクを完了する方法を説明します。その他の SSML タグについては、「Amazon Polly でサポートされている SSML タグ」を参照してください。

次の例をテストするには、適切な SSML 拡張テキストを指定して次の synthesize-speech コマンドを使用します。

次の AWS CLI の例は、Unix、Linux、および macOS 用にフォーマットされています。Windows の場合、各行の末尾にあるバックスラッシュ (\) Unix 連結文字をキャレット (^) に置き換え、入力テキストの前後には二重引用符 (") を使用し、内部タグには一重引用符 (') を使用します。

aws polly synthesize-speech \ --text-type ssml \ --text '<speak>Hello <break time="300ms"/> World</speak>' \ --output-format mp3 \ --voice-id Joanna \ speech.mp3

一時停止の追加

単語間に一時停止を追加するには、<break> 要素を使用します。次の SSML synthesize-speech コマンドは、<break> 要素を使用して、「Hello」と「World」の間に 300 ミリ秒のディレイを追加します。

<speak> Hello <break time="300ms"/> World. </speak>

音量、ピッチ、速度の制御

ピッチ、話す速度、話す音量を制御するには、<prosody> 要素を使用します。

  • 次の synthesize-speech は <prosody> 要素を使用して音量を制御します。

    <speak> <prosody volume="+20dB">Hello world</prosody> </speak>
  • 次の synthesize-speech コマンドは <prosody>要素を使用してピッチを制御します。

    <speak> <prosody pitch="x-high">Hello world.</prosody> </speak>
  • 次の synthesize-speech コマンドは <prosody> 要素を使用して話す速度を指定します。

    <speak> <prosody rate="x-fast">Hello world.</prosody> </speak>
  • 次の例に示すように、<prosody> 要素に複数の属性を指定できます。

    <speak> <prosody volume="x-loud" pitch="x-high" rate="x-fast">Hello world.</prosody> </speak>

ウィスパー

単語をささやくには、<amazon:effect name="whispered"> 要素を使用します。次の例では、 <amazon:effect name="whispered"> 要素を使用して「little lamb」をウィスパー音声にするように Amazon Polly に指示します。

<speak> Mary has a <amazon:effect name="whispered">little lamb.</amazon:effect> </speak>

この効果を高めるには、<prosody> 要素を使用して、ウィスパー音声をわずかに遅くします。

単語を強調する

単語または語句を強調するには、<emphasis> 要素を使用します。

<speak> <emphasis level="strong">Hello</emphasis> world how are you? </speak>

特定の単語の発声方法を指定する

読み上げられるテキストの種類に関する情報を提供するには、<say-as> 要素を使用します。

たとえば、次の SSML <say-as> は、テキスト 4/6 を日付として解釈する必要があることを示します。属性 interpret-as="date" format="dm" は、月/日の形式の日付として発声する必要があることを示します。

また、<say-as> 要素は、Amazon Polly に数字を分数、電話番号、測定単位などとして発声するよう指示するために使用することもできます。

<speak> Today is <say-as interpret-as="date" format="md" >4/6</say-as> </speak>

生成される音声は「Today is June 4th」となります。 <say-as> タグは、interpret-as 属性で追加コンテキストを指定することで、そのテキストをどのように解釈するかを説明します。

合成された音声を確認するには、生成された speech.mp3 ファイルを再生します。

この要素の詳細については、「特殊なタイプの単語の発声方法を制御する 」を参照してください。

外国語の発音の向上

Amazon Polly では、入力テキストは選択されたボイスと同じ言語であることを前提としています。入力テキスト内の外国語の発音を向上させるには、synthesize-speech 呼び出しで、xml:lang 属性を使用して対象言語を指定します。これにより、Amazon Polly はタグ付けされた外国語に対し異なる発音ルールを適用します。

次の例では、入力テキストの言語のさまざまな組み合わせを使用して、外国語の音声と発を指定する方法を説明します。使用可能な言語の完全なリストについては、「Amazon Polly でサポートされている言語」を参照してください。

次の例では、音声 (Joanna) は米国英語の音声です。デフォルトでは、Amazon Polly では、入力テキストは選択されたボイスと同じ言語 (この場合は米国英語) であることを前提としています。xml:lang タグを使用すると、Amazon Polly はテキストをスペイン語として解釈し、テキストは外国語の発音ルールに基づいて選択した音声がスペイン語を発音する場合のように発音されます。このタグがない場合、テキストは選択された音声の発音ルールを使用して発声されます。

<speak> That restaurant is terrific. <lang xml:lang="es-ES">Mucho gusto.</lang> </speak>

入力テキストの言語は英語のため、Amazon Polly は生成されたスペイン語音素をもっとも近い英語音素にマッピングします。その結果、Joanna は、スペイン語を正しく発音しているが米国英語のアクセントがある米国英語のネイティブスピーカーとして発声します。

注記

より似通っている言語同士の組み合わせであれば、他の組み合わせよりうまく機能します。