共用方式為


使用 SSML 自訂語音和音效

使用語音合成標記語言 (SSML) 來指定文字轉換語音的語音、語言、名稱、樣式和角色。 您也可以在單一 SSML 檔中使用多個語音,並調整強調、說話速率、音調和音量。 此外,SSML 還能夠插入預先錄製的音訊,例如音效或音符。

本文說明如何使用 SSML 元素來指定語音和音效。 如需 SSML 語法的詳細資訊,請參閱 SSML 文件結構和事件

使用語音元素

每個 SSML speak 元素內至少必須指定一個 voice 元素。 此元素會決定用於文字轉換語音的語音。

您可以在單一 SSML 文件中包含多個 voice 元素。 每個 voice 元素都可以指定不同的語音。 您也可以使用相同語音多次搭配不同的設定,例如當您變更句子之間的 無聲持續時間

下表描述 voice 元素屬性的使用方式:

屬性 描述 必要或選用
name 用於文字轉換語音輸出的語音。 如需完整的受支援預建語音清單,請參閱語言支援 必要
effect 音訊效果處理器,用來針對裝置上的特定情節將合成語音輸出的品質最佳化。

在生產環境中的某些案例中,由於特定裝置上的播放失真,聽覺體驗可能會變差。 例如,來自汽車喇叭的合成語音可能會因為喇叭回應、室內反響和背景噪音等環境因素而聽起來沉悶且低沉。 乘客可能必須提高音量,才能聽得更清楚。 為了避免在這類情節中手動操作,音訊效果處理器可以藉由補償播放的失真,讓音效更清楚。

支援下列值:
  • eq_car – 在汽車、公車和其他密閉汽車中提供高傳真語音,使聽覺體驗最佳化。
  • eq_telecomhp8k – 將電信或電話情節中窄頻語音的聽覺體驗最佳化。 您應該使用 8 kHz 的取樣率。 如果取樣率不是 8 kHz,輸出語音的聽覺品質將不會最佳化。

如果該值遺漏或無效,則會忽略此屬性,且不會套用任何效果。
選擇性

語音範例

如需 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>

使用說話風格和角色

根據預設,神經語音具有中性說話風格。 您可以在句子層級調整說話風格、風格程度和角色。

注意

語音風格和角色 文件所述,語音服務支援神經語音子集的風格、風格等級和角色。 若要判斷每種語音支援哪些風格和角色,您也可以使用 列出語音 API 和音訊內容建立 Web 應用程式。

下表描述 mstts:express-as 元素屬性的使用方式:

屬性 描述 必要或選用
style 語音特定的說話風格。 您可以表達不同情緒 (例如愉快、同理心、平靜)。 您也可以針對不同案例進行語音最佳化 (例如客戶服務、新聞廣播、語音助理)。 如果缺少風格值或無效,則會忽略整個 mstts:express-as 元素,而且服務會使用預設的中性語音。 如需自訂神經語音風格,請參閱 自訂神經語音風格範例 必要
styledegree 說話風格的強度。 您可以指定較強烈或較柔和的風格,讓語音更有感情或更柔和。 接受的值範圍是:0.012 (含)。 預設值為 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 範例使用具有 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-style0.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> 元素。

<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> 元素與 prosodybreak 元素不相容。 您無法調整此元素中的停頓和韻律,例如音調、輪廓、語速或音量。

非多語系語音依設計不支援 <lang xml:lang> 元素。

具有 lang 元素的多語系語音

使用 多語系語音一節 來判斷語音服務針對每種神經語音支援的語言,如下列表格所示。 如果語音不說輸入文字的語言,語音服務就不會輸出合成的音訊。

