音声合成マークアップ言語を使用する

完了

Azure Speech SDK を使用すると、音声に合成するプレーン テキストを送信できますが、このサービスでは、生成する音声の特性を記述するための XML ベースの構文もサポートされています。 この 音声合成マークアップ言語 (SSML) 構文では、音声出力のサウンドをより詳細に制御できるため、次のことが可能になります。

  • ニューラル音声を使用する場合は、"興奮" や "明るい" などの話し方を指定します。
  • 一時停止または無音を挿入します。
  • たとえば、"SQL" というテキストを "続編" と発音するには、 音素 (発音) を指定します。
  • 音声の プロソディ を調整します (ピッチ、音色、読み上げ速度に影響を与えます)。
  • たとえば、特定の文字列を日付、時刻、電話番号、またはその他の形式で表すように指定するには、一般的な "say-as" ルールを使用します。
  • 録音された音声やオーディオを挿入します。たとえば、標準の録音メッセージを含めたり、バックグラウンド ノイズをシミュレートしたりします。

たとえば、次の SSML を考えてみましょう。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" 
                     xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US"> 
    <voice name="en-US-AriaNeural"> 
        <mstts:express-as style="cheerful"> 
          I say tomato 
        </mstts:express-as> 
    </voice> 
    <voice name="en-US-GuyNeural"> 
        I say <phoneme alphabet="sapi" ph="t ao m ae t ow"> tomato </phoneme>. 
        <break strength="weak"/>Lets call the whole thing off! 
    </voice> 
</speak>

この SSML では、次のように、2 つの異なるニューラル音声間の音声ダイアログを指定します。

  • アリアナ (明るく): "私はトマトだと言うのよ。
  • Guy:"I say tomato (pronounced tom-ah-toe) ...Let's call the whole thing off!"

SSML の説明を Speech サービスに送信するには、次のように SpeechSynthesizer オブジェクトの適切なメソッドを使用できます。

speech_synthesizer.speak_ssml('<speak>...');

SSML の詳細については、 Azure Speech SDK のドキュメントを参照してください