訓練自訂語音模型

在本文中,您將學習如何訓練自訂模型,以提升 Microsoft 基礎模型的辨識準確度。 即使在釋出新的基底模型時,自訂語音模型的語音辨識精確度和品質仍會保持一致。

附註

會根據自訂語音模型使用量和端點託管向您收取費用。 如果基本模型是在 2023 年 10 月 1 日及以後建立的,則還會向您收取自訂語音模型訓練的費用。 如果基底模型是在 2023 年 10 月之前建立的,則不會向您收取訓練費用。 更多資訊請參閱 Foundry Tools 中的 Azure Speech 價格 以及語音轉文字 3.2 遷移指南中的 調整費用章節。

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

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

重要事項

如果您使用音訊數據來定型自定義模型,請在具有專用硬體的區域中選取服務資源,以定型音頻數據。 模型訓練完成後,您可以根據需要將其複製到其他地區的 Foundry 平台語音資源。

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

建立模型

小提示

請將 Speech Studio 的自訂語音模型帶到 Microsoft Foundry 入口網站。 在 Microsoft Foundry 入口網站中,你可以連接現有的語音資源,繼續上次的作業。 如需連線到現有語音資源的詳細資訊,請參閱連線到現有的語音資源。

在新的 Microsoft Foundry 入口網站中,您可以從微調模型精靈提交微調作業;該精靈是在您開始自訂語音微調時開啟的。

  1. 在 審查 面板上,檢視設定並確認收費。
  2. 選擇 提交 開始微調工作。
  3. 等訓練結束。 訓練結束後,選擇自訂模型以開啟其詳細頁面。

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

  1. 登入 Speech Studio。

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

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

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

    重要事項

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

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

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

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

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

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

    重要事項

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

繼續之前,請確定您已安裝並設定 語音 CLI 。

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

  • 將 project 屬性設定為現有項目的識別碼。 建議使用 project 屬性,這樣你也能在 Microsoft Foundry 入口網站 中管理自訂語音的微調。 若要取得專案識別碼,請參閱 取得 REST API 檔的專案識別碼 。
  • 將必要的 dataset 屬性設定為您要用於訓練的資料集識別碼。 若要指定多個資料集,請設定 datasets (複數) 參數,並以分號分隔識別碼。
  • 設定必要的 language 屬性。 資料集地區設定必須符合專案的地區設定。 稍後無法變更此地區設定。 Speech CLI language 屬性相對應的是 JSON 要求和回應中的 locale 屬性。
  • 設定必要的 name 屬性。 這個參數就是顯示在 Microsoft Foundry 入口網站 中所顯示的名稱。 Speech CLI name 屬性相對應的是 JSON 要求和回應中的 displayName 屬性。
  • 您可以選擇性地設定 base 屬性。 例如:--base bbbbcccc-1111-dddd-2222-eeee3333ffff。 如果未指定 base,則會使用地區設定的預設基底模型。 Speech 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"

重要事項

您必須設定 --api-version v3.2。 語音 CLI 會使用 REST API,但尚未支援 v3.2之後的版本。

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

{
  "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/aaaabbbb-0000-cccc-1111-dddd2222eeee",
  "baseModel": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/base/bbbbcccc-1111-dddd-2222-eeee3333ffff"
  },
  "datasets": [
    {
      "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/datasets/ccccdddd-2222-eeee-3333-ffff4444aaaa"
    }
  ],
  "links": {
    "manifest": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/manifest",
    "copy": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd:copy",
    "files": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/files"
  },
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
  "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 API 的 Models_Create 作業。 根據下列指示來建構要求本文:

  • 將 project 屬性設定為現有專案的 URI。 建議此特性,讓您也能在 Microsoft Foundry 入口網站 中查看和管理模型。 若要取得專案識別碼,請參閱 取得 REST API 檔的專案識別碼 。
  • 將必要 datasets 屬性設定為您想要用於定型的資料集 URI。
  • 設定必要的 locale 屬性。 模型地區設定必須符合專案和基底模型的地區設定。 稍後無法變更此地區設定。
  • 設定必要的 displayName 屬性。 此物業名稱即顯示於Microsoft Foundry 入口網站。
  • 您可以選擇性地設定 baseModel 屬性。 例如:"baseModel": {"self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/base/bbbbcccc-1111-dddd-2222-eeee3333ffff"}。 如果未指定 baseModel,則會使用地區設定的預設基底模型。

使用 URI 提出 HTTP POST 要求,如下列範例所示。 用你的語音資源鍵取代 YourSpeechResoureKey ,用語音資源名稱取代 YourResourceName ,並依照前面描述設定請求主體屬性。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
  "displayName": "My Model",
  "description": "My Model Description",
  "baseModel": null,
  "datasets": [
    {
      "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/datasets/ccccdddd-2222-eeee-3333-ffff4444aaaa"
    }
  ],
  "locale": "en-US"
}'  "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models"

附註

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

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

{
  "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/aaaabbbb-0000-cccc-1111-dddd2222eeee",
  "baseModel": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/base/bbbbcccc-1111-dddd-2222-eeee3333ffff"
  },
  "datasets": [
    {
      "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/datasets/ccccdddd-2222-eeee-3333-ffff4444aaaa"
    }
  ],
  "links": {
    "manifest": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/manifest",
    "copy": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd:copy",
    "files": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd/files"
  },
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
  "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 來更新或刪除模型。

複製模型

