訓練您的專業語音模型

在本文中,您將瞭解如何透過Speech Studio入口網站訓練自定義神經語音。

重要

自定義神經語音定型目前僅適用於某些區域。 在支援區域中定型語音模型之後,您可以 視需要將其複製到 另一個區域中的語音資源。 如需詳細資訊,請參閱語音服務表格中的腳註。

定型持續時間會根據您使用的數據量而有所不同。 訓練自定義神經語音的平均計算時數約為 40 小時。 標準訂用帳戶 (S0) 用戶可以同時訓練四個語音。 如果您達到限制,請等候至少一個語音模型完成定型,然後再試一次。

注意

雖然每個 定型方法 所需的時數總計會有所不同,但相同的單價會套用至每個時間。 如需詳細資訊,請參閱 自定義神經定型定價詳細數據

選擇定型方法

驗證數據文件之後,請使用它們來建置您的自定義神經語音模型。 當您建立自定義神經語音時,您可以選擇使用下列其中一種方法來定型它:

  • 類神經:使用定型數據的相同語言建立語音。

  • 類神經 - 交叉語言:建立一個語音,以與定型數據不同的語言說話。 例如,使用 zh-CN 定型數據,您可以建立說話的 en-US語音。

    訓練數據和目標語言的語言必須是支援跨語言語音訓練的語言之一。 您不需要以目標語言準備定型數據,但測試腳本必須是目標語言。

  • 類神經 - 多樣式:建立以多個樣式和表情說話的自訂神經語音,而不需新增訓練資料。 多個樣式的語音適用於視頻遊戲字元、交談聊天機器人、音訊簿、內容讀取器等等。

    若要建立多個樣式語音,您必須準備一組一般訓練數據,至少要有 300 個語句。 選取一或多個默認目標說話樣式。 您也可以提供每個樣式至少 100 個語句的樣式範例,做為相同語音的額外訓練數據,藉以建立多個自定義樣式。 支援的預設樣式會根據不同的語言而有所不同。 請參閱 不同語言的可用預設樣式。

定型數據的語言必須是自定義神經語音、跨語言或多個樣式訓練所支援的語言之一

訓練您的自定義神經語音模型

若要在Speech Studio中建立自定義神經語音,請依照下列步驟執行下列其中一種方法:

  1. 登入 Speech Studio

  2. 選取 [自定義語音><您的項目名稱>>定型模型>定型新模型]。

  3. 選取 [ 類神經 ] 作為 模型的定型方法 ,然後選取 [ 下一步]。 若要使用不同的定型方法,請參閱 類神經 - 交叉語言類神經 - 多重樣式

    Screenshot that shows how to select neural training.

  4. 為您的模型選取定型配方的版本。 默認會選取最新版本。 支援的功能和定型時間可能會因版本而異。 一般而言,我們建議使用最新版本。 在某些情況下,您可以選擇舊版以減少定型時間。 如需雙語訓練和地區設定差異的詳細資訊,請參閱 雙語訓練

  5. 選取您要用於定型的數據。 重複的音訊名稱會從定型中移除。 請確定您選取的數據不會在多個 .zip 檔案中包含相同的音訊名稱。

    您只能選取已成功處理的數據集進行定型。 如果您沒有在清單中看到定型集,請檢查數據處理狀態。

  6. 選取語音 talent 語句的說話者檔案,其對應至訓練數據中的演講者。

  7. 選取 [下一步]。

  8. 每個定型都會自動產生 100 個範例音訊檔案,以協助您使用預設腳本測試模型。

    或者,您也可以選取 [ 新增自己的測試腳本 ],並提供您自己測試腳本最多 100 個語句,以不需額外費用測試模型。 產生的音訊檔案是自動測試腳本和自定義測試腳本的組合。 如需詳細資訊,請參閱 測試腳本需求

  9. 輸入 [名稱] 以協助您識別模型。 請仔細選擇名稱。 模型名稱會作為 SDK 和 SSML 輸入在語音合成要求中的語音名稱。 只允許字母、數位和幾個標點符號字元。 針對不同的神經語音模型使用不同的名稱。

  10. 或者,輸入 描述 以協助您識別模型。 描述的常見用法是記錄您用來建立模型的數據名稱。

  11. 選取 [下一步]。

  12. 檢閱設定,然後選取方塊以接受使用規定。

  13. 選取 [ 提交 ] 開始定型模型。

雙語訓練

