训练自定义语音模型
本文介绍如何训练自定义模型,以提高 Microsoft 基础模型中的识别准确度。 即使发布了新的基础模型,自定义语音模型的语音识别准确度和质量也会保持一致。
注意
你将为自定义语音识别模型使用量和终结点托管付费。 如果基础模型创建于 2023 年 10 月 1 日及之后,则还需要为自定义语音识别模型训练付费。 如果基础模型是在 2023 年 10 月之前创建的,则无需支付训练费用。 有关详细信息,请参阅 Azure AI 语音定价和语音转文本 3.2 迁移指南中的适配收费部分。
训练模型通常是一个迭代过程。 首先选择一个基本模型,该模型是新模型的起点。 你需要使用可包含文本和音频的数据集来训练模型,然后进行测试。 如果识别质量或准确度不符合要求,可以使用更多或修改后的训练数据创建新的模型,然后再次进行测试。
在训练自定义模型后,可以在有限时间内使用该模型。 你必须定期从最新的基本模型重新创建和调整自定义模型,以充分利用改进的准确性和质量。 有关详细信息,请参阅模型和终结点生命周期。
可以将模型复制到使用相同区域设置的另一个项目。
按照以下说明将模型复制到另一个区域的项目中:
- 登录 Speech Studio。
- 选择“自定义语音识别”> 你的项目名称 >“训练自定义模型”。
- 选择“复制到”。
- 在“复制语音模型”页上,选择要复制模型的目标区域。
- 选择目标区域中的语音资源,或创建一个新的语音资源。
- 选择要在其中复制模型的项目,或创建一个新项目。
- 选择“复制”。
成功复制模型后,你将收到通知,并可在目标项目中查看它。
语音 CLI 不支持将模型直接复制到另一个区域中的项目。 可以使用 Speech Studio 或语音转文本 REST API 将模型复制到另一个区域的项目中。
若要将模型复制到另一个语音资源,请使用语音转文本 REST API 的 Models_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 API 的 Models_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"
},
}