Share via


SSML で音声とサウンドをカスタマイズする

音声合成マークアップ言語 (SSML) を使用し、音声出力のテキスト読み上げ音声、言語、名前、スタイル、役割を指定できます。 1 つの SSML ドキュメントで複数の音声を使用し、強調、読み上げ速度、ピッチ、音量を調整することもできます。 さらに、SSML は、サウンド エフェクトや音符など、事前に録音されたオーディオを挿入する機能を備えています。

この記事では、SSML 要素を使用して音声とサウンドを指定する方法について説明します。 SSML 構文の詳細については、「SSML ドキュメントの構造とイベント」を参照してください。

音声要素を使用する

各 SSML speak 要素内に少なくとも 1 つの voice 要素を指定する必要があります。 この要素は、テキスト読み上げに使用される音声を決定します。

1 つの SSML ドキュメントに複数の voice 要素を含めることができます。 各 voice 要素は、異なる音声を指定できます。 それぞれの文の間の無音時間を変更する場合などに、同じ音声を異なる設定で複数回使用することもできます。

次の表には、voice 要素の属性の使用をまとめてあります。

属性 説明 必須または省略可能
name テキスト読み上げの出力に使用される音声。 サポートされている内蔵音声の完全な一覧については、言語のサポートに関するページを参照してください。 必須
effect デバイス上の具体的なシナリオに合わせて合成音声出力の品質を最適化するために使用されるオーディオ効果プロセッサ。

運用環境の一部のシナリオでは、特定のデバイスでの再生の歪みにより、聴覚エクスペリエンスが低下する可能性があります。 たとえば、合成された音声は、車のスピーカーからの場合、話者の応答、空間の残響、バックグラウンド ノイズなどの環境要因により、鈍く、こもって聞こえる場合があります。 より明確に聞こえるように、乗客は音量を上げなければならない場合があります。 このようなシナリオでの手動操作を回避するために、オーディオ エフェクト プロセッサは、再生の歪みを補正することにより、音声をよりクリアにすることができます。

サポートされている値を次に示します。
  • eq_car - 車、バス、その他の密閉された自動車で、完全に忠実な音声を提供する際の聴覚エクスペリエンスを最適化します。
  • eq_telecomhp8k - 通信または電話のシナリオで狭帯域音声の聴覚エクスペリエンスを最適化します。 8 kHz のサンプリング レートを使用してください。 サンプル レートが 8 kHz でない場合、出力音声の聴覚品質は最適化されません。

値が見つからないか無効な場合、この属性は無視され、効果は適用されません。
省略可能

Voice の例

voice 要素の属性でサポートされている値の詳細については、「音声要素を使用する」を参照してください。

単一音声の例

この例では、en-US-AvaMultilingualNeural 音声を使用します。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        This is the text that is spoken.
    </voice>
</speak>

複数音声の例

speak 要素内には、テキスト読み上げ出力用の音声を複数指定できます。 これらの音声はさまざまな言語で指定できます。 音声ごとに、テキストを voice 要素にラップする必要があります。

この例では、en-US-AvaMultilingualNeuralen-US-AndrewMultilingualNeural の音声を交互に使用します。 ニューラル多言語音声では、入力テキストに基づいてさまざまな言語を話すことができます。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Good morning!
    </voice>
    <voice name="en-US-AndrewMultilingualNeural">
        Good morning to you too Ava!
    </voice>
</speak>

カスタム ニューラル音声の例

カスタム ニューラル音声を使用するには、SSML の音声名にモデル名を指定します。

この例では、my-custom-voice という名前のカスタム音声を使用します。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="my-custom-voice">
        This is the text that is spoken.
    </voice>
</speak>

音声効果の例

effect 属性を使用して、自動車や電気通信などのシナリオの聴覚エクスペリエンスを最適化します。 次の SSML の例では、effect 属性を自動車シナリオの構成と共に使用します。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural" effect="eq_car">
        This is the text that is spoken.
    </voice>
