使用 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-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>

使用說話樣式和角色

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

注意

語音服務支持神經語音子集的樣式、樣式程度和角色,如語音樣式和角色檔中所述。 若要判斷每個語音的支持樣式和角色,您也可以使用 清單語音 API 和 音訊內容建立 Web 應用程式。

下表描述元素屬性的使用方式 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>

自定義神經語音樣式範例

您可以定型自定義神經語音,以使用 、sad、 和 whisperingcheerful一些預設樣式來說話。 您也可以 定型自定義神經語音 ,以自定義樣式來說話,如定型數據所決定。 若要在 SSML 中使用自訂神經語音樣式,請指定您先前在 Speech Studio 中輸入的樣式名稱。

此範例使用名為 my-custom-voice 的自定義語音。 自定義語音會以 cheerful 的默認樣式和樣式程度 2說話,然後使用名為 my-custom-style 和 style degree 的 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> 具有語音名稱和說話者設定檔標識碼的專案。

<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 元素的多語語音

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

語音 支援的語言號碼 支援的語言 針對每個語言自動偵測到的預設地區設定
en-US-AndrewMultilingualNeural1 (男)
en-US-AvaMultilingualNeural1 (女)
en-US-BrianMultilingualNeural1 (男)
en-US-EmmaMultilingualNeural1 (女)
77 南非文、阿爾巴尼亞文、阿姆哈裡奇文、阿拉伯文、亞美尼亞文、亞塞拜然文、巴薩印尼文、班格拉、巴斯克文、孟加拉文、波士尼亞文 保加利亞文、緬甸文、加泰羅尼亞文、中文粵語、中文普通話、臺灣語、克羅埃西亞文、捷克文、丹麥文、荷蘭文、英文、愛沙尼亞文、菲律賓文、芬蘭文、法文、加利 西亞文、喬治亞文、德文、希臘文、希伯來文、印度文、匈牙利文、冰島文、愛爾蘭文、義大利文、日文、Javanese、Kannada、哈薩克語、高棉、韓文、寮國、拉脫維亞文、立陶宛文、馬其頓文、馬來亞蘭、馬爾他文、蒙古文、尼泊爾文 挪威 Bokmål、Pashto、波斯文、波蘭文、葡萄牙文、羅馬尼亞文、俄文、塞爾維亞文、辛哈拉、斯洛伐克文、斯洛維內文、索馬里文、西班牙文、Sundanese、Swahili、瑞典文、泰米爾、泰米爾、泰魯文、土耳其文、烏克蘭文、烏爾杜文、烏茲別克文、越南文、威爾士文、祖魯文 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-TH、、uk-UAvi-VNzh-CNzh-HKur-PKuz-UZtr-TR、 。 zh-TWzu-ZA

1 這些是 Azure AI 語音中的類神經多語語音。 所有多語系語音都可以在輸入文字的預設地區設定中使用語言來說話,而不 使用 SSML。 不過,您仍然可以使用 <lang xml:lang> 元素來調整每個語言的口音,以設定慣用的口音,例如英文口音(en-GB)。 每個語音的主要地區設定會以其名稱中的前置詞表示,例如語音 en-US-AndrewMultilingualNeural,其主要地區設定為 en-US透過 SSML 檢查支援的地區設定完整清單

注意

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

Lang 範例

如需專案屬性 lang 所支援值的相關信息,請參閱 調整語言

您必須在元素內speak指定en-US為預設語言,無論語言是否在別處調整。 在這裡範例中,的主要語言 en-US-AvaMultilingualNeuralen-US

此 SSML 代碼段示範如何使用 <lang xml:lang> 來與 de-DE 神經語音交談 en-US-AvaMultilingualNeural

<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可以包含文字和下列元素:audiobreak、、p、、phonemeprosody、、say-assubs

由於 prosodic 屬性值可能會因範圍而異,因此語音辨識器會將指派的值解譯為所選取語音的實際 Prosodic 值建議。 文字到語音轉換限制或取代不支援的值。 不支援值的範例為 1 MHz 或 120 的音量。

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

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

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