如果您選取 類神經 定型類型,您可以訓練語音以多種語言說話。 和zh-CNzh-TW地區設定都支援雙語訓練,讓語音同時講中文和英語。 根據定型數據的一部分,合成的語音可以使用英文原生口音或與訓練數據相同的口音來說英文。

注意

若要讓地區設定中的 zh-CN 語音使用與範例數據相同的口音來說英文,您應該在建立專案時選擇 Chinese (Mandarin, Simplified), English bilingual ,或透過 REST API 指定 zh-CN (English bilingual) 定型集數據的地區設定。

下表顯示兩個地區設定之間的差異:

Speech Studio 地區設定 REST API 地區設定 雙語支援
Chinese (Mandarin, Simplified) zh-CN 如果您的範例數據包含英文,則合成的語音會以英文原生口音說英文,而不是與範例數據相同的口音,而不論英文數據量為何。
Chinese (Mandarin, Simplified), English bilingual zh-CN (English bilingual) 如果您想要合成語音使用與範例數據相同的口音來說英文,建議您在定型集中包含超過 10% 的英文數據。 否則,英文口音可能不理想。
Chinese (Taiwanese Mandarin, Traditional) zh-TW 如果您想要使用與範例數據相同的口音來定型合成語音,請務必在定型集中提供超過 10% 的英文數據。 否則,它會預設為英文原生口音。 10% 閾值是根據成功上傳後接受的數據計算,而不是上傳前的數據。 如果某些上傳的英文數據因瑕疵而遭到拒絕,且不符合 10% 閾值,合成的語音預設為英文原生口音。

不同語言的可用預設樣式

下表摘要說明根據不同語言的不同預設樣式。