語音 自動偵測語言號碼 自動偵測語言 (地區設定) 所有地區設定號碼 SSML 支援的所有語言 (地區設定)
en-US-AndrewMultilingualNeural1 (男性)
en-US-AvaMultilingualNeural1 (女性)
en-US-BrianMultilingualNeural1 (男性)
en-US-EmmaMultilingualNeural1 (女性)
77 南非荷蘭文 (af-ZA)、阿爾巴尼亞文 (sq-AL)、阿姆哈拉文 (am-ET)、阿拉伯文 (ar-EG)、亞美尼亞文 (hy-AM)、亞塞拜然文 (az-AZ)、印尼文 (Bahasa) (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

注意

多語系語音不支援某些 SSML 元素,例如 breakemphasissilencesub

Lang 範例

如需 lang 元素屬性支援值的相關資訊,請參閱 調整口語語言

您必須在元素 speak 內指定 en-US 為預設語言,無論語言是否在其他地方受到調整。 在此範例中, en-US-AvaMultilingualNeural 的主要語言是 en-US

此 SSML 片段示範了如何使用 <lang xml:lang>en-US-AvaMultilingualNeural 神經語音說出 de-DE

<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-USfr-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-assubs

因為韻律屬性值的變化範圍很廣,所以語音辨識器會將指派的值解釋為所選語音實際韻律值的建議值。 文字轉換語音匯限制或取代不支援的值。 舉例來說,不支援的值有 1 MHz 的音調或 120 的音量。

下表描述 prosody 元素屬性的使用方式:

屬性 描述 必要或選用
contour 輪廓代表音調的變化。 在語音輸出中,會以指定時間位置的目標陣列表示這些變化。 參數對的集合會定義每個目標。 例如:

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

每一組參數中的第一個值會以文字持續時間百分比的形式指定音調變化位置。 第二個值則會使用音調的相對值或列舉值 (請參閱 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 (相當於 0.55,-45%)
    • low (相當於 0.8,-20%)
    • medium (相當於 1,預設值)
    • high (相當於 1.2,+20%)
    • x-high (相當於 1.45,+45%)
選擇性
range 此值代表文字的音調範圍。 您可以使用和描述 range 時所使用的相同絕對值、相對值或列舉值來表達 pitch 選擇性
rate 指出文字的語速。 語速可套用到文字或句子層級。 語速變更應該在原始音訊的 0.52 倍之內。 rate 可表達如下:
  • 相對值:
    • 相對值:以作為預設乘數的數字表示。 例如,值為 1 將使原始語速不改變。 值為 0.5 將使語速變成原始語速的一半。 值為 2 將使語速變成原始語速的兩倍。
    • 以百分比表示:表達方式為數字前面加上「+」(選擇性) 或「-」,以及後面加上「%」,表示相對變更。 例如:<prosody rate="50%">some text</prosody><prosody rate="-50%">some text</prosody>
  • 常數值:
    • x-slow (相當於 0.5,-50%)
    • slow (相當於 0.64,-46%)
    • medium (相當於 1,預設值)
    • fast (相當於 1.55,+55%)
    • x-fast (相當於 2,+100%)
選擇性
volume 指出說話語音的音量高低。 音量變更可以套用到句子層級。 音量可表達為:
  • 絕對值:以 0.0100.0 範圍內的數字表示,從 最安靜最響亮,例如 75。 預設值是 100.0
  • 相對值:
    • 相對值:表達方式為數字前面加上「+」或「-」,以指定變更音量的數量。 例如 +10-5.5
    • 以百分比表示:表達方式為數字前面加上「+」(選擇性) 或「-」,以及後面加上「%」,表示相對變更。 例如:<prosody volume="50%">some text</prosody><prosody volume="+3%">some text</prosody>
  • 常數值:
    • silent (相當於 0)
    • x-soft (相當於 0.2)
    • soft (相當於 0.4)
    • medium (相當於 0.6)
    • loud (相當於 0.8)
    • x-loud (相當於 1,預設值)
選擇性

Prosody 範例

如需 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

注意

文字層級的強調微調僅適用於這些神經語音:en-US-GuyNeuralen-US-DavisNeuralen-US-JaneNeural

對於低音調和持續時間短的字組,音調可能不夠高而無法注意到。

下表描述 emphasis 元素的屬性:

屬性 描述 必要或選用
level 指出要套用的強調強度:
  • reduced
  • none
  • moderate
  • strong

未指定 level 屬性時,預設層級為 moderate。 如需每個屬性的詳細資訊,請參閱 強調元素
選擇性

強調範例

如需 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-assub

SSML 文件中包含的所有音訊都必須符合下列需求:

  • 音訊檔案必須是有效的 *.mp3、 *.wav、 *.opus、 *.ogg、 *.flac或 *.wma 檔案。
  • 單一回應中所有文字和音訊檔案的合併總時間不能超過 600 秒。
  • 音訊不得包含任何客戶特有資訊或其他敏感性資訊。

注意

長音訊 API 不支援 audio 元素。 若為長格式文字轉換語音,請改用批次合成 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.52 倍之間。 原始音訊是不含任何其他速率設定的音訊。 說話速率會根據設定值而變慢或相應加速。

音訊持續時間設定會套用至包含於 voice 元素內的所有輸入文字。 若要再次重設或變更音訊持續時間設定,您必須將新的 voice 元素使用於相同的語音或不同的語音。

下表描述 mstts:audioduration 元素屬性的使用方式:

屬性 描述 必要或選用
value 要求的輸出音訊持續時間,單位可能為秒 (例如 2s) 或毫秒 (例如 2000ms)。

輸出音訊持續時間的最大值為 300 秒。 此值應在原始音訊的 0.52 倍以內,而不需要任何其他速率設定。 例如,如果要求的音訊持續時間為 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 文件只能有一個背景音訊檔案。 您可以在 voice 元素內穿插 audio 標籤,以在 SSML 文件中新增更多音訊。

注意

mstts:backgroundaudio 元素應該放在所有 voice 元素前面。 如果指定,其必須是 speak 元素的第一個子系。

長音訊 API 不支援 mstts:backgroundaudio 元素。 對於長格式文字轉換語音,請改用 批次合成 API (預覽版)。

下表描述 mstts:backgroundaudio 元素屬性的使用方式:

屬性 描述 必要或選用
src 背景音訊檔案的 URI 位置。 必要
volume 背景音訊檔案的音量。 接受的值:0100 (含)。 預設值是 1 選擇性
fadein 背景音訊淡入的持續時間 (以毫秒為單位)。 預設值為 0,等同於沒有淡入。 接受的值:010000 (含)。 選擇性
fadeout 背景音訊淡出的持續時間 (以毫秒為單位)。 預設值為 0,相當於不淡出。接受的值: 010000 (含)。 選擇性

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>

下一步