定型自定義語音模型
在本文中,您將瞭解如何訓練自定義模型,以改善 Microsoft 基底模型的辨識精確度。 即使發行新的基底模型,自定義語音模型的語音辨識精確度和品質仍保持一致。
注意
您需支付自定義語音模型使用量和 端點裝載的費用。 如果基底模型是在 2023 年 10 月 1 日和更新版本建立的,您也將需支付自定義語音模型定型的費用。 如果基底模型是在 2023 年 10 月之前建立的,則不會向您收取定型費用。 如需詳細資訊,請參閱語音轉換文字 3.2 移轉指南中的 Azure AI 語音定價和適應費用一節。
一般來說,為模型定型是一種會反覆進行的程序。 您必須先選取基底模型,這是新模型的起點。 您會使用可以包含文字和音訊的資料集來定型模型,然後進行測試。 如果辨識品質或精確度不符合您的需求,您可以建立具有更多或修改訓練數據的新模型,然後再測試一次。
在定型之後,您可以使用自定義模型一段時間。 您必須從最新的基底模型定期重新建立自訂模型並進行調整,以善用改善的精確度和品質。 如需詳細資訊,請參閱模型和端點生命週期。
重要
若您要使用音訊資料來定型自訂模型,請選擇具有專用硬體的語音資源區域來定型音訊資料。 在定型模型之後,您可以視需求將其複製到另一個區域中的語音資源。
在具有自定義語音定型專用硬體的區域,語音服務最多會使用 20 小時的音訊訓練數據,而且每天可以處理大約 10 小時的數據。 在其他區域中,語音服務最多會使用 8 小時的音訊資料,且每天處理大約 1 小時的資料。 如需詳細資訊,請參閱區域資料表中的註腳。
建立模型
上傳 定型數據集之後,請遵循下列指示開始訓練您的模型:
登入 Speech Studio。
選取 [自定義語音> 您的項目名稱 >定型自定義模型]。
選取 [定型新的模型]。
在 [選取基準模型] 頁面上,選取基底模型,然後選取 [下一步]。 如果不確定,請從清單頂端選取最新的模型。 基底模型的名稱會對應至其發行的日期,格式為 YYYYMMDD。 基底模型的自訂功能會列在 Speech Studio 中模型名稱之後的括弧中。
重要
記下調整到期日。 這是您可以使用基底模型進行定型的最後一天。 如需詳細資訊,請參閱模型和端點生命週期。
在 [選擇資料] 頁面上,選取您要用於定型的一或多個資料集。 如果沒有可用的資料集,請取消設定,然後移至 [語音資料集] 功能表以上傳資料集。
輸入自訂模型的名稱和描述,然後選取 [下一步]。
可以選擇性地核取 [在下一個步驟中新增測試] 方塊。 如果略過此步驟,您可以稍後執行相同的測試。 如需詳細資訊,請參閱測試辨識品質和以量化方式測試模型。
選取 [儲存並關閉] 以啟動自訂模型的建置。
返回 [定型自訂模型] 頁面。
重要
記下到期日。 這是您可以使用自訂模型進行語音辨識的最後一天。 如需詳細資訊,請參閱模型和端點生命週期。
若要使用資料集建立模型以進行定型,請使用 spx csr model create
命令。 根據下列指示來建構要求參數:
- 將
project
參數設定為現有專案的識別碼。 建議使用此參數,以便您也可以在Speech Studio中檢視及管理模型。 您可以執行spx csr project list
命令來取得可用的專案。 - 將必要
dataset
參數設定為您想要用於定型的資料集識別碼。 若要指定多個資料集,請設定datasets
(複數) 參數,並以分號分隔識別碼。 - 設定必要的
language
參數。 資料集地區設定必須符合專案的地區設定。 稍後無法變更此地區設定。 語音 CLIlanguage
參數會對應至 JSON 要求和回應中的locale
屬性。 - 設定必要的
name
參數。 此參數是Speech Studio中顯示的名稱。 語音 CLIname
參數會對應至 JSON 要求和回應中的displayName
屬性。 - 您可以選擇性地設定
base
屬性。 例如:--base 1aae1070-7972-47e9-a977-87e3b05c457d
。 如果未指定base
,則會使用地區設定的預設基底模型。 語音 CLIbase
參數會對應至 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 API 的 Models_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 來更新或刪除模型。
複製模型
您可以將模型複製到使用相同地區設定的另一個專案。 例如,在具有專用硬體進行定型的區域中,使用音訊資料定型之後,您可以視需要將其複製到另一個區域的語音資源。
請遵循下列指示,將模型複製到另一個區域中的專案:
- 登入 Speech Studio。
- 選取 [自定義語音> 您的項目名稱 >定型自定義模型]。
- 選取 [複製到]。
- 在 [複製語音模型] 頁面上,選取您要複製模型的目標區域。
- 選取目標區域中的語音資源,或建立新的語音資源。
- 選取您要在其中複製模型的專案,或建立新的專案。
- 請選取複製。
在成功複製模型之後,您會收到通知,而且可以在目標專案中檢視該模型。
語音 CLI 不支援將模型直接複製到另一個區域中的專案。 您可以使用 Speech Studio 或 語音轉換文字 REST API,將模型複製到另一個區域中的專案。
若要將模型複製到另一個語音資源,請使用語音轉換文字 REST API 的 Models_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 API 的 Models_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"
},
}