</speak>

読み上げのスタイルと役割を使用する

既定では、ニューラル音声の読み上げのスタイルはニュートラルです。 文章レベルで話し方、その強度、およびロールを調整することができます。

Note

音声のスタイルと役割に関するドキュメントで説明されているように、Azure Cognitive Service for Speech サービスでは、ニューラル音声の一部でスタイル、スタイルの強度、役割がサポートされています。 各音声でサポートされているスタイルと役割を確認するには、list voices API と Audio Content Creation Web アプリケーションを使うこともできます。

以下の表に mstts:express-as 要素の属性の使用がまとめてあります。

属性 説明 必須または省略可能
style 音声固有の読み上げのスタイル。 陽気さ、共感、落ち着きなどの感情を表現できます。 カスタマー サービス、ニュースキャスト、音声アシスタントなど、さまざまなシナリオで音声を最適化することもできます。 スタイル値が見つからないか、無効である場合は、mstts:express-as 要素全体が無視され、サービスは既定のニュートラル音声を使用します。 カスタム ニューラル音声スタイルについては、カスタム ニューラル音声スタイルの例を参照してください。 必須
styledegree 読み上げのスタイルの強度。 より強いスタイルやより柔らかいスタイルを指定して、音声の表現力を高めたり抑えたりできます。 指定できる値の範囲は 0.01 から 2 (始めと終わりを含む) です。 既定値は 1 であり、定義済みのスタイル強度を表します。 最小単位は 0.01 で、ターゲットのスタイルにわずかに傾きます。 値を 2 にすると、既定のスタイル強度が 2 倍になります。 スタイルの強度が見つからないか、使用する音声でサポートされていない場合、この属性は無視されます。 オプション
role 読み上げロールプレイ。 音声は別の年齢と性別を模倣できますが、音声名は変更されません。 たとえば、女性の音声を模倣するために、男性の音声のピッチを上げ、イントネーションを変更することはできますが、音声名は変更されません。 役割が見つからないか、使用する音声でサポートされていない場合、この属性は無視されます。 省略可能

サポートされている style 属性のそれぞれについては以下の表で説明します。

