共用方式為


訓練自訂語音模型

在本文中,您將了解如何定型自訂模型,以改善 Microsoft 基底模型的辨識精確度。 即使在釋出新的基底模型時,自訂語音模型的語音辨識精確度和品質仍會保持一致。

注意

會根據自訂語音模型使用量和端點託管向您收取費用。 如果基底模型是在 2023 年 10 月 1 日及以後建立的,則還會向您收取自訂語音模型訓練的費用。 如果基底模型是在 2023 年 10 月之前建立的,則不會向您收取訓練費用。 如需詳細資訊,請參閱 Azure AI 語音價格語音轉換文字 3.2 遷移指南中的採用價格部分

一般來說,為模型定型是一種會反覆進行的程序。 您首先選取基底模型,這是新模型的起點。 您會使用可以包含文字和音訊的資料集來定型模型,然後進行測試。 如果辨識品質或精確度不符合您的需求,您可以使用更多或已修改的訓練資料建立新模型,然後再次測試。

在訓練自訂模型之後,您可以使用該模型一段有限時間。 您必須從最新的基底模型定期重新建立自訂模型並進行調整,以善用改善的精確度和品質。 如需詳細資訊,請參閱模型和端點生命週期

重要

如果您要使用音訊數據來定型自定義模型,請選擇語音區域的 AI Services 資源,並搭配專用硬體來定型音訊數據。 定型模型之後,您可以 視需要將其複製到另一個區域中的 AI Services 資源以進行語音

在具有自訂語音訓練專用硬體的區域中,語音服務最多將使用 100 小時的音訊訓練資料,且每天可處理大約 10 小時的資料。 如需詳細資訊,請參閱區域資料表中的註腳。

建立模型

上傳訓練資料集之後,請遵循下列指示以開始定型您的模型:

  1. 登入 Speech Studio

  2. 選取 [自訂語音]>您的專案名稱 >[訓練自訂模型]

  3. 選取 [定型新的模型]

  4. 在 [選取基準模型] 頁面上,選取基底模型,然後選取 [下一步]。 如果不確定,請從清單頂端選取最新的模型。 基底模型的名稱會對應至其發行的日期,格式為 YYYYMMDD。 基底模型的自訂功能會列在 Speech Studio 中模型名稱之後的括弧中。

    重要

    記下調整到期日。 這是您可以使用基底模型進行定型的最後一天。 如需詳細資訊,請參閱模型和端點生命週期

  5. 在 [選擇資料] 頁面上,選取您要用於定型的一或多個資料集。 如果沒有可用的資料集,請取消設定,然後移至 [語音資料集] 功能表以上傳資料集

  6. 輸入自訂模型的名稱和描述,然後選取 [下一步]

  7. 可以選擇性地核取 [在下一個步驟中新增測試] 方塊。 如果略過此步驟,您可以稍後執行相同的測試。 如需詳細資訊,請參閱測試辨識品質以量化方式測試模型

  8. 選取 [儲存並關閉] 以啟動自訂模型的建置。

  9. 返回 [定型自訂模型] 頁面。

    重要

    記下到期日。 這是您可以使用自訂模型進行語音辨識的最後一天。 如需詳細資訊,請參閱模型和端點生命週期

若要使用資料集建立模型以進行定型,請使用 spx csr model create 命令。 根據下列指示來建構要求參數:

  • project 參數設定為現有專案的識別碼。 建議此參數,如此您也可在 Speech Studio 中檢視和管理模型。 您可以執行 spx csr project list 命令來取得可用的專案。
  • 將必要 dataset 參數設定為您想要用於定型的資料集識別碼。 若要指定多個資料集,請設定 datasets (複數) 參數,並以分號分隔識別碼。
  • 設定必要的 language 參數。 資料集地區設定必須符合專案的地區設定。 稍後無法變更此地區設定。 語音 CLI language 參數會對應至 JSON 要求和回應中的 locale 屬性。
  • 設定必要的 name 參數。 此參數是顯示在 Speech Studio 中的名稱。 語音 CLI name 參數會對應至 JSON 要求和回應中的 displayName 屬性。
  • 您可以選擇性地設定 base 屬性。 例如: --base 5988d691-0893-472c-851e-8e36a0fe7aaf 。 如果未指定 base,則會使用地區設定的預設基底模型。 語音 CLI base 參數會對應至 JSON 要求和回應中的 baseModel 屬性。

