你可以使用語音合成標記語言(SSML)來指定語音輸出的文字轉語音、語言、名稱、風格和角色。 你也可以在一份 SSML 文件中使用多個聲音,並調整重音、說話速度、音高和音量。 此外,SSML 還能插入預錄音訊,例如音效或音符。
文章中展示了如何使用 SSML 元素來指定語音和聲音。 欲了解更多關於 SSML 語法的資訊,請參閱 SSML 文件結構與事件。
使用語音元素
每個 SSML voice中至少必須指定一個元素。 這個元素決定了用於文字轉語音的語音。
你可以在一份 SSML 文件中包含多個 voice 元素。 每個 voice 元素可以指定不同的聲部。 你也可以用不同設定多次使用同一個聲音,例如改變句子間的 靜默時長 。
下表說明了元素 voice 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
name |
用於文字轉語音輸出的語音。 欲了解完整的標準語音列表,請參見 語言支援。 | 必需 |
effect |
音訊效果處理器用來優化合成語音輸出的品質,以適應裝置上特定情境。 對於生產環境中的某些情境,聽覺體驗可能會因特定裝置上的播放失真而降低。 例如,汽車喇叭的合成語音可能因環境因素如喇叭反應、房間混響和背景噪音而顯得沉悶悶響。 乘客可能需要調大音量才能聽得更清楚。 為了避免此種情況下手動操作,音效處理器可透過補償播放失真來使聲音更清晰。 支援以下數值:
若值缺失或無效,則忽略此屬性,且不會套用任何效果。 |
可選 |
聲音範例
關於元素屬性的支援值,請參見「voice使用語音元素」。
單聲音範例
這個範例使用了 en-US-Ava:DragonHDLatestNeural 聲音。
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
This is the text that is spoken.
</voice>
</speak>
多重語音範例
在元素 speak 中,你可以指定多個語音來輸出文字。 這些聲音可以是不同語言。 每個聲部的文字必須包裹在一個 voice 元素中。
這個例子在 en-US-Ava:DragonHDLatestNeural 和 en-US-Andrew:DragonHDLatestNeural 聲部之間交替出現。 神經多語言聲音能根據輸入文字說出不同的語言。
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
Good morning!
</voice>
<voice name="en-US-Andrew:DragonHDLatestNeural">
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>
多講者語音範例
多語音可與多個不同講者進行自然且動態的對話。 這項創新透過保留語境流暢、情感一致性及自然語音模式,提升了合成對話的真實感。
利用此功能生成引人入勝、類似播客風格的語音或對話,並讓講者間無縫轉換。 與單說話者模型不同,後者是將每個對話回合孤立地合成,多說話者語音在對話中保持連貫性,確保提供更真實且沉浸式的聆聽體驗。
對於 en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural,您可以在 <mstts:dialog> 元素內指定文字轉換語音輸出的每個輪次,格式如下,可讓每個輪次在 ava 和 andrew 說話者之間交替。
<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-MultiTalker-Ava-Andrew:DragonHDLatestNeural'>
<mstts:dialog>
<mstts:turn speaker="ava">Hello, Andrew! How's your day going?</mstts:turn>
<mstts:turn speaker="andrew">Hey Ava! It's been great, just exploring some AI advancements in communication.</mstts:turn>
<mstts:turn speaker="ava">That sounds interesting! What kind of projects are you working on?</mstts:turn>
<mstts:turn speaker="andrew">Well, we've been experimenting with text-to-speech applications, including turning emails into podcasts.</mstts:turn>
<mstts:turn speaker="ava">Wow, that could really improve content accessibility! Are you looking for collaborators?</mstts:turn>
<mstts:turn speaker="andrew">Absolutely! We're open to testing new ideas and seeing how AI can enhance communication.</mstts:turn>
</mstts:dialog>
</voice>
</speak>
有關支援的語音,請參閱 語言支援 文件。
使用說話風格、副語言學和角色
HD 語音中的風格與副語言
在 HD 語音(DragonHD、DragonHD Omni 和 DragonHD Flash)中,樣式與副語言元素可透過以下三種方式使用:
| 輸入類型 | 範例 |
|---|---|
| SSML(express-as 標籤) |
<說話> <聲音名稱=“en-us-Ava:DragonHDLatestNeural”> <mstts:express-as style=“whispering”>別告訴任何人......</MSTTS:express-as> <mstts:express-as style=“ecstaic”> 這太棒了!</MSTTS:express-as> </聲音> </說> |
| SSML(樣式標記) |
<說話> <聲音名稱=“en-us-Ava:DragonHDLatestNeural”> [低聲]別告訴任何人...... [欣喜若狂]這太棒了! </聲音> </說> |
| 純文字(選擇聲音後) | [低聲]別告訴任何人...... [欣喜若狂]這太棒了! |
註
風格標記會套用在後續所有句子上,直到你重置風格為止。
- 用
[Neutral]來切換到預設風格。 -
\r\n、<p>標籤和自動句子界限會切換為預設樣式。 -
<break>標籤不會切換成預設樣式。
Dragon HD 支援的風格
以下的樣式與副語言標籤在高清語音中被支援
| 類型 | 標籤 |
|---|---|
| 風格 |
amazed、amused、angry、annoyed、anxious、appreciative、calm、cautious、concerned、confident、confused、curious、defeated、defensive、defiant、determined、disappointed、disgusted、doubtful、ecstatic、encouraging、excited、fast、fearful、frustrated、happy、hesitant、hurt、impatient、impressed、intrigued、joking、laughing、optimistic、painful、panicked、panting、pleading、proud、quiet、reassuring、reflective、relieved、remorseful、resigned、sad、sarcastic、secretive、serious、shocked、shouting、shy、skeptical、slow、struggling、surprised、suspicious、sympathetic、terrified、upset、urgent、whispering |
| 副語言學 |
laughter, coughing, throat_clearing, breathing, sighing, yawning |
註
所有英文內容的風格皆適用於各種聲音類型。 樣式結果與輸入內容密切相關:模型會根據文本的語意調整樣式應用。 所有語音和所有語言都可使用副語言學。
支援的 Dragon HD Omni 樣式
以下風格與副語言標籤在 HDOmni 語態中被支援
| 類型 | 標籤 |
|---|---|
| 風格 |
amazed、amused、angry、annoyed、anxious、appreciative、calm、cautious、concerned、confident、confused、curious、defeated、defensive、defiant、determined、disappointed、disgusted、doubtful、ecstatic、encouraging、excited、fast、fearful、frustrated、happy、hesitant、hurt、impatient、impressed、intrigued、joking、laughing、optimistic、painful、panicked、panting、pleading、proud、quiet、reassuring、reflective、relieved、remorseful、resigned、sad、sarcastic、secretive、serious、shocked、shouting、shy、skeptical、slow、struggling、surprised、suspicious、sympathetic、terrified、upset、urgent |
| 副語言學 |
laughter, coughing, throat_clearing, breathing, sighing, yawning |
註
所有英文內容的風格皆適用於各種聲音類型。 樣式結果與輸入內容密切相關:模型會根據文本的語意調整樣式應用。 所有語言的所有語音都可使用副語言特徵。
神經聲音中的風格與角色
神經聲音預設為中性說話風格。 你可以在句子層級調整口語風格、風格程度和角色。
下表說明了元素 mstts:express-as 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
style |
針對聲音的特殊說話風格。 你可以表達像是開心、同理心和平靜等情緒。 你也可以針對不同情境優化語音,例如客服、新聞播報和語音助理。 若樣式值遺失或無效, mstts:express-as 整個元素將被忽略,服務則使用預設的中性語音。 關於自訂語音風格,請參考 自訂語音風格範例。 |
必需 |
styledegree |
演講風格的強度。 你可以指定更強烈或更柔和的風格,讓演講更具表現力或較為內斂。 被接受的數值範圍為:0.01 至 2(含)。 預設值為 1,代表預先定義的風格強度。 最小單位為 0.01,這會對目標風格產生些微傾向。 當值為2時,結果是預設風格強度加倍。 如果您的語音遺漏或不支援風格程度,系統會忽略此屬性。 |
可選 |
role |
口語角色扮演 聲音可以模仿不同的年齡和性別,但聲音名稱不會改變。 例如,男性聲音可以提高音調並改變語調以模仿女性聲音,但聲音名稱不會改變。 如果缺少該角色或不支援你的聲音,這個屬性會被忽略。 | 可選 |
下表說明每個支援的 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 範例使用 <mstts:express-as> 元素,並將 sad 風格程度設為 2。
<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>
講者檔案識別碼
你用這個mstts:ttsembedding元素來指定speakerProfileId個人聲音的屬性。 個人聲音是根據你自己的聲音或客戶的聲音訓練出來的客製化聲音。 欲了解更多資訊,請參閱 建立個人聲音。
以下的 SSML 範例使用 <mstts:ttsembedding> 帶有語音名稱和喇叭設定檔 ID 的元素。
<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 xml:lang> 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
xml:lang |
您希望神經語音所使用的語言。 | 需要調整神經網絡語音的語言參數。 如果你使用 lang xml:lang,必須提供所在地。 |
註
非多語言的聲音設計上並不支援這個 <lang xml:lang> 元素。
具有 lang 元素的多語音
利用 多語言語音部分 ,判斷語音服務為每個神經聲音支援哪些口語語言,如下範例表格所示。 如果語音不說輸入文字的語言,語音服務就不會輸出合成音訊。
| Voice | 自動偵測語言編號 | 自動偵測語言(地點) | 所有地區設定數字 | 所有由 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)、挪威文 Bokmål (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)、挪威文 (Bokmål,挪威) (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 這些是 Foundry Tools 中 Azure 語音中的神經多語言聲音。 所有多語言語音都能在輸入文字的預設區域內使用該語言,無需使用 SSML。 不過,你仍然可以用這個 <lang xml:lang> 元素調整每種語言的口語口音,以設定偏好的口音,例如英語的英式口音(en-GB)。 每個語音名稱的前綴表示其主要所在地;例如,的 en-US-AndrewMultilingualNeural 主定位為 en-US。
Lang 範例
如需 lang 元素屬性支援值的相關資訊,請參閱調整說話語言。
你必須在en-US元素中指定speak作為預設語言,不論此語言是否在其他地方被調整。 在此範例中,en-US-Ava:DragonHDLatestNeural 的主要語言為 en-US。
此 SSML 程式碼片段示範如何使用 <lang xml:lang>,搭配 de-DE 類神經語音說出 en-US-Ava:DragonHDLatestNeural。
<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-Ava:DragonHDLatestNeural">
<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-Ava:DragonHDLatestNeural">
<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、、p、phonemeprosodysay-assubs及。
由於韻律屬性值可能變化幅度很大,語音辨識器會將分配的值解讀為所選聲音實際韻律值的建議。 文字轉語音會限制或是替代那些不被支援的數值。 無支援值的例子包括1 MHz的音高或120的音量。
下表說明了元素 prosody 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
contour |
輪廓代表音高的變化。 這些變化以語音輸出中指定時間位置的目標陣列表示。 參數對集合定義每個目標。 例如: <prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">每組參數中的第一個值指定音高變化的位置,佔文本時值的百分比。 第二個值會使用相對值或音高的列舉值,指定要提高或降低音高的量 (請參閱 pitch)。 音高輪廓功能不適用於單字和短短語句。 建議在整句或長句中調整音高輪廓。 |
可選 |
pitch |
表示文本的基線音高。 音高變化可以在句子層次應用。 音高變化應該在原始音訊的0.5到1.5倍以內。 您可以將音高表示為:
|
可選 |
range |
一個代表文本音高範圍的值。 你可以用與描述 range相同的絕對值、相對值或枚舉值來表達pitch。 |
可選 |
rate |
表示文本的發言速率。 說話速率可以應用在單字或句子層級。 速率的變動應該是在原始音訊的0.5到2倍之間。 你可以表達 rate 為:
|
可選 |
volume |
表示說話聲音的音量。 音量變化可以在句子層級應用。 你可以將體積表示為:
|
可選 |
韻律範例
關於 prosody 元素屬性所支援的值,請參見 調整韻律。
更改語速示例
此 SSML 片段說明該屬性如何 rate 將語音速率調整為比預設速率高 30%。
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
<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-Ava:DragonHDLatestNeural">
<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、 langphonemeprosodysay-assubvoice。
註
詞層級的強調調諧僅適用於這些神經聲音:en-US-GuyNeural、en-US-DavisNeural 和 en-US-JaneNeural。
對於音調低且時值短的單字,音調可能不會被抬高到無法被察覺。
下表描述了該 emphasis 元素的屬性:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
level |
表示應施加的強調力度:
當 level 屬性未指定時,預設等級為 moderate。 關於每個屬性的詳細資訊,請參見 強調元素。 |
可選 |
強調範例
關於元素屬性的支援值emphasis,請參見「調整強調」。
這段 SSML 片段示範如何利用這個 emphasis 元素來為「會議」這個詞增添中等程度的強調。
<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、psphonemeprosodysay-assub和。
SSML文件中包含的任何音頻必須符合以下要求:
- 音訊檔案必須是 *.mp3、*.wav、*.opus、*.ogg、*.flac 或 *.wma 檔案。
- 單一回應中所有文字與音訊檔案的總時間不得超過600秒。
- 音訊不得包含任何客戶特定或其他敏感資訊。
註
這個 audio 元素不被 Long Audio API 支援。 若要進行長文文字轉語音,請使用 批次合成 API 。
下表說明了元素 audio 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
src |
音訊檔案的 URI 位置。 音訊必須託管在可網際網路存取的 HTTPS 端點上。 必須使用 HTTPS 格式。 該檔案的網域必須提供有效且受信任的 TLS/SSL 憑證。 你應該將音訊檔案放置於與文字轉語音端點同一 Azure 區域的 Blob 儲存體,以降低延遲。 | 必需 |
音訊範例
關於元素屬性的支援值 audio ,請參見 「新增錄音音訊」。
這段 SSML 片段說明如何利用 src 屬性插入兩個.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 時,您可以在背景循環播放音訊檔案,在文字轉換語音開頭淡入,並在文字轉換語音結尾淡出。
如果提供的背景音訊短於文字轉換語音或淡出時間,它會循環播放。 如果背景音訊長於文字轉換語音,它會在淡出完成時停止。
每個 SSML 文件只允許一個背景音訊檔案。 你可以在audio元素中穿插voice標籤,以便為你的 SSML 文件加入更多音訊。
註
mstts:backgroundaudio元素應該放在所有voice元素前面。 若有指定,它必須是 speak 元素的第一個子節點。
這個 mstts:backgroundaudio 元素不被 Long Audio API 支援。 若要進行長文文字轉語音,請改用 批次合成 API (預覽)。
下表說明了元素 mstts:backgroundaudio 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
src |
背景音訊檔案的 URI 位置。 | 必需 |
volume |
背景音訊檔案的音量。 可接受的值:包含0 到 100。 預設值為 1。 |
可選 |
fadein |
背景音效淡入的持續時間,以毫秒為單位。 預設值為 0,相當於不會有淡入效果。 可接受的值:包含0 到 10000。 |
可選 |
fadeout |
背景音訊淡出的持續時間以毫秒計算。 預設值為 0,相當於沒有淡出。接受的值:包括 0 到 10000。 |
可選 |
MSTSS 背景音訊範例
關於元素屬性的支援值 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 are spoken over the background audio.
</voice>
</speak>
維森元素
描聲影像能夠以視覺方式呈現出口說語言的音素。 它定義了說話時臉部和嘴巴的位置。 你可以在 SSML 裡用這個 mstts:viseme 元素來請求 viseme 輸出。 更多資訊請參見 「用 Viseme 取得臉部位置」。
Viseme 設定會套用到包含 voice 元素內的所有的輸入文字。 要重新設定或更改 viseme 設定時,您必須使用新的 voice 元素,可以選擇使用相同的聲音或不同的聲音。
viseme 元素的屬性使用方式詳述於下表。
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
type |
viseme 輸出的類型。
|
必需 |
註
目前,redlips_front僅在en-US地區支援神經聲音,而FacialExpression在en-US和zh-CN地區支援神經聲音。
維塞姆範例
先前已說明
此 SSML 程式碼片段說明如何要求合成語音中的混合形狀。
<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-AvaNeural">
<mstts:viseme type="FacialExpression"/>
Rainbow has seven colors: Red, orange, yellow, green, blue, indigo, and violet.
</voice>
</speak>
語音轉換元素
語音轉換(預覽)是將特定音頻的語音特性轉換成目標語音喇叭的過程。 語音轉換後,所產生的音訊保留原始音訊的語言內容與韻律,而語音音色則聽起來像是目標說話者。 欲了解更多資訊,請參閱 語音轉換。
透過語音合成標記語言(SSML)使用 <mstts:voiceconversion> 標籤,指定原始音訊網址及轉換的目標語音。 欲了解完整的支援目標語音清單,請參見 語音轉換支援聲音。
下表說明了元素 mstts:voiceconversion 屬性的使用方式:
| 屬性 | 描述 | 必修或選修 |
|---|---|---|
url |
提供合成語音語言內容與韻律的來源音訊檔案的網址。url必須透過 HTTPS URL 存取。 例如, https://example.com/source.wav輸入音訊必須低於 100 MB。 |
必需 |
語音轉換的運作方式如下:
- 原始音訊是一個預錄的音訊檔,包含語音和韻律。
- 文字內容:最終合成的語音會跟隨原始音頻中的口語。
- 韻律與節奏:語音維持源頭的節奏與語調。
- 標籤
<voice>會指定輸出音訊所用的目標語音。 如需支援的目標語音相關資訊,請參閱支援的語音轉換語音。 - 輸出音訊保留目標聲音的音色(音色與語音品質),但遵循原始音訊的文字與說話風格。
註
所有與韻律和發音相關的 SSML 元素,如 <prosody> 或 <mstts:express-as> 都會被忽略。
文字輸入為可選,渲染時忽略 SSML 中包含的任何文字。
MSTSS 語音轉換範例
以下範例示範如何 <mstts:voiceconversion> 利用 目標神經語音 合成語音,同時同時匹配特定來源音頻 的內容與韻律 :
<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 xml:lang="en-US" xml:gender="Female" name="en-US-AvaMultilingualNeural">
<mstts:voiceconversion url="https://your.blob.core.windows.net/sourceaudio.wav"/>
</voice>
</speak>