定型自定義語音模型

在本文中,您將瞭解如何訓練自定義模型,以改善 Microsoft 基底模型的辨識精確度。 即使發行新的基底模型,自定義語音模型的語音辨識精確度和品質仍保持一致。

注意

您需支付自定義語音模型使用量和 端點裝載的費用。 如果基底模型是在 2023 年 10 月 1 日和更新版本建立的,您也將需支付自定義語音模型定型的費用。 如果基底模型是在 2023 年 10 月之前建立的,則不會向您收取定型費用。 如需詳細資訊,請參閱語音轉換文字 3.2 移轉指南中的 Azure AI 語音定價和適應費用一節。

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

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

重要

若您要使用音訊資料來定型自訂模型,請選擇具有專用硬體的語音資源區域來定型音訊資料。 在定型模型之後,您可以視需求將其複製到另一個區域中的語音資源

在具有自定義語音定型專用硬體的區域,語音服務最多會使用 20 小時的音訊訓練數據,而且每天可以處理大約 10 小時的數據。 在其他區域中,語音服務最多會使用 8 小時的音訊資料,且每天處理大約 1 小時的資料。 如需詳細資訊,請參閱區域資料表中的註腳。

建立模型

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

  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 1aae1070-7972-47e9-a977-87e3b05c457d 。 如果未指定 base,則會使用地區設定的預設基底模型。 語音 CLI base 參數會對應至 JSON 要求和回應中的 baseModel 屬性。

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

spx csr model create --api-version v3.1 --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.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/69e46263-ab10-4ab4-abbe-62e370104d95"
    }
  ],
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7/manifest",
    "copyTo": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7:copyto"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/5d25e60a-7f4a-4816-afd9-783bb8daccfc"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2023-01-15T00:00:00Z",
      "transcriptionDateTime": "2024-07-15T00:00:00Z"
    }
  },
  "lastActionDateTime": "2022-05-21T13:21:01Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-21T13:21:01Z",
  "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.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"} 。 如果未指定 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.1/projects/5d25e60a-7f4a-4816-afd9-783bb8daccfc"
  },
  "displayName": "My Model",
  "description": "My Model Description",
  "baseModel": null,
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/69e46263-ab10-4ab4-abbe-62e370104d95"
    }
  ],
  "locale": "en-US"
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/models"

注意

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

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "datasets": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/69e46263-ab10-4ab4-abbe-62e370104d95"
    }
  ],
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7/manifest",
    "copyTo": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/86c4ebd7-d70d-4f67-9ccc-84609504ffc7:copyto"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/5d25e60a-7f4a-4816-afd9-783bb8daccfc"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2023-01-15T00:00:00Z",
      "transcriptionDateTime": "2024-07-15T00:00:00Z"
    }
  },
  "lastActionDateTime": "2022-05-21T13:21:01Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-21T13:21:01Z",
  "locale": "en-US",
  "displayName": "My Model",
  "description": "My Model Description"
}

重要

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

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

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

複製模型

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

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

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

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

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

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

  • 將必要的 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.1/models/YourModelId:copyto"

注意

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

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae",
  "baseModel": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/eb5450a7-3ca2-461a-b2d7-ddbb3ad96540"
  },
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae/manifest",
    "copyTo": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae:copyto"
  },
  "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.1 --model YourModelId --project YourProjectId

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

{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/e6ffdefd-9517-45a9-a89c-7b5028ed0e56"
  },
}

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

spx help csr model

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

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

使用 URI 提出 HTTP PATCH 要求,如下列範例所示。 使用新模型的 URI。 您可以從 Models_CopyTo 回應本文的 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.1/projects/e6ffdefd-9517-45a9-a89c-7b5028ed0e56"
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/models"

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

{
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/e6ffdefd-9517-45a9-a89c-7b5028ed0e56"
  },
}

下一步