說話風格 語言(地區設定)
生氣 英文(美國) (en-US
日本 (日本) (ja-JP1
中文(普通話,簡體) (zh-CN1
冷靜 中文(普通話,簡體) (zh-CN1
聊天 中文(普通話,簡體) (zh-CN1
愉快 英文(美國) (en-US
日本 (日本) (ja-JP1
中文(普通話,簡體) (zh-CN1
不滿 中文(普通話,簡體) (zh-CN1
興奮 英文(美國) (en-US
害怕 中文(普通話,簡體) (zh-CN1
友善 英文(美國) (en-US
滿懷希望 英文(美國) (en-US
傷心 英文(美國) (en-US
日本 (日本) (ja-JP1
中文(普通話,簡體) (zh-CN1
喊叫 英文(美國) (en-US
嚴肅 中文(普通話,簡體) (zh-CN1
恐懼 英文(美國) (en-US
友好 英文(美國) (en-US
低語 英文(美國) (en-US

1 神經語音樣式可在公開預覽中取得。 公開預覽的樣式僅適用於這些服務 區域:美國東部、西歐和東南亞。


[ 定型模型] 數據表會顯示對應至這個新建立之模型的新專案。 狀態會反映將數據轉換成語音模型的程式,如下表所述:

狀態 意義
正在處理 正在建立您的語音模型。
成功 您的語音模型已建立並可以部署。
失敗 您的語音模型在定型中失敗。 失敗的原因可能是,例如看不見的數據問題或網路問題。
已取消 已取消語音模型的定型。

當模型狀態為 [處理] 時,您可以選取 [ 取消定型 ] 來取消您的語音模型。 您不需支付此已取消的訓練費用。

Screenshot that shows how to cancel training for a model.

成功完成模型定型之後,您可以檢閱模型詳細數據並 測試您的語音模型

您可以使用 Speech Studio中的音訊內容建立 工具來建立音訊,並微調已部署的語音。 如果適用於您的語音,您可以選取其中一種樣式。

重新命名您的模型

  1. 如果您想要重新命名您所建置的模型,請選取 [複製模型 ],以在目前專案中建立具有新名稱的模型複本。

    Screenshot of selecting the Clone model button.

  2. 在 [複製語音模型] 視窗中輸入新名稱,然後選取 [提交]。 神經文字會自動新增為新模型名稱的後綴。

    Screenshot of cloning a model with a new name.

測試您的語音模型

成功建置語音模型之後,您可以使用產生的範例音訊檔案來測試它,再進行部署。

語音的品質取決於許多因素,例如:

  • 定型數據的大小。
  • 錄製的品質。
  • 文字記錄檔的正確性。
  • 定型數據中錄製的語音如何符合您預定使用案例所設計語音的個性。

選取 [測試] 底下的 [DefaultTests],以接聽範例音訊檔案。 默認測試範例包含定型期間自動產生的100個範例音訊檔案,以協助您測試模型。 除了預設提供的這 100 個音訊檔案之外,您自己的測試腳本語句也會新增至 DefaultTests 集合。 此加法最多為100個語句。 使用 DefaultTests 測試時,您不需付費。

Screenshot of selecting DefaultTests under Testing.

如果您想要上傳自己的測試腳本以進一步測試模型,請選取 [新增測試腳本] 以上傳您自己的測試腳本

Screenshot of adding model test scripts.

上傳測試文本之前,請先檢查 測試腳本需求。 您需根據可計費字元數目,使用批次合成的額外測試費用。 請參閱 Azure AI 語音定價

在 [新增測試腳本] 底下,選取 [瀏覽檔案] 以選取您自己的腳本,然後選取 [新增] 以上傳它。

Screenshot of uploading model test scripts.

測試指令碼需求

測試腳本必須是 小於 1 MB 的 .txt檔案。 支援的編碼格式包括 ANSI/ASCII、UTF-8、UTF-8-BOM、UTF-16-LE 或 UTF-16-BE。

不同於定型轉譯檔案,測試腳本應該排除語句標識符,這是每個語句的檔名。 否則,會說出這些標識碼。

以下是一個 .txt 檔案中的一組語句範例:

This is the waistline, and it's falling.
We have trouble scoring.
It was Janet Maslin.

語句的每個段落都會產生個別的音訊。 如果您想要將所有句子合併成一個音訊,請將它們設為單一段落。

注意

產生的音訊檔案是自動測試腳本和自定義測試腳本的組合。

更新語音模型的引擎版本

Azure 文字轉換語音引擎會不時更新,以擷取定義語言發音的最新語言模型。 定型語音之後,您可以藉由更新至最新的引擎版本,將語音套用至新的語言模型。

  1. 當有新的引擎可用時,系統會提示您更新神經語音模型。

    Screenshot of displaying engine update message.

  2. 移至模型詳細資料頁面,並依照畫面上的指示來安裝最新引擎。

    Screenshot of following on-screen instructions to install the new engine.

    或者,選取稍後 [安裝最新引擎],將您的模型更新為最新的引擎版本。

    Screenshot of selecting Install the latest engine button to update engine.

    您不需要支付引擎更新的費用。 舊版仍會保留。

  3. 您可以從 [引擎版本] 列表中檢查模型 的所有引擎版本 ,或者如果您不再需要模型,請移除模型。

    Screenshot of displaying Engine version drop-down list.

    更新的版本會自動設定為預設值。 但是,您可以從下拉式清單中選取版本,然後選取 [ 設為預設值] 來變更預設版本。

    Screenshot that shows how to set a version as default.

如果您想要測試語音模型的每個引擎版本,您可以從清單中選取版本,然後在 [測試] 底下選取 [DefaultTests],以接聽範例音訊檔案。 如果您想要上傳自己的測試腳本以進一步測試目前的引擎版本,請先確定版本已設定為預設值,然後遵循測試語音模型中的步驟。

更新引擎會建立新版本的模型,不需額外費用。 更新語音模型的引擎版本之後,您必須部署新版本以 建立新的端點。 您只能部署預設版本。

Screenshot that shows how to redeploy a new version of your voice model.

建立新的端點之後,您必須 將流量傳送至產品中的新端點。

若要深入瞭解此功能的功能和限制,以及改善模型品質的最佳做法,請參閱 使用自定義神經語音的特性和限制。

將語音模型複製到另一個專案

您可以將語音模型複製到相同區域或另一個區域的另一個專案。 例如,您可以將在某個區域中定型的類神經語音模型複製到另一個區域的專案。

注意

自定義神經語音定型目前僅適用於某些區域。 您可以將類神經語音模型從這些區域複製到其他區域。 如需詳細資訊,請參閱 自定義神經語音的區域。

若要將自定義神經語音模型複製到另一個專案:

  1. 在 [ 定型模型] 索引標籤上,選取您想要複製的語音模型,然後選取 [ 複製到專案]。

    Screenshot of the copy to project option.

  2. 選取您要複製模型的 [區域]、[語音資源] 和 [專案]。 您必須在目標區域中有語音資源和專案,否則必須先建立它們。

    Screenshot of the copy voice model dialog.

  3. 選取 [ 提交 ] 以複製模型。

  4. 選取 通知訊息底下的 [檢視模型 ] 以取得成功複製。

流覽至您複製模型以 部署模型複本的專案。

下一步

在本文中,您將瞭解如何透過自定義語音 API 來定型自定義神經語音。

重要

自定義神經語音定型目前僅適用於某些區域。 在支援區域中定型語音模型之後,您可以視需要將其複製到另一個區域中的語音資源。 如需詳細資訊,請參閱語音服務表格中的腳註。

定型持續時間會根據您使用的數據量而有所不同。 訓練自定義神經語音的平均計算時數約為 40 小時。 標準訂用帳戶 (S0) 用戶可以同時訓練四個語音。 如果您達到限制,請等候至少一個語音模型完成定型,然後再試一次。

注意

雖然每個 定型方法 所需的時數總計會有所不同,但相同的單價會套用至每個時間。 如需詳細資訊,請參閱 自定義神經定型定價詳細數據

選擇定型方法

驗證數據文件之後,請使用它們來建置您的自定義神經語音模型。 當您建立自定義神經語音時,您可以選擇使用下列其中一種方法來定型它:

  • 類神經:使用定型數據的相同語言建立語音。

  • 類神經 - 交叉語言:建立一個語音,以與定型數據不同的語言說話。 例如,使用 fr-FR 定型數據,您可以建立說話的 en-US語音。

    訓練數據和目標語言的語言必須是支援跨語言語音訓練的語言之一。 您不需要以目標語言準備定型數據,但測試腳本必須是目標語言。

  • 類神經 - 多樣式:建立以多個樣式和表情說話的自訂神經語音,而不需新增訓練資料。 多個樣式的語音適用於視頻遊戲字元、交談聊天機器人、音訊簿、內容讀取器等等。

    若要建立多個樣式語音,您必須準備一組一般訓練數據,至少要有 300 個語句。 選取一或多個默認目標說話樣式。 您也可以提供每個樣式至少 100 個語句的樣式範例,做為相同語音的額外訓練數據,藉以建立多個自定義樣式。 支援的預設樣式會根據不同的語言而有所不同。 請參閱 不同語言的可用預設樣式。

定型數據的語言必須是自定義神經語音、交叉語言或多個樣式訓練所支援的語言之一

建立語音模型

若要建立神經語音,請使用 自定義語音 API 的Models_Create 作業。 根據下列指示建構要求本文:

  • 設定必要的 projectId 屬性。 請參閱 建立專案
  • 設定必要的 consentId 屬性。 請參閱 新增語音人才同意
  • 設定必要的 trainingSetId 屬性。 請參閱 建立定型集
  • 將神經語音定型所需的配方 kind 屬性設定為 Default 。 配方種類表示定型方法,且稍後無法變更。 若要使用不同的定型方法,請參閱 類神經 - 交叉語言類神經 - 多重樣式。 如需雙語訓練和地區設定差異的詳細資訊,請參閱 雙語訓練
  • 設定必要的 voiceName 屬性。 語音名稱必須以「類神經」結尾,且稍後無法變更。 請仔細選擇名稱。 SDK 和 SSML 輸入會在語音 合成要求 中使用語音名稱。 只允許字母、數位和幾個標點符號字元。 針對不同的神經語音模型使用不同的名稱。
  • 選擇性地設定 description 語音描述的屬性。 稍後可以變更語音描述。

使用 URI 提出 HTTP PUT 要求,如下列 Models_Create 範例所示。

  • 將取代 YourResourceKey 為您的語音資源金鑰。
  • 將取代 YourResourceRegion 為您的語音資源區域。
  • 將取代 JessicaModelId 為您選擇的模型識別碼。 區分大小寫的標識碼將會用於模型的 URI 中,且稍後無法變更。
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "Content-Type: application/json" -d '{
  "voiceName": "JessicaNeural",
  "description": "Jessica voice",
  "recipe": {
    "kind": "Default"
  },
  "projectId": "ProjectId",
  "consentId": "JessicaConsentId",
  "trainingSetId": "JessicaTrainingSetId"
} '  "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/models/JessicaModelId?api-version=2023-12-01-preview"

您應該收到下列格式的回應本文:

{
  "id": "JessicaModelId",
  "voiceName": "JessicaNeural",
  "description": "Jessica voice",
  "recipe": {
    "kind": "Default",
    "version": "V7.2023.03"
  },
  "projectId": "ProjectId",
  "consentId": "JessicaConsentId",
  "trainingSetId": "JessicaTrainingSetId",
  "locale": "en-US",
  "engineVersion": "2023.07.04.0",
  "status": "NotStarted",
  "createdDateTime": "2023-04-01T05:30:00.000Z",
  "lastActionDateTime": "2023-04-02T10:15:30.000Z"
}

雙語訓練

如果您選取 類神經 定型類型,您可以訓練語音以多種語言說話。 和zh-CNzh-TW地區設定都支援雙語訓練,讓語音同時講中文和英語。 根據定型數據的一部分,合成的語音可以使用英文原生口音或與訓練數據相同的口音來說英文。

注意

若要讓地區設定中的 zh-CN 語音使用與範例數據相同的口音來說英文,您應該在建立專案時選擇 Chinese (Mandarin, Simplified), English bilingual ,或透過 REST API 指定 zh-CN (English bilingual) 定型集數據的地區設定。

下表顯示兩個地區設定之間的差異:

Speech Studio 地區設定 REST API 地區設定 雙語支援
Chinese (Mandarin, Simplified) zh-CN 如果您的範例數據包含英文,則合成的語音會以英文原生口音說英文,而不是與範例數據相同的口音,而不論英文數據量為何。
Chinese (Mandarin, Simplified), English bilingual zh-CN (English bilingual) 如果您想要合成語音使用與範例數據相同的口音來說英文,建議您在定型集中包含超過 10% 的英文數據。 否則,英文口音可能不理想。
Chinese (Taiwanese Mandarin, Traditional) zh-TW 如果您想要使用與範例數據相同的口音來定型合成語音,請務必在定型集中提供超過 10% 的英文數據。 否則,它會預設為英文原生口音。 10% 閾值是根據成功上傳後接受的數據計算,而不是上傳前的數據。 如果某些上傳的英文數據因瑕疵而遭到拒絕,且不符合 10% 閾值,合成的語音預設為英文原生口音。

不同語言的可用預設樣式

下表摘要說明根據不同語言的不同預設樣式。

說話風格 語言(地區設定)
生氣 英文(美國) (en-US
日本 (日本) (ja-JP1
中文(普通話,簡體) (zh-CN1
冷靜 中文(普通話,簡體) (zh-CN1
聊天 中文(普通話,簡體) (zh-CN1
愉快 英文(美國) (en-US
日本 (日本) (ja-JP1
中文(普通話,簡體) (zh-CN1
不滿 中文(普通話,簡體) (zh-CN1
興奮 英文(美國) (en-US
害怕 中文(普通話,簡體) (zh-CN1
友善 英文(美國) (en-US
滿懷希望 英文(美國) (en-US
傷心 英文(美國) (en-US
日本 (日本) (ja-JP1
中文(普通話,簡體) (zh-CN1
喊叫 英文(美國) (en-US
嚴肅 中文(普通話,簡體) (zh-CN1
恐懼 英文(美國) (en-US
友好 英文(美國) (en-US
低語 英文(美國) (en-US

1 神經語音樣式可在公開預覽中取得。 公開預覽的樣式僅適用於這些服務 區域:美國東部、西歐和東南亞。


取得定型狀態

若要取得語音模型的定型狀態,請使用 自定義語音 API 的Models_Get 作業。 根據下列指示建構要求 URI:

使用 URI 提出 HTTP GET 要求,如下列 Models_Get 範例所示。

  • 將取代 YourResourceKey 為您的語音資源金鑰。
  • 將取代 YourResourceRegion 為您的語音資源區域。
  • 如果您在上一個步驟中指定了不同的模型識別碼,請取代 JessicaModelId
curl -v -X GET "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/models/JessicaModelId?api-version=2023-12-01-preview" -H "Ocp-Apim-Subscription-Key: YourResourceKey"

您應該會收到下列格式的回應本文。

注意

食譜 kind 和其他屬性取決於您如何 訓練聲音。 在此範例中,食譜種類適用於 Default 神經語音定型。

{
  "id": "JessicaModelId",
  "voiceName": "JessicaNeural",
  "description": "Jessica voice",
  "recipe": {
    "kind": "Default",
    "version": "V7.2023.03"
  },
  "projectId": "ProjectId",
  "consentId": "JessicaConsentId",
  "trainingSetId": "JessicaTrainingSetId",
  "locale": "en-US",
  "engineVersion": "2023.07.04.0",
  "status": "Succeeded",
  "createdDateTime": "2023-04-01T05:30:00.000Z",
  "lastActionDateTime": "2023-04-02T10:15:30.000Z"
}

您可能需要等候幾分鐘,才能完成定型。 最終狀態會變更為 SucceededFailed

下一步