Style 説明
style="advertisement_upbeat" 製品やサービスの販売促進をする場合に、興奮気味でエネルギーにあふれた語調を表します。
style="affectionate" 高いピッチと音声エネルギーにより、温かみのある優しい語調を表します。 話者は、聞き手の注目を集める状態にあります。 多くの場合、話者のパーソナリティが実際に聞き手の心を引きつけています。
style="angry" 怒ってイライラした語調を表します。
style="assistant" デジタル アシスタント向けの暖かくてリラックスした語調を表します。
style="calm" 話すときの冷静で落ち着いた態度を表します。 他の種類の音声に比べて、語調、ピッチ、韻律がより均一になります。
style="chat" カジュアルでリラックスした語調を表します。
style="cheerful" 肯定的で幸せそうな語調を表します。
style="customerservice" カスタマー サポート向けのフレンドリーでわかりやすい語調を表します。
style="depressed" ピッチとエネルギーが低い憂鬱で沈んだ語調を表します。
style="disgruntled" 軽蔑的で不満のある語調を表します。 この感情の音声は、不満と軽蔑を表します。
style="documentary-narration" リラックスした、興味を引く、情報量の多いスタイルでドキュメンタリーをナレーションします。ドキュメンタリー、専門家の解説、および同様のコンテンツの吹き替えに適しています。
style="embarrassed" 話者が不快感を感じているときの、自信がなく気後れしている語調を表します。
style="empathetic" 思いやりと理解を表します。
style="envious" 誰か別の人が持っているものを欲しがるときの羨望の語調を表します。
style="excited" 陽気な希望に満ちた語調を表現します。 何かすばらしいことが起きていて、そのことに話者は喜んでいるように聞こえます。
style="fearful" 高いピッチ、高い音声エネルギー、速いスピードにより、おびえた神経質な語調を表します。 話者は緊張して不安な状態にあります。
style="friendly" 心地よい魅力的な温かい語調を表します。 誠実で思いやりに満ちている響きです。
style="gentle" 低いピッチと音声エネルギーにより、穏やかで礼儀正しく心地よい語調を表します。
style="hopeful" 温かく思いのこもった語調を表します。 話者に素敵なことが起こりそうに聞こえます。
style="lyrical" 音楽的でセンチメンタルな方法で感情を表します。
style="narration-professional" コンテンツの読み取り用の職業的で客観的な語調を表します。
style="narration-relaxed" コンテンツ朗読の感じの良い落ち着いたトーンを表現します。
style="newscast" ニュースを読み上げる改まった職業的な語調を表します。
style="newscast-casual" 一般的なニュースを配信するときの汎用的でカジュアルな語調を表します。
style="newscast-formal" ニュースを配信するときの改まった、自信に満ちた、威厳のある語調を表します。
style="poetry-reading" 詩を読みながら、感情的でリズミカルな語調を表現します。
style="sad" 悲しそうな語調を表します。
style="serious" 厳しく威圧するような語調を表します。 話者は、多くの場合、安定したリズムで、堅苦しい緊張感の高い話し方をします。
style="shouting" 声が遠いか、別の場所にあるとき、はっきり聞こえるように努力しているトーンを表現します。
style="sports_commentary" スポーツ イベントを放送するときの、リラックスしてうち興ずるトーンを表現します。
style="sports_commentary_excited" スポーツ イベントのクライマックスとなる瞬間を放送する場合に、強烈でエネルギッシュな語調を表します。
style="whispering" 静かで優しい音を作ろうとする柔らかい音色を表現します。
style="terrified" 早口な震えた声で非常に怯えているトーンを表現します。 話者は動揺していて取り乱しているように聞こえます。
style="unfriendly" 冷たく無関心な語調を表します。

次の表に、サポートされている各 role 属性の説明をまとめてあります。

ロール 説明
role="Girl" 音声は少女を模倣します。
role="Boy" 音声は少年を模倣します。
role="YoungAdultFemale" 音声は若い成人の女性を模倣します。
role="YoungAdultMale" 音声は若い成人の男性を模倣します。
role="OlderAdultFemale" 音声は年配の女性を模倣します。
role="OlderAdultMale" 音声は年配の男性を模倣します。
role="SeniorFemale" 音声は高齢の女性を模倣します。
role="SeniorMale" 音声は高齢の男性を模倣します。

mstts express-as の例

mstts:express-as 要素の属性でサポートされている値の詳細については、「読み上げのスタイルと役割」を参照してください。

スタイルと強度の例

mstts:express-as 要素を使用して、陽気さ、共感、落ち着きなどの感情を表現します。 カスタマー サービス、ニュースキャスト、音声アシスタントなど、さまざまなシナリオで音声を最適化することもできます。

次の SSML の例では、sad スタイルで強度が 2<mstts:express-as> 要素を使用します。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

役割の例

話し方とその強度を調整する以外に、role パラメーターを調整して、音声が異なる年齢と性別を模倣するようにすることもできます。 たとえば、女性の音声を模倣するために、男性の音声のピッチを上げ、イントネーションを変更することはできますが、音声名は変更されません。

この SSML スニペットは、role 属性を使用して zh-CN-XiaomoNeural のロールプレイを変更する方法を示しています。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

カスタム ニューラル音声スタイルの例

カスタム ニューラル音声をトレーニングし、cheerfulsadwhispering などのプリセット スタイルで話すことができます。 トレーニング データによって決定されるカスタム スタイルで読み上げるように、カスタム ニューラル音声をトレーニングすることもできます。 SSML でカスタム ニューラル音声スタイルを使用するには、Speech Studio で以前に入力したスタイル名を指定します。