每個參數集中的第一個值會指定音調變更的位置,做為文字持續時間的百分比。 第二個值會指定使用相對值或列舉值來增加或降低音調的數量(請參閱 pitch)。
選擇性
pitch 指出文字的基準音調。 您可以在句子層級套用音調變更。 音調變更應該在原始音訊的 0.5 到 1.5 倍內。 您可以表示音調為:
  • 絕對值:以數位表示,後面接著 「Hz」 (Hertz)。 例如: <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
    • 愛荷華州
    • medium
    • x-high
    • 預設值
選擇性
range 值,表示文字的間距範圍。 您可以使用用來描述 pitch的相同絕對值、相對值或列舉值來表示range 選擇性
rate 表示文字的說話率。 說話率可以套用在單字或句子層級。 速率變更應該在原始音訊的次數內0.52。 您可以以 rate
  • 相對值:
    • 以相對數位表示:以做為預設值乘數的數位表示。 例如,的值 1 會導致原始速率沒有變更。 的值 0.5 會產生原始速率的減半。 值會產生 2 原始速率的兩倍。
    • 以百分比表示:以前面加上 “+” 或 “-” 的數位表示,後面接著 “%”,表示相對變更。 例如:<prosody rate="50%">some text</prosody><prosody rate="-50%">some text</prosody>
  • 常數值:
    • x-slow
    • medium
    • 快速
    • x-fast
    • 預設值
選擇性
volume 表示說話語音的音量層級。 磁碟區變更可以在句子層級套用。 您可以將磁碟區表示為:
  • 絕對值:表示為 範圍中的0.0100.0數位,從安靜到響亮,例如 75。 預設值是 100.0
  • 相對值:
    • 以相對數位表示:以前面加上 “+” 或 “-” 的數位表示,指定變更磁碟區的數量。 範例為 +10-5.5
    • 以百分比表示:以前面加上 “+” 或 “-” 的數位表示,後面接著 “%”,表示相對變更。 例如:<prosody volume="50%">some text</prosody><prosody volume="+3%">some text</prosody>
  • 常數值:
    • 沉默
    • x-soft
    • soft
    • medium
    • 大聲
    • x-loud
    • 預設值
選擇性

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 元素來新增或移除文字的文字層級壓力。 這個專案只能包含文字和下列元素:、、、langemphasisphonemesay-asprosodysub、 和 。voicebreakaudio

注意

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

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

下表描述 emphasis 元素的屬性:

屬性 描述 必要或選用
level 表示要套用強調的強度:
  • reduced
  • none
  • moderate
  • strong
.
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也可以包含文字和下列元素:audiophonemeprosodyspbreak、、 say-as和 。sub

SSML 檔中包含的任何音訊都必須符合下列需求:

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

注意

Long Audio API 不支援 元素audio。 若要讓長格式文字進行語音轉換,請改用 批次合成 API (預覽)。

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

屬性 描述 必要或選用
src 音訊檔案的 URI 位置。 音訊必須裝載在可存取因特網的 HTTPS 端點上。 需要 HTTPS。 裝載檔案的網域必須出示有效的受信任 TLS/SSL 憑證。 您應該將音訊檔案放入 Blob 儲存體 與語音轉換端點的文字到語音端點相同的 Azure 區域中,以將延遲降到最低。 必要

音訊範例

如需專案屬性 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

此值應該在原始音訊的期間內0.52,而不需要任何其他速率設定。 例如,如果要求的音訊持續時間是 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,您可以在背景迴圈音訊檔案、在文字到語音轉換的開頭淡入,並在文字到語音轉換的結尾淡出。

如果提供的背景音訊比文字語音或淡出短,它會迴圈。 如果文字超過語音轉換的時間,則會在淡出完成時停止。

每個 SSML 檔只允許一個背景音訊檔案。 您可以在 元素內voice插插audio標記,將更多音訊新增至 SSML 檔。

注意

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

Long Audio API 不支援 元素mstts:backgroundaudio。 若要讓長格式文字進行語音轉換,請改用 批次合成 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>

下一步