以下是使用資料集建立模型以進行定型的範例語音 CLI 命令:

spx csr model create --api-version v3.2 --project YourProjectId --name "My Model" --description "My Model Description" --dataset YourDatasetId --language "en-US"

注意

在此範例中,未設定 base,因此會使用地區設定的預設基底模型。 基底模型 URI 會在回應中傳回。

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"
  },
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
    }
  ],
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/manifest",
    "copy": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd:copy",
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/files"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "properties": {
    "deprecationDates": {
      "transcriptionDateTime": "2026-07-15T00:00:00Z"
    },
    "customModelWeightPercent": 30,
    "features": {
      "supportsTranscriptions": true,
      "supportsEndpoints": true,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportedOutputFormats": [
        "Display",
        "Lexical"
      ]
    }
  },
  "lastActionDateTime": "2024-07-14T21:38:40Z",
  "status": "Running",
  "createdDateTime": "2024-07-14T21:38:40Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

重要

記下 adaptationDateTime 屬性中的日期。 這是您可以使用基底模型進行定型的最後一天。 如需詳細資訊,請參閱模型和端點生命週期

記下 transcriptionDateTime 屬性中的日期。 這是您可以使用自訂模型進行語音辨識的最後一天。 如需詳細資訊,請參閱模型和端點生命週期

回應本文中最上層 self 屬性是模型的 URI。 使用此 URI 來取得模型專案、資訊清單和淘汰日期的詳細資料。 您也會使用此 URI 來更新或刪除模型。

如需在模型使用語音 CLI 的說明,請執行下列命令:

spx help csr model

若要使用資料集建立模型以進行定型,請使用語音轉換文字 REST APIModels_Create 作業。 根據下列指示來建構要求本文:

  • project 屬性設定為現有專案的 URI。 建議此屬性,這樣一來,您也可以在 Speech Studio 中檢視和管理模型。 您可以提出 Projects_List 要求以取得可用的專案。
  • 將必要 datasets 屬性設定為您想要用於定型的資料集 URI。
  • 設定必要的 locale 屬性。 模型地區設定必須符合專案和基底模型的地區設定。 稍後無法變更此地區設定。
  • 設定必要的 displayName 屬性。 此屬性是顯示在 Speech Studio 中的名稱。
  • 您可以選擇性地設定 baseModel 屬性。 例如: "baseModel": {"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"} 。 如果未指定 baseModel,則會使用地區設定的預設基底模型。

使用 URI 提出 HTTP POST 要求,如下列範例所示。 以您的語音資源金鑰取代 YourSubscriptionKey、以您的語音資源區域取代 YourServiceRegion,並設定要求本文屬性,如前所述。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "displayName": "My Model",
  "description": "My Model Description",
  "baseModel": null,
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
    }
  ],
  "locale": "en-US"
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/models"

注意

在此範例中,未設定 baseModel,因此會使用地區設定的預設基底模型。 基底模型 URI 會在回應中傳回。

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"
  },
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
    }
  ],
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/manifest",
    "copy": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd:copy",
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/files"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "properties": {
    "deprecationDates": {
      "transcriptionDateTime": "2026-07-15T00:00:00Z"
    },
    "customModelWeightPercent": 30,
    "features": {
      "supportsTranscriptions": true,
      "supportsEndpoints": true,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportedOutputFormats": [
        "Display",
        "Lexical"
      ]
    }
  },
  "lastActionDateTime": "2024-07-14T21:38:40Z",
  "status": "Running",
  "createdDateTime": "2024-07-14T21:38:40Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

重要

記下 adaptationDateTime 屬性中的日期。 這是您可以使用基底模型進行定型的最後一天。 如需詳細資訊,請參閱模型和端點生命週期

記下 transcriptionDateTime 屬性中的日期。 這是您可以使用自訂模型進行語音辨識的最後一天。 如需詳細資訊,請參閱模型和端點生命週期

回應本文中最上層 self 屬性是模型的 URI。 使用此 URI 來取得模型專案、資訊清單和淘汰日期的詳細資料。 您也可以使用此 URI 來更新刪除模型。

複製模型