この例では、my-custom-voice という名前のカスタム音声を使用します。 カスタム音声は、事前設定された cheerful スタイル、話し方の強度 2 で読み上げられ、次に my-custom-style という名前のカスタム スタイル、話し方の強度 0.01 で読み上げられます。

<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="my-custom-voice">
        <mstts:express-as style="cheerful" styledegree="2">
            That'd be just amazing!
        </mstts:express-as>
        <mstts:express-as style="my-custom-style" styledegree="0.01">
            What's next?
        </mstts:express-as>
    </voice>
</speak>

話者プロファイル ID

Personal VoicespeakerProfileId プロパティを指定するには、mstts:ttsembedding 要素を使います。 Personal Voice は、自分自身の声または顧客の声でトレーニングされたカスタム ニューラル音声です。 詳しくは、Personal Voice の作成に関する記事をご覧ください。

次の SSML の例では、音声名と話者プロファイル ID で <mstts:ttsembedding> 要素を使っています。

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
    <voice xml:lang='en-US' xml:gender='Male' name='PhoenixV2Neural'> 
    <mstts:ttsembedding speakerProfileId='your speaker profile ID here'> 
    I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun. 我很高兴听到你觉得我很了不起,我让你的旅行计划更轻松、更有趣。Je suis heureux d'apprendre que vous me trouvez incroyable et que j'ai rendu la planification de votre voyage plus facile et plus amusante.  
    </mstts:ttsembedding> 
    </voice> 
</speak> 

読み上げ言語を調整する

既定では、多言語音声は、SSML を使わずに、入力テキストの言語を自動検出し、入力テキストの既定のロケールの言語で話すことができます。 必要に応じて、<lang xml:lang> 要素を使って、これらの音声の読み上げ言語を調整し、イギリス英語に対する en-GB のように、優先されるアクセントを設定できます。 読み上げ言語は、文章レベルと単語レベルの両方で調整することができます。 多言語音声でサポートされている言語の詳細については、「lang 要素を含む多言語音声」を参照してください。<lang> 構文と属性定義の表があります。

次の表には、<lang xml:lang> 要素の属性の使用をまとめてあります。

属性 説明 必須または省略可能
xml:lang ニューラル音声で読み上げる言語。 ニューラル音声の読み上げる言語を調整するために必要です。 lang xml:lang を使用している場合は、ロケールを指定する必要があります。

注意

<lang xml:lang> 要素は、prosody 要素および break 要素と互換性がありません。 この要素では、ピッチ、音調、速度、音量など、一時停止や韻律を調整することはできません。

lang 要素を使用した多言語音声

「多言語音声」セクションを使用して、次の表の例に示すように、各ニューラル音声に対して Speech Service でサポートされている読み上げ言語を確認します。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。

