SSML で音声とサウンドをカスタマイズする
音声合成マークアップ言語 (SSML) を使用し、音声出力のテキスト読み上げ音声、言語、名前、スタイル、役割を指定できます。 1 つの SSML ドキュメントで複数の音声を使用し、強調、読み上げ速度、ピッチ、音量を調整することもできます。 さらに、SSML は、サウンド エフェクトや音符など、事前に録音されたオーディオを挿入する機能を備えています。
この記事では、SSML 要素を使用して音声とサウンドを指定する方法について説明します。 SSML 構文の詳細については、「SSML ドキュメントの構造とイベント」を参照してください。
音声要素を使用する
各 SSML speak 要素内に少なくとも 1 つの voice
要素を指定する必要があります。 この要素は、テキスト読み上げに使用される音声を決定します。
1 つの SSML ドキュメントに複数の voice
要素を含めることができます。 各 voice
要素は、異なる音声を指定できます。 それぞれの文の間の無音時間を変更する場合などに、同じ音声を異なる設定で複数回使用することもできます。
次の表には、voice
要素の属性の使用をまとめてあります。
属性 | 説明 | 必須または省略可能 |
---|---|---|
name |
テキスト読み上げの出力に使用される音声。 サポートされている内蔵音声の完全な一覧については、言語のサポートに関するページを参照してください。 | 必須 |
effect |
デバイス上の具体的なシナリオに合わせて合成音声出力の品質を最適化するために使用されるオーディオ効果プロセッサ。 運用環境の一部のシナリオでは、特定のデバイスでの再生の歪みにより、聴覚エクスペリエンスが低下する可能性があります。 たとえば、合成された音声は、車のスピーカーからの場合、話者の応答、空間の残響、バックグラウンド ノイズなどの環境要因により、鈍く、こもって聞こえる場合があります。 より明確に聞こえるように、乗客は音量を上げなければならない場合があります。 このようなシナリオでの手動操作を回避するために、オーディオ エフェクト プロセッサは、再生の歪みを補正することにより、音声をよりクリアにすることができます。 サポートされている値を次に示します。
値が見つからないか無効な場合、この属性は無視され、効果は適用されません。 |
省略可能 |
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-AvaMultilingualNeural
と en-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>
カスタム ニューラル音声スタイルの例
カスタム ニューラル音声をトレーニングし、cheerful
、sad
、whispering
などのプリセット スタイルで話すことができます。 トレーニング データによって決定されるカスタム スタイルで読み上げるように、カスタム ニューラル音声をトレーニングすることもできます。 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 Voice の speakerProfileId
プロパティを指定するには、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 xml:lang>
要素はサポートされていません。
lang 要素を使用した多言語音声
「多言語音声」セクションを使用して、次の表の例に示すように、各ニューラル音声に対して Speech Service でサポートされている読み上げ言語を確認します。 音声の言語と入力テキストの言語が異なる場合、Azure Cognitive Service for Speech サービスは合成された音声を出力しせん。
音声 | 自動検出された言語番号 | 自動検出された言語 (ロケール) | すべてのロケール番号 | SSML からサポートされているすべての言語 (ロケール) |
---|---|---|---|---|
en-US-AndrewMultilingualNeural 1 (男性)en-US-AvaMultilingualNeural 1 (女性)en-US-BrianMultilingualNeural 1 (男性)en-US-EmmaMultilingualNeural 1 (女性) |
77 | アフリカーンス語 (af-ZA )、アルバニア語 (sq-AL )、アムハラ語 (am-ET )、アラビア語 (ar-EG )、アルメニア語 (hy-AM )、アゼルバイジャン語 (az-AZ )、インドネシア語 (id-ID )、バングラ語 (bn-BD )、バスク語 (eu-ES )、ベンガル語 (bn-IN )、ボスニア語 (bs-BA )、ブルガリア語 (bg-BG )、ビルマ語 (my-MM )、カタロニア語 (ca-ES )、中国語 (広東語) (zh-HK )、中国語 (標準中国語) (zh-CN )、中国語 (台湾語) (zh-TW )、クロアチア語 (hr-HR )、チェコ語 (cs-CZ )、デンマーク語 (da-DK )、オランダ語 (nl-NL )、英語 (en-US )、エストニア語 (et-EE )、フィリピン語 (fil-PH )、フィンランド語 (fi-FI )、フランス語 (fr-FR )、ガリシア語 (gl-ES )、ジョージア語 (ka-GE )、ドイツ語 (de-DE )、ギリシャ語 (el-GR )、ヘブライ語 (he-IL )、ヒンディー語 (hi-IN )、ハンガリー語 (hu-HU )、アイスランド語 (is-IS )、アイルランド語 (ga-IE )、イタリア語 (it-IT )、日本語 (ja-JP )、ジャワ語 (jv-ID )、カンナダ語 (kn-IN )、カザフ語 (kk-KZ )、クメール語 (km-KH )、韓国語 (ko-KR )、ラオス語 (lo-LA )、ラトビア語 (lv-LV )、リトアニア語 (lt-LT )、マケドニア語 (mk-MK )、マレー語 (ms-MY )、マラヤラム語 (ml-IN )、マルタ語 (mt-MT )、モンゴル語 (mn-MN )、ネパール語 (ne-NP )、ノルウェー語 (ブークモール) (nb-NO )、パシュトウ語 (ps-AF )、ペルシア語 (fa-IR )、ポーランド語 (pl-PL )、ポルトガル語 (pt-BR )、ルーマニア語 (ro-RO )、ロシア語 (ru-RU )、セルビア語 (sr-RS )、シンハラ語 (si-LK )、スロバキア語 (sk-SK )、スロベニア語 (sl-SI )、ソマリア語 (so-SO )、スペイン語 (es-ES )、スンダ語 (su-ID )、スワヒリ語 (sw-KE )、スウェーデン語 (sv-SE )、タミル語 (ta-IN )、テルグ語 (te-IN )、タイ語 (th-TH )、トルコ語 (tr-TR )、ウクライナ語 (uk-UA )、ウルドゥー語 (ur-PK )、ウズベク語 (uz-UZ )、ベトナム語 (vi-VN )、ウェルシュ語 (cy-GB )、ズールー語 (zu-ZA ) |
91 | アフリカーンス語 (南アフリカ) (af-ZA )、アルバニア語 (アルバニア) (sq-AL )、アムハラ語 (エチオピア) (am-ET )、アラビア語 (エジプト) (ar-EG )、アラビア語 (サウジアラビア) (ar-SA )、アルメニア語 (アルメニア) (hy-AM )、アゼルバイジャン語 (アゼルバイジャン) (az-AZ )、バスク語 (バスク) (eu-ES )、ベンガル語 (インド) (bn-IN )、ボスニア語 (ボスニア・ヘルツェゴビナ) (bs-BA )、ブルガリア語 (ブルガリア) (bg-BG )、ミャンマー語 (ミャンマー) (my-MM )、カタロニア語 (スペイン) (ca-ES )、中国語 (広東語、繁体字) (zh-HK )、中国語 (標準中国語、簡体字) (zh-CN )、中国語 (台湾語) (zh-TW )、クロアチア語 (クロアチア) (hr-HR )、チェコ語 (チェコ) (cs-CZ )、デンマーク語 (デンマーク) (da-DK )、オランダ語 (ベルギー) (nl-BE )、オランダ語 (オランダ) (nl-NL )、英語 (オーストラリア) (en-AU )、英語 (カナダ) (en-CA )、英語 (香港特別行政区) (en-HK )、英語 (インド) (en-IN )、英語 (アイルランド) (en-IE )、英語 (英国) (en-GB )、英語 (米国) (en-US )、エストニア語 (エストニア) (et-EE )、フィリピン語 (フィリピン) (fil-PH )、フィンランド語 (フィンランド) (fi-FI )、フランス語 (ベルギー) (fr-BE )、フランス語 (カナダ) (fr-CA )、フランス語 (フランス) (fr-FR )、フランス語 (スイス) (fr-CH )、ガリシア語 (ガリシア) (gl-ES )、ジョージア語 (ジョージア) (ka-GE )、ドイツ語 (オーストリア) (de-AT )、ドイツ語 (ドイツ) (de-DE )、ドイツ語 (スイス) (de-CH )、ギリシャ語 (ギリシャ) (el-GR )、ヘブライ語 (イスラエル) (he-IL )、ヒンディー語 (インド) (hi-IN )、ハンガリー語 (ハンガリー) (hu-HU )、アイスランド語 (アイスランド) (is-IS )、インドネシア語 (インドネシア) (id-ID )、アイルランド語 (アイルランド) (ga-IE )、イタリア語 (イタリア) (it-IT )、日本語 (日本) (ja-JP )、ジャワ語 (インドネシア) (jv-ID )、カンナダ語 (インド) (kn-IN )、カザフ語 (カザフスタン) (kk-KZ )、クメール語 (カンボジア) (km-KH )、韓国語 (韓国) (ko-KR )、ラオ語 (ラオス) (lo-LA )、ラトビア語 (ラトビア) (lv-LV )、リトアニア語 (リトアニア) (lt-LT )、マケドニア語 (北マケドニア) (mk-MK )、マレー語 (マレーシア) (ms-MY )、マラヤーラム語 (インド) (ml-IN )、マルタ語 (マルタ) (mt-MT )、モンゴル語 (モンゴル) (mn-MN )、ネパール語 (ネパール) (ne-NP )、ノルウェー語 (ブークモール、ノルウェー) (nb-NO )、パシュト語 (アフガニスタン) (ps-AF )、ペルシア語 (イラン) (fa-IR )、ポーランド語 (ポーランド) (pl-PL )、ポルトガル語 (ブラジル) (pt-BR )、ポルトガル語 (ポルトガル) (pt-PT )、ルーマニア語 (ルーマニア) (ro-RO )、ロシア語 (ロシア) (ru-RU )、セルビア語 (キリル、セルビア) (sr-RS )、シンハラ語 (スリランカ) (si-LK )、スロバキア語 (スロバキア) (sk-SK )、スロベニア語 (スロベニア) (sl-SI )、ソマリア語 (ソマリア) (so-SO )、スペイン語 (メキシコ) (es-MX )、スペイン語 (スペイン) (es-ES )、スンダ語 (インドネシア) (su-ID )、スワヒリ語 (ケニア) (sw-KE )、スウェーデン語 (スウェーデン) (sv-SE )、タミール語 (インド) (ta-IN )、テルグ語 (インド) (te-IN )、タイ語 (タイ) (th-TH )、トルコ語 (トルコ) (tr-TR )、ウクライナ語 (ウクライナ) (uk-UA )、ウルドゥー語 (パキスタン) (ur-PK )、ウズベク語 (ウズベキスタン) (uz-UZ )、ベトナム語 (ベトナム) (vi-VN )、ウェールズ語 (英国) (cy-GB )、ズールー語 (南アフリカ) (zu-ZA ) |
1 これらは、Azure AI 音声でのニューラル多言語音声です。 すべての多言語音声は、SSML を使用せずに、入力テキストの既定のロケールの言語で話すことができます。 ただし、<lang xml:lang>
要素を使用して各言語のアクセントを調整し、英語の英国アクセント (en-GB
) など、優先するアクセントに設定することができます。 各音声の主要な場所は、その名前のプレフィックスによって示されており、音声 en-US-AndrewMultilingualNeural
であれば、主要な場所は en-US
です。
Note
多言語音声では、break
、emphasis
、silence
、sub
などの特定の 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-MX
、en-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
要素には、テキストと、要素 audio
、break
、p
、phoneme
、prosody
、say-as
、sub
、および s
を含めることができます。
韻律属性値は広範囲にわたって変化する可能性があるため、音声認識エンジンは、割り当てられた値を、選択された音声の実際の韻律値を連想するものとして解釈します。 テキスト読み上げでは、サポートされていない値を制限するか、置き換えます。 サポートされていない値の例として、1 MHz のピッチまたは 120 の音量があります。
次の表には、prosody
要素の属性の使用をまとめてあります。
属性 | 説明 | 必須または省略可能 |
---|---|---|
contour |
音調とは音の高さの変化です。 この変化は、音声出力において指定の時間位置にあるターゲットの配列として表わされます。 パラメーター ペアのセットにより各ターゲットが定義されます。 例: <prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)"> パラメーターの各セットの最初の値は、ピッチの変更位置をテキストの継続時間の割合として指定します。 2 番目の値は、ピッチの相対値または列挙値を使用して、ピッチを増減する量を指定します ( pitch を参照)。 ピッチ曲線は、単一の単語や短い語句では機能しません。 文全体または長い語句のピッチ曲線を調整することをお勧めします。 |
省略可能 |
pitch |
テキストのベースラインのピッチを示します。 ピッチの変更は、文章レベルで適用できます。 ピッチの変更は、元の音声の 0.5 から 1.5 倍以内にする必要があります。 ピッチは次のように表すことができます。
|
省略可能 |
range |
テキストのピッチの範囲を表す値。 range は、pitch の記述に使用されるものと同じ絶対値、相対値、または列挙値を使用して表すことができます。 |
省略可能 |
rate |
テキストの読み上げ速度を示します。 読み上げ速度は、単語または文レベルで適用できます。 レートの変更は、元の音声の 0.5 から 2 倍以内にしてください。 rate は次のように表すことができます。
|
省略可能 |
volume |
読み上げている音声の音量レベルを示します。 音量の変更は、文章レベルで適用できます。 音量は次のように表すことができます。
|
省略可能 |
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
要素を使用し、テキストの単語レベルの強調を追加または削除できます。 この要素には、テキストと要素 audio
、break
、emphasis
、lang
、phoneme
、prosody
、say-as
、sub
、 voice
のみを含めることができます。
Note
単語レベルの強調の調整は、次のニューラル音声 (en-US-GuyNeural
、en-US-DavisNeural
、en-US-JaneNeural
) でのみ使用できます。
低いピッチと短い継続時間を持つ単語の場合、ピッチが気付くほど上がっていない可能性があります。
以下の表に emphasis
要素の属性がまとめてあります。
属性 | 説明 | 必須または省略可能 |
---|---|---|
level |
適用する強調の強さを示します。
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
要素には、テキストと、要素 audio
、break
、p
、s
、phoneme
、prosody
、say-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 など) での要求された出力オーディオの継続時間。出力オーディオ継続時間の最大値は 300 秒です。 この値は、他のレート設定を行わずに、元のオーディオの 0.5 から 2 倍以内にする必要があります。 たとえば、要求されたオーディオ継続時間が 30s の場合、元のオーディオは 15 から 60 秒の間である必要があります。 これらの境界の外側に値を設定した場合、継続時間はそれぞれの最小値または最大値の倍数に従って設定されます。 300 秒を超える出力オーディオの場合は、最初に他のレート設定のない元のオーディオを生成してから、韻律レートを使用して調整するレートを計算して目的の継続時間を実現します。 |
必須 |
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>