训练自定义语音模型

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

注意

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

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

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

上传训练数据集后,请按以下说明开始训练模型:

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

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

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

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

在继续作之前,请确保已安装并配置 语音 CLI

语音命令行界面支持 spx csr model copy 复制模型的命令。 但是,CLI 尚不包括授权复制命令。 若要执行完整复制流,请使用 语音转文本 REST APISpeech Studio

有关模型复制的语音 CLI 帮助,请运行以下命令:

spx help csr model copy

使用 语音转文本 REST API v3.2 将模型复制到另一个语音资源需要执行两个步骤:

  1. 授权在目标语音资源上进行复制。
  2. 语音资源复制模型

步骤 1:授权复制

目标语音资源调用Models_AuthorizeCopy操作。 在请求正文中,将 sourceResourceId 属性设置为模型当前所在的 source 的 Azure 资源 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.cn/speechtotext/v3.2/models:authorizecopy"

你会收到 ModelCopyAuthorization 以下格式的响应:

{
  "targetResourceRegion": "chinanorth2",
  "targetResourceId": "/subscriptions/targetSubscriptionId/resourceGroups/targetResourceGroupName/providers/Microsoft.CognitiveServices/accounts/targetSpeechResourceName",
  "targetResourceEndpoint": "https://YourTargetResourceName.cognitiveservices.azure.cn/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"
}

保存整个响应正文。 在下一步中,将其作为请求的正文传递。

步骤 2:复制模型

语音资源调用Models_Copy操作。 将步骤 1 的完整 ModelCopyAuthorization 响应作为请求正文传递。

替换为 YourModelId 模型 ID、 YourSourceSpeechResourceKey 源资源密钥和 YourSourceResourceName 源资源名称。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSourceSpeechResourceKey" -H "Content-Type: application/json" -d '{
  "targetResourceRegion": "chinanorth2",
  "targetResourceId": "/subscriptions/targetSubscriptionId/resourceGroups/targetResourceGroupName/providers/Microsoft.CognitiveServices/accounts/targetSpeechResourceName",
  "targetResourceEndpoint": "https://YourTargetResourceName.cognitiveservices.azure.cn/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.cn/speechtotext/v3.2/models/YourModelId:copy"

您将收到一个202 Accepted响应,其中包含一个Operation-Location标头,可用于跟踪复制状态。 响应正文包含操作详细信息:

{
  "self": "https://YourResourceName.cognitiveservices.azure.cn/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 属性设置为现有项目的 ID。 建议使用此属性 project ,以便还可以在 Speech Studio 中管理自定义语音的微调。 若要获取项目 ID,请参阅 获取 REST API 文档的项目 ID
  • 将所需 modelId 属性设置为要连接到项目的模型的 ID。

下面是将模型连接到项目的示例语音 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.cn/speechtotext/v3.2/projects/ddddeeee-3333-ffff-4444-aaaa5555bbbb"
  },
}

对于模型的语音 CLI 帮助,请运行以下命令:

spx help csr model

若要将新模型连接到复制了模型的语音资源项目,请使用语音转文本 REST APIModels_Update 操作。 根据以下说明构造请求正文:

  • 将所需的 project 属性设置为现有项目的 URI。 建议使用此属性,以便还可以在 Speech Studio 中查看和管理模型。 若要获取项目 ID,请参阅 获取 REST API 文档的项目 ID

使用 URI 发出 HTTP PATCH 请求,如以下示例所示。 使用新模型的 URI。 可以从 self 响应正文的 属性获取新模型 ID。 将 YourSpeechResoureKey 替换为你的 Speech 资源密钥,将 YourResourceName 替换为你的 Speech 资源名称,并如前所述设置请求正文属性。

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

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

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

后续步骤