训练自定义语音模型

本文介绍如何训练自定义模型,以提高 Microsoft 基础模型中的识别准确度。 即使发布了新的基础模型,自定义语音模型的语音识别准确度和质量也会保持一致。

注意

你将为自定义语音识别模型使用量和终结点托管付费。 如果基础模型创建于 2023 年 10 月 1 日及之后,则还需要为自定义语音识别模型训练付费。 如果基础模型是在 2023 年 10 月之前创建的,则无需支付训练费用。 有关详细信息,请参阅 Azure AI 语音定价语音转文本 3.2 迁移指南中的适配收费部分

训练模型通常是一个迭代过程。 首先选择一个基本模型,该模型是新模型的起点。 你需要使用可包含文本和音频的数据集来训练模型,然后进行测试。 如果识别质量或准确度不符合要求,可以使用更多或修改后的训练数据创建新的模型,然后再次进行测试。

在训练自定义模型后,可以在有限时间内使用该模型。 你必须定期从最新的基本模型重新创建和调整自定义模型,以充分利用改进的准确性和质量。 有关详细信息,请参阅模型和终结点生命周期

可以将模型复制到使用相同区域设置的另一个项目。

按照以下说明将模型复制到另一个区域的项目中:

  1. 登录 Speech Studio
  2. 选择“自定义语音识别”> 你的项目名称 >“训练自定义模型”。
  3. 选择“复制到”。
  4. 在“复制语音模型”页上,选择要复制模型的目标区域。 Speech Studio 中应用的短语列表的屏幕截图。
  5. 选择目标区域中的语音资源,或创建一个新的语音资源。
  6. 选择要在其中复制模型的项目,或创建一个新项目。
  7. 选择“复制”。

成功复制模型后,你将收到通知,并可在目标项目中查看它。

语音 CLI 不支持将模型直接复制到另一个区域中的项目。 可以使用 Speech Studio语音转文本 REST API 将模型复制到另一个区域的项目中。

若要将模型复制到另一个语音资源,请使用语音转文本 REST APIModels_Copy 操作。 根据以下说明构造请求正文:

  • 将所需的 targetSubscriptionKey 属性设置为目标语音资源的密钥。

使用 URI 发出 HTTP POST 请求,如以下示例所示。 使用要从中进行复制的模型的区域和 URI。 将 YourModelId 替换为模型 ID,将 YourSubscriptionKey 替换为语音资源密钥,将 YourServiceRegion 替换为语音资源区域,并按前文所述设置请求正文属性。

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

注意

只有请求正文中的 targetSubscriptionKey 属性具有有关目标语音资源的信息。

应收到以下格式的响应正文:

{
  "self": "https://chinanorth2.api.cognitive.azure.cn/speechtotext/v3.2/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae",
  "baseModel": {
    "self": "https://chinanorth2.api.cognitive.azure.cn/speechtotext/v3.2/models/base/eb5450a7-3ca2-461a-b2d7-ddbb3ad96540"
  },
  "links": {
    "manifest": "https://chinanorth2.api.cognitive.azure.cn/speechtotext/v3.2/models/9df35ddb-edf9-4e91-8d1a-576d09aabdae/manifest",
    "copy": "https://chinanorth2.api.cognitive.azure.cn/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 参数设置为要连接到项目的模型的 ID。

下面是将模型连接到项目的示例语音 CLI 命令:

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

应收到以下格式的响应正文:

{
  "project": {
    "self": "https://chinanorth2.api.cognitive.azure.cn/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 属性获取新模型 ID。 将 YourSubscriptionKey 替换为语音资源密钥,将 YourServiceRegion 替换为语音资源区域,并按前面所述设置请求正文属性。

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

你应该会收到以下格式的响应正文:

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

后续步骤