您可以將模型複製到使用相同地區設定的另一個專案。 例如,當模型在某 區域 使用專用的硬體進行音訊資料訓練後,你可以根據需要將其複製到另一區域的 Foundry 語音資源。

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

  1. 登入 Speech Studio。
  2. 選取 [自訂語音]>您的專案名稱 >[訓練自訂模型]。
  3. 選取 [複製到]。
  4. 在 [複製語音模型] 頁面上,選取您要複製模型的目標區域。 Speech Studio 中複製語音模型頁面的截圖。
  5. 在目標區域選擇 Foundry 的語音資源,或建立新的語音資源。
  6. 選取您要在其中複製模型的專案,或建立新的專案。
  7. 選取 [複製]。

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

繼續之前,請確定您已安裝並設定 語音 CLI 。

語音 CLI 支援 spx csr model copy 複製模型的指令。 然而,CLI 尚未包含授權複製指令。 要執行完整的複製流程,請使用 Speech to text REST API 或 Microsoft Foundry 入口網站。

若要使用 Speech CLI 的模型複製協助,請執行以下指令:

spx help csr model copy

使用 Speech to text REST API v3.2 將模型複製到其他語音資源需要兩個步驟:

  1. 在目標語音資源上授權複製。
  2. 從原始語音資源複製模型。

步驟一:授權副本

呼叫目標語音資源 的 Models_AuthorizeCopy 操作。 在請求主體中,將 sourceResourceId 屬性設定為模型目前所在的語音資源 source 語音資源的 Azure Resource ID。

將 YourTargetSpeechResourceKey 替換為目標資源金鑰,並將 YourTargetResourceName 替換為目標資源名稱。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourTargetSpeechResourceKey" -H "Content-Type: application/json" -d '{
  "sourceResourceId": "/subscriptions/YourSourceSubscriptionId/resourceGroups/YourSourceResourceGroup/providers/Microsoft.CognitiveServices/accounts/YourSourceSpeechResourceName"
}'  "https://YourTargetResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models:authorizecopy"

您將收到 ModelCopyAuthorization 以下格式的回覆:

{
  "targetResourceRegion": "westus2",
  "targetResourceId": "/subscriptions/targetSubscriptionId/resourceGroups/targetResourceGroupName/providers/Microsoft.CognitiveServices/accounts/targetSpeechResourceName",
  "targetResourceEndpoint": "https://YourTargetResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models",
  "sourceResourceId": "/subscriptions/sourceSubscriptionId/resourceGroups/sourceResourceGroupName/providers/Microsoft.CognitiveServices/accounts/sourceSpeechResourceName",
  "expirationDateTime": "2025-01-07T11:34:12Z",
  "id": "d61573c6-788b-4eff-b3f5-38a1c7a9585b"
}

保留整個回應文體。 在下一個步驟中,您會以請求本文的形式加以傳送。

步驟二:複製模型

呼叫來源語音資源的 Models_Copy 操作。 將步驟 1 的完整 ModelCopyAuthorization 回應設為請求主體。

將 YourModelId 替換為模型識別碼,將 YourSourceSpeechResourceKey 替換為來源資源金鑰,並將 YourSourceResourceName 替換為來源資源名稱。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSourceSpeechResourceKey" -H "Content-Type: application/json" -d '{
  "targetResourceRegion": "westus2",
  "targetResourceId": "/subscriptions/targetSubscriptionId/resourceGroups/targetResourceGroupName/providers/Microsoft.CognitiveServices/accounts/targetSpeechResourceName",
  "targetResourceEndpoint": "https://YourTargetResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models",
  "sourceResourceId": "/subscriptions/sourceSubscriptionId/resourceGroups/sourceResourceGroupName/providers/Microsoft.CognitiveServices/accounts/sourceSpeechResourceName",
  "expirationDateTime": "2025-01-07T11:34:12Z",
  "id": "d61573c6-788b-4eff-b3f5-38a1c7a9585b"
}'  "https://YourSourceResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models/YourModelId:copy"

你會收到 202 Accepted 具有 Operation-Location 標頭的回覆,可以用來追蹤複製狀態。 回應內容包含操作詳情:

{
  "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/operations/models/copy/e30f6a27-82be-4cca-9258-0399c70489ff",
  "createdDateTime": "2025-01-07T11:34:12Z",
  "lastActionDateTime": "2025-01-07T11:34:12Z",
  "status": "NotStarted",
  "id": "e30f6a27-82be-4cca-9258-0399c70489ff"
}

附註

此複製授權僅在步驟 1 所回傳expirationDateTime的時限之前有效。 在授權到期前開始複本。

連線模型

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

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

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

繼續之前,請確定您已安裝並設定 語音 CLI 。

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

  • 將 project 屬性設定為現有項目的識別碼。 建議使用 project 屬性,這樣你也能在 Microsoft Foundry 入口網站 中管理自訂語音的微調。 若要取得專案識別碼,請參閱 取得 REST API 檔的專案識別碼 。
  • 將所需的 modelId 屬性設定為您想要連接至專案的模型的識別碼。

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

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

重要事項

您必須設定 --api-version v3.2。 語音 CLI 會使用 REST API,但尚未支援 v3.2之後的版本。

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

{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}

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

spx help csr model

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

使用 URI 提出 HTTP PATCH 要求,如下列範例所示。 使用新模型的 URI。 您可以從 self 回應本文的 屬性取得新的模型識別碼。 用你的語音資源鍵取代 YourSpeechResoureKey ,用語音資源名稱取代 YourResourceName ,並依照前面描述設定請求主體屬性。

curl -v -X PATCH -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}'  "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/models"

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

{
  "project": {
    "self": "https://YourResourceName.cognitiveservices.azure.com/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}

後續步驟