在您的應用程式中使用個人版語音
您可以使用個人語音的說話者設定檔識別碼,以超過 100 種地區設定支援的任何 91 種語言合成語音。 不需要地區設定標籤。 個人語音會在句子層級使用自動語言偵測。
在您的應用程式中整合個人語音
您必須使用語音合成標記語言 (SSML) 在應用程式中使用個人語音。 SSML 是以 XML 為基礎的標記語言,可提供標準方法來標記文字以產生綜合語音。 SSML 標記可用來控制語音合成輸出的發音、音量、音調、速率和其他屬性。
SSML 中的
speakerProfileId
屬性可用來指定個人語音的說話者設定檔識別碼。語音名稱是在 SSML 的
name
屬性中指定。 針對個人語音,語音名稱必須是其中一個支援的基底模型語音名稱。 若要取得支援的基底模型語音名稱清單,請使用自訂語音 API 的 BaseModels_List 作業。注意
標示為
Latest
的語音名稱,例如DragonLatestNeural
或PhoenixLatestNeural
,將會不時更新; 其效能可能會隨著更新而有所不同,以取得持續改善。 如果您要使用固定版本,請選擇一個加上版本號碼的標籤,例如PhoenixV2Neural
。DragonLatestNeural
與PhoenixLatestNeural
相比,是具有優越語音複製相似性的基底模型。PhoenixLatestNeural
是一個基底模型,其發音更精確,延遲比DragonLatestNeural
較低。針對個人語音,您可以使用
<lang xml:lang>
元素來調整口語語言。 這與多語系語音相同。 請參閱 如何使用 lang 元素來說不同語言。
以下是語音名稱和說話者設定檔識別碼之文字轉換語音要求中的範例 SSML。 此範例也會示範如何使用 <lang xml:lang>
元素,將語言從 en-US
切換為 zh-HK
。
<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='DragonLatestNeural'>
<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.
<lang xml:lang='zh-HK'>我很高興聽到你覺得我很了不起,我讓你的旅行計劃更輕鬆、更有趣。</lang>
</mstts:ttsembedding>
</voice>
</speak>
您可以透過語音 SDK 或 REST API 使用 SSML。
- 即時語音合成: 使用 語音 SDK 或 REST API 將文字轉換成語音。
- 當您使用語音 SDK 時,請勿設定端點識別碼,就像預先建置語音一樣。
- 當您使用 REST API 時,請使用預先建置的神經語音端點。
個人語音支援和不支援的 SSML 元素
如需 Phoenix 和 Dragon 模型支援和不支援 SSML 元素的詳細資訊,請參閱下表。 如需如何使用 SSML 元素的指示,請參閱 SSML 文件結構和事件。
元素 | 描述 | 在 Phoenix 中支援 | 在 Dragon 中支援 |
---|---|---|---|
<voice> |
指定語音和選用效果 (eq_car 和 eq_telecomhp8k )。 |
Yes | Yes |
<mstts:express-as> |
指定說話風格和角色。 | No | No |
<mstts:ttsembedding> |
指定個人語音的 speakerProfileId 屬性。 |
Yes | Yes |
<lang xml:lang> |
指定說話語言。 | Yes | Yes |
<prosody> |
調整音調、輪廓、範圍、速率和音量。 | ||
pitch |
指出文字的基準音調。 | No | No |
contour |
代表音調的變化。 | No | No |
range |
代表文字的音調範圍。 | No | No |
rate |
指出文字的語速。 | Yes | Yes |
volume |
指出說話語音的音量高低。 | No | No |
<emphasis> |
新增或移除文字的文字層級壓力。 | No | No |
<audio> |
將預先錄製的音訊內嵌至 SSML 文件。 | 是 | No |
<mstts:audioduration> |
指定輸出音訊的持續時間。 | No | No |
<mstts:backgroundaudio> |
在 SSML 文件中新增背景音訊或使用文字轉換語音來混合音訊檔案。 | 是 | No |
<phoneme> |
指定 SSML 文件中的語音發音。 | ||
ipa |
其中一個音標字母。 | 是 | No |
sapi |
其中一個音標字母。 | No | No |
ups |
其中一個音標字母。 | 是 | No |
x-sampa |
其中一個音標字母。 | 是 | No |
<lexicon> |
定義如何在 SSML 中讀取多個實體。 | Yes | 是 (僅支援別名) |
<say-as> |
指出元素文字的內容類型,例如數字或日期。 | Yes | Yes |
<sub> |
指出別名屬性的文字值應該發音,而不是元素的括住文字。 | Yes | Yes |
<math> |
使用 MathML 作為輸入文字,以在輸出音訊中正確發音數學符號。 | 是 | No |
<bookmark> |
取得音訊資料流中每個標記的位移。 | 是 | No |
<break> |
覆寫單字之間中斷或暫停的預設行為。 | Yes | Yes |
<mstts:silence> |
在文字前、文字後,或在兩個連續的句子之間插入停頓。 | 是 | No |
<mstts:viseme> |
定義人在說話時,臉部和嘴巴的位置。 | 是 | No |
<p> |
表示 SSML 文件中的段落。 | Yes | Yes |
<s> |
表示 SSML 文件中的句子。 | Yes | Yes |
支援與不支援的個人語音 SDK 功能
下表概述了 Phoenix 和 Dragon 模型支援的 SDK 功能。 如需如何在應用程式中使用這些 SDK 功能的詳細資料,請參閱訂閱合成器事件。
SDK 功能 | 說明 | 在 Phoenix 中支援 | 在 Dragon 中支援 |
---|---|---|---|
詞語邊界 | 指示在合成期間接收到一個詞語邊界,提供在語音合成過程中的精確詞語時間點。 | 是 | No |
Viseme 事件 | 在合成期間提供 viseme (嘴唇、下巴和舌頭移動) 資訊,從而實現視覺同步。 | 是 | No |