音声 サポートされている言語の数 サポートされている言語 各言語の自動検出された既定のロケール
en-US-AndrewMultilingualNeural1 (男性)
en-US-AvaMultilingualNeural1 (女性)
en-US-BrianMultilingualNeural1 (男性)
en-US-EmmaMultilingualNeural1 (女性)
77 アフリカーンス語、アルバニア語、アムハラ語、アラビア語、アルメニア語、アゼルバイジャン語、インドネシア語、バングラ語、バスク語、ベンガル語、ボスニア語、ブルガリア語、ビルマ語、カタロニア語、中国語 (広東語)、中国語 (標準)、中国語 (台湾語)、クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エストニア語、フィリピン語、フィンランド語、フランス語、ガリシア語、ジョージア語、ドイツ語、ギリシャ語、ヘブライ語、ヒンディー語、ハンガリー語、アイスランド語、アイルランド語、イタリア語、日本語、ジャワ語、カンナダ語、カザフ語、クメール語、韓国語、ラオス語、ラトビア語、リトアニア語、マケドニア語、マレー語、マラヤラム語、マルタ語、モンゴル語、ネパール語、ノルウェー語 (ブークモール)、パシュトウ語、ペルシア語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、セルビア語、シンハラ語、スロバキア語、スロベニア語、ソマリア語、スペイン語、スンダ語、スワヒリ語、スウェーデン語、タミル語、テルグ語、タイ語、トルコ語、ウクライナ語、ウルドゥー語、ウズベク語、ベトナム語、ウェルシュ語、ズールー語 af-ZAam-ETar-EGaz-AZbg-BGbn-BDbn-INbs-BAca-EScs-CZcy-GBda-DKde-DEel-GRen-USes-ESet-EEeu-ESfa-IRfi-FIfil-PHfr-FRga-IEgl-EShe-ILhi-INhr-HRhu-HUhy-AMid-IDis-ISit-ITja-JPjv-IDka-GEkk-KZkm-KHkn-INko-KRlo-LAlt-LTlv-LVmk-MKml-INmn-MNms-MYmt-MTmy-MMnb-NOne-NPnl-NLpl-PLps-AFpt-BRro-ROru-RUsi-LKsk-SKsl-SIso-SOsq-ALsr-RSsu-IDsv-SEsw-KEta-INte-INth-THtr-TRuk-UAur-PKuz-UZvi-VNzh-CNzh-HKzh-TWzu-ZA

1 これらは、Azure AI 音声でのニューラル多言語音声です。 すべての多言語音声は、SSML を使用せずに、入力テキストの既定のロケールの言語で話すことができます。 ただし、<lang xml:lang> 要素を使用して各言語のアクセントを調整し、英語の英国アクセント (en-GB) など、優先するアクセントに設定することができます。 各音声の主要な場所は、その名前のプレフィックスによって示されており、音声 en-US-AndrewMultilingualNeural であれば、主要な場所は en-US です。 SSML でサポートされるロケールの完全な一覧を確認してください。

Note

多言語音声では、breakemphasissilencesub などの特定の SSML 要素は完全にはサポートされていません。

Lang の例

lang 要素の属性でサポートされている値の詳細については、「読み上げ言語を調整する」を参照してください。

言語が他の場所で調整されているかどうかにかかわらず、speak 要素内で既定の言語として en-US を指定する必要があります。 この例では、en-US-AvaMultilingualNeural の主要言語は en-US です。

この SSML スニペットは、en-US-AvaMultilingualNeural ニューラル音声で de-DE を読み上げるために <lang xml:lang> を使用する方法を示しています。

<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-AvaMultilingualNeural">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

speak 要素内には、テキスト読み上げ出力用の en-US を含む言語を複数指定できます。 調整された言語ごとに、テキストは言語と一致し、voice 要素にラップされる必要があります。 この SSML スニペットでは、<lang xml:lang> を使用して、読み上げ言語を es-MXen-US、および fr-FR に変更する方法を示します。

<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-AvaMultilingualNeural">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted!
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

韻律を調整する

prosody 要素を使用し、テキスト読み上げのピッチ、音調曲線、範囲、レート、ボリュームの変更を指定できます。 prosody 要素には、テキストと、要素 audiobreakpphonemeprosodysay-assub、および s を含めることができます。

韻律属性値は広範囲にわたって変化する可能性があるため、音声認識エンジンは、割り当てられた値を、選択された音声の実際の韻律値を連想するものとして解釈します。 テキスト読み上げでは、サポートされていない値を制限するか、置き換えます。 サポートされていない値の例として、1 MHz のピッチまたは 120 の音量があります。

次の表には、prosody 要素の属性の使用をまとめてあります。

属性 説明 必須または省略可能
contour 音調とは音の高さの変化です。 この変化は、音声出力において指定の時間位置にあるターゲットの配列として表わされます。 パラメーター ペアのセットにより各ターゲットが定義されます。 例:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