您可以將模型複製到使用相同地區設定的另一個專案。 例如,在具有專用硬體的區域中使用音訊數據定型模型之後,您可以視需要將其複製到另一個區域中的 AI Services 資源以進行語音。

請遵循下列指示,將模型複製到另一個區域中的專案:

  1. 登入 Speech Studio
  2. 選取 [自訂語音]>您的專案名稱 >[訓練自訂模型]
  3. 選取 [複製到]
  4. 在 [複製語音模型] 頁面上,選取您要複製模型的目標區域。 在 Speech Studio 套用片語清單的螢幕擷取畫面。
  5. 在目標區域中選取適用於語音的 AI Services 資源,或建立新的語音資源。
  6. 選取您要在其中複製模型的專案,或建立新的專案。
  7. 請選取複製

在成功複製模型之後,您會收到通知,而且可以在目標專案中檢視該模型。

語音 CLI 不支援直接將模型複製到另一個區域中的專案。 您可以使用 Speech Studio語音轉換文字 REST API,將模型複製到另一個區域中的專案。

若要將模型複製到另一個語音資源,請使用語音轉換文字 REST APIModels_Copy 作業。 根據下列指示來建構要求本文:

  • 將必要的 targetSubscriptionKey 屬性設定為目的地語音資源的金鑰。

使用 URI 提出 HTTP POST 要求,如下列範例所示。 使用您想要從中複製的模型區域和 URI。 將 YourModelId 取代為模型識別碼、將 YourSubscriptionKey 取代為語音資源金鑰、將 YourServiceRegion 取代為語音資源區域,然後設定先前所述的要求本文屬性。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "targetSubscriptionKey": "ModelDestinationSpeechResourceKey"
} '  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/models/YourModelId:copy"

注意

只有要求本文中的 targetSubscriptionKey 屬性具有目的地語音資源的相關資訊。

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/eb5450a7-3ca2-461a-b2d7-ddbb3ad96540"
  },
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae/manifest",
    "copy": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae:copy"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2023-01-15T00:00:00Z",
      "transcriptionDateTime": "2024-07-15T00:00:00Z"
    }
  },
  "lastActionDateTime": "2022-05-22T23:15:27Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-22T23:15:27Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description",
  "customProperties": {
    "PortalAPIVersion": "3",
    "Purpose": "",
    "VadKind": "None",
    "ModelClass": "None",
    "UsesHalide": "False",
    "IsDynamicGrammarSupported": "False"
  }
}

連線模型

可能已使用語音 CLI 或 REST API 從某個專案複製模型,而不是連線到另一個專案。 連線模型是使用專案的參考來更新模型的事件。

如果在 Speech Studio 中出現提示,您可以選取 [連線] 按鈕進行連線。

[連線訓練] 頁面的螢幕擷取畫面,其中顯示可以連線至目前專案的模型。

若要將模型連線至專案,請使用 spx csr model update 命令。 根據下列指示來建構要求參數:

  • project 參數設定為現有專案的 URI。 建議此參數,如此您也可在 Speech Studio 中檢視和管理模型。 您可以執行 spx csr project list 命令來取得可用的專案。
  • 將必要的 modelId 參數設定為您要連線至專案的模型識別碼。

以下是將模型連線至專案的範例語音 CLI 命令:

spx csr model update --api-version v3.2 --model YourModelId --project YourProjectId

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

{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
}

如需在模型使用語音 CLI 的說明,請執行下列命令:

spx help csr model

若要將新模型連線至複製模型的語音資源專案 (模型複製所在),請使用語音轉換文字 REST APIModels_Update 作業。 根據下列指示來建構要求本文:

  • 將必要的 project 屬性設定為現有專案的 URI。 建議此屬性,這樣一來,您也可以在 Speech Studio 中檢視和管理模型。 您可以提出 Projects_List 要求以取得可用的專案。

使用 URI 提出 HTTP PATCH 要求,如下列範例所示。 使用新模型的 URI。 您可以從 Models_Copy 回應本文的 self 屬性取得新的模型識別碼。 以您的語音資源金鑰取代 YourSubscriptionKey、以您的語音資源區域取代 YourServiceRegion,並設定要求本文屬性,如前所述。

curl -v -X PATCH -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/models"

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

{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
}

下一步