パラメーターの各セットの最初の値は、ピッチの変更位置をテキストの継続時間の割合として指定します。 2 番目の値は、ピッチの相対値または列挙値を使用して、ピッチを増減する量を指定します (pitch を参照)。
省略可能
pitch テキストのベースラインのピッチを示します。 ピッチの変更は、文章レベルで適用できます。 ピッチの変更は、元の音声の 0.5 から 1.5 倍以内にする必要があります。 ピッチは次のように表すことができます。
  • 絶対値: 数字の後に "Hz" (ヘルツ) が付いて表されます。 たとえば、「 <prosody pitch="600Hz">some text</prosody> 」のように入力します。
  • 相対値:
    • 相対数として: 前に "+" または "-" が付き、後にピッチの変更量を指定する "Hz" または "st" が付いた数字として表されます。 たとえば、<prosody pitch="+80Hz">some text</prosody><prosody pitch="-2st">some text</prosody> などです。 "st" は、変更単位が半音 (標準の全音階での全音の半分) であることを示します。
    • パーセンテージとして: 前に "+" (オプション) または "-" が付き、その後に "%" が続き、相対的な変化が示される数字として表されます。 たとえば、<prosody pitch="50%">some text</prosody><prosody pitch="-50%">some text</prosody> などです。
  • 定数値:
    • x-low
    • low
    • high
    • x-high
    • default
省略可能
range テキストのピッチの範囲を表す値。 range は、pitch の記述に使用されるものと同じ絶対値、相対値、または列挙値を使用して表すことができます。 省略可能
rate テキストの読み上げ速度を示します。 読み上げ速度は、単語または文レベルで適用できます。 レートの変更は、元の音声の 0.5 から 2 倍以内にしてください。 rate は次のように表すことができます。
  • 相対値:
    • 相対数として: 既定値の乗数として機能する数字で表されます。 たとえば、値 1 を指定すると、元の速度は変更されません。 値 0.5 を指定すると、元の速度の半分になります。 値 2 を指定すると、元の速度の 2 倍になります。
    • パーセンテージとして: 前に "+" (オプション) または "-" が付き、その後に "%" が続き、相対的な変化が示される数字として表されます。 たとえば、<prosody rate="50%">some text</prosody><prosody rate="-50%">some text</prosody> などです。
  • 定数値:
    • x-slow
    • slow
    • fast
    • x-fast
    • default
省略可能
volume 読み上げている音声の音量レベルを示します。 音量の変更は、文章レベルで適用できます。 音量は次のように表すことができます。
  • 絶対値: 0.0 から 100.0 ("最も静か" から "最も騒がしい" まで) の範囲の数字として表されます。たとえば、75。 既定値は 100.0 です。
  • 相対値:
    • 相対数として: 音量の変更量を指定する、前に "+" または "-" が付いた数字として表されます。 たとえば、+10-5.5 などです。
    • パーセンテージとして: 前に "+" (オプション) または "-" が付き、その後に "%" が続き、相対的な変化が示される数字として表されます。 たとえば、<prosody volume="50%">some text</prosody><prosody volume="+3%">some text</prosody> などです。
  • 定数値:
    • silent
    • x-soft
    • soft
    • loud
    • x-loud
    • default
省略可能

Prosody の例

prosody 要素の属性でサポートされている値の詳細については、「韻律を調整する」を参照してください。

読み上げ速度の変更の例

この SSML スニペットは、rate 属性を使用して、読み上げ速度を既定の速度より 30% 大きく変更する方法を示しています。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody rate="+30.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

音量の変更の例

この SSML スニペットは、volume 属性を使用して、音量を既定の音量より 20% 大きく変更する方法を示しています。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody volume="+20.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

ピッチの変更の例

この SSML スニペットは、pitch 属性を使用して、音声が高いピッチで読み上げられるようにする方法を示しています。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Welcome to <prosody pitch="high">Enjoy using text to speech.</prosody>
    </voice>
</speak>

ピッチ曲線の変更の例

この SSML スニペットは、contour 属性を使用して、曲線を変更する方法を示しています。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

強調を調整する

省略可能な emphasis 要素を使用し、テキストの単語レベルの強調を追加または削除できます。 この要素には、テキストと要素 audiobreakemphasislangphonemeprosodysay-assubvoice のみを含めることができます。

Note

単語レベルの強調の調整は、次のニューラル音声 (en-US-GuyNeuralen-US-DavisNeuralen-US-JaneNeural) でのみ使用できます。

低いピッチと短い継続時間を持つ単語の場合、ピッチが気付くほど上がっていない可能性があります。

以下の表に emphasis 要素の属性がまとめてあります。

属性 説明 必須または省略可能
level 適用する強調の強さを示します。
  • reduced
  • none
  • moderate
  • strong
.
level 属性が指定されていない場合、既定のレベルは moderate です。 各属性の詳細については、強調要素に関するページを参照してください。
省略可能

Emphasis の例

emphasis 要素の属性でサポートされている値の詳細については、「強調を調整する」を参照してください。

この SSML スニペットは、emphasis 要素を使用し、"meetings" という単語に中程度の強調を追加する方法を示しています。

<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-AndrewMultilingualNeural">
    I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
    </voice>
</speak>

録音されたオーディオを追加する

audio 要素は省略可能です。 これを使用して、事前に録音されたオーディオを SSML ドキュメントに挿入できます。 audio 要素の本文には、オーディオ ファイルが使用できない場合や再生できない場合に読み上げられるプレーン テキストまたは SSML マークアップを含めることができます。 また、audio 要素には、テキストと、要素 audiobreakpsphonemeprosodysay-as、および sub を含めることもできます。

SSML ドキュメントに含まれるオーディオは、次の要件を満たしている必要があります。

  • オーディオ ファイルは有効な *.mp3、*.wav、*.opus、*ogg、*.flac、または *.wma ファイルにする必要があります。
  • 1 つの応答に含まれるすべてのテキスト ファイルとオーディオ ファイルの合計時間は、600 秒以下でなければなりません。
  • オーディオには、顧客固有の情報やその他の機密情報を含めることはできません。

Note

audio 要素は、Long Audio API ではサポートされていません。 長い形式のテキスト読み上げの場合は、代わりに batch synthesis API (プレビュー) を使用してください。

次の表には、audio 要素の属性の使用をまとめてあります。

属性 説明 必須または省略可能
src オーディオ ファイルの URI の場所。 オーディオは、インターネットでアクセス可能な HTTPS エンドポイントでホストされている必要があります。 HTTPS が必須です。 ファイルをホストしているドメインで、信頼できる有効な TLS/SSL 証明書を提示する必要があります。 待機時間を最小限に抑えるために、オーディオ ファイルをテキスト読み上げエンドポイントと同じ Azure リージョンの Blob Storage に格納してください。 必須

Audio の例

audio 要素の属性でサポートされている値の詳細については、「録音されたオーディオを追加する」を参照してください。

この SSML スニペットは、src 属性を使用し、2 つの .wav ファイルからオーディオを挿入する方法を示しています。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

オーディオ継続時間の調整

mstts:audioduration 要素を使用して、出力オーディオの継続時間を設定します。 この要素を使用すると、オーディオ出力の完了タイミングを同期するのに役立ちます。 オーディオ継続時間は、元のオーディオのレートの 0.5 から 2 倍の間で増減させることができます。 元のオーディオは、他のレート設定のないオーディオです。 設定値に基づいて、読み上げ速度が遅くなったり、速くなったりします。

オーディオ継続時間の設定は、それを囲んでいる voice 要素内のすべての入力テキストに適用されます。 オーディオ継続時間の設定をもう一度リセットまたは変更するには、同じ音声または別の音声を含む新しい voice 要素を使用する必要があります。

次の表には、mstts:audioduration 要素の属性の使用をまとめてあります。

属性 説明 必須または省略可能
value 秒 (2s など) またはミリ秒 (2000ms など) での要求された出力オーディオの継続時間。

この値は、他のレート設定を行わずに、元のオーディオの 0.5 から 2 倍以内にする必要があります。 たとえば、要求されたオーディオ継続時間が 30s の場合、元のオーディオは 15 から 60 秒の間である必要があります。 これらの境界の外側に値を設定した場合、継続時間はそれぞれの最小値または最大値の倍数に従って設定されます。

要求された出力オーディオの継続時間を指定すると、音声サービスによってそれに応じて読み上げ速度が調整されます。 音声リスト API を使用し、WordsPerMinute 属性を確認して、使用しているニューラル音声の読み上げ速度を確認します。 入力テキスト内の単語数を WordsPerMinute 属性の値で除算して、元の出力オーディオのおおよその継続時間を取得できます。 見積もり時間に最も近いオーディオ継続時間を設定すると、出力オーディオは最も自然な音になります。
必須

mstts オーディオ継続時間の例

mstts:audioduration 要素の属性でサポートされている値の詳細については、「オーディオ継続時間を調整する」を参照してください。

この例では、元のオーディオは約 15 秒です。 mstts:audioduration 要素は、オーディオの継続時間を 20 秒 (20s) に設定するために使用されます。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:audioduration value="20s"/>
If we're home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.
</voice>
</speak>

バックグラウンド オーディオを追加する

mstts:backgroundaudio 要素を使用して、バックグラウンド オーディオを SSML ドキュメントに追加したり、オーディオ ファイルをテキスト読み上げと組み合わせたりすることができます。 mstts:backgroundaudio を使用すると、バックグラウンドでオーディオ ファイルをループ処理し、テキスト読み上げの開始時にフェードインし、テキスト読み上げの終了時にフェードアウトできます。

指定されたバックグラウンド オーディオがテキスト読み上げまたはフェードアウトより短い場合は、ループします。 テキスト読み上げより長い場合は、フェードアウトが終了すると停止します。

1 つの SSML ドキュメントにつき 1 つのバックグラウンド オーディオ ファイルのみが許可されます。 voice 要素内に audio タグを配置することで、SSML ドキュメントにオーディオを追加できます。

Note

mstts:backgroundaudio 要素は、すべての voice 要素の前に配置する必要があります。 指定する場合は、speak 要素の最初の子である必要があります。

mstts:backgroundaudio 要素は、Long Audio API ではサポートされていません。 長い形式のテキスト読み上げの場合は、代わりに batch synthesis API (プレビュー) を使用してください。

次の表には、mstts:backgroundaudio 要素の属性の使用をまとめてあります。

属性 説明 必須または省略可能
src バックグラウンド オーディオ ファイルの URI の場所。 必須
volume バックグラウンド オーディオ ファイルの音量。 指定可能な値: 0 から 100 まで (始めと終わりを含める)。 既定値は 1 です。 省略可能
fadein バックグラウンド オーディオのフェードインの時間 (ミリ秒単位)。 既定値は 0 で、"フェードインなし" に相当します。 指定可能な値: 0 から 10000 まで (始めと終わりを含める)。 省略可能
fadeout バックグラウンド オーディオのフェードアウトの時間 (ミリ秒単位)。 既定値は 0 であり、フェードアウトなしに相当します。指定可能な値: 0 から 10000 まで (始めと終わりを含める)。 省略可能

mstss backgroundaudio の例

mstts:backgroundaudi 要素の属性でサポートされている値の詳細については、「バックグラウンド オーディオを追加する」を参照してください。

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="en-US-AvaMultilingualNeural">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

次のステップ