你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将专业语音模型部署为终结点

成功创建并训练语音模型以后,即可将其部署到自定义神经语音终结点。

注意

使用标准 (S0) 语音资源最多可以创建 50 个终结点,每个终结点具有自身的自定义神经网络语音。

若要使用自定义神经网络语音,必须指定语音模型名称,直接在 HTTP 请求中使用自定义 URI,并使用同一语音资源通过文本转语音服务的身份验证。

添加部署终结点

若要创建神经网络定制声音终结点:

  1. 登录 Speech Studio

  2. 选择“定制声音”> 你的项目名称 >“部署模型”>“部署模型”

  3. 选择要与此终结点关联的声音模型。

  4. 为自定义终结点输入名称和说明。

  5. 根据方案选择终结点类型。 如果资源位于受支持的区域中,则终结点类型的默认设置为“高性能”。 否则,如果资源位于不受支持的区域,则唯一可用的选项是“快速恢复”。

    • 高性能:针对具有实时和大容量合成请求的方案(如对话 AI、呼叫中心机器人)进行了优化。 部署或恢复终结点大约需要 5 分钟。 有关支持“高性能”终结点类型的区域的信息,请参阅区域表中的脚注。
    • 快速恢复:针对合成请求频率较低的音频内容创建方案进行了优化。 在一分钟内轻松快速地部署或恢复终结点。 “快速恢复”终结点类型在文本转语音可用的所有区域中都受支持。
  6. 选择“部署”以创建终结点。

部署终结点后,其名称将以链接的形式显示。 选择此链接可显示特定于该终结点的信息,例如终结点密钥、终结点 URL 和示例代码。 当部署状态为“已成功”时,终结点便可供使用。

应用程序设置

用作 REST API 请求参数的应用程序设置可在 Speech Studio 中的“部署模型”选项卡上找到

Screenshot of custom endpoint app settings in Speech Studio.

  • “终结点密钥”显示终结点关联的语音资源密钥。 使用终结点密钥作为 Ocp-Apim-Subscription-Key 请求标头的值。
  • “终结点 URL”显示服务区域。 使用 voice.speech.microsoft.com 之前的值作为服务区域请求参数。 例如,如果终结点 URL 为 https://eastus.voice.speech.microsoft.com/cognitiveservices/v1,则使用 eastus
  • “终结点 URL”显示终结点 ID。 使用追加到 ?deploymentId= 查询参数的值作为终结点 ID 请求参数的值。

使用定制声音

从功能上说,自定义终结点与用于文本转语音请求的标准终结点相同。

区别在于,必须指定 EndpointId 才能通过语音 SDK 使用自定义语音。 可以从文本转语音快速入门开始,然后使用 EndpointIdSpeechSynthesisVoiceName 更新代码。 有关详细信息,请参阅使用自定义终结点

若要通过语音合成标记语言 (SSML) 使用定制声音,请将模型名称指定为语音名称。 本示例使用 YourCustomVoiceName 语音。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="YourCustomVoiceName">
        This is the text that is spoken. 
    </voice>
</speak>

切换到产品中的新声音模型

如果已将声音模型更新到最新的引擎版本,或者你想要切换到产品中的新语音,则需要将新的声音模型重新部署到新终结点。 不支持在现有终结点上重新部署新的声音模型。 部署后,将流量切换到新创建的终结点。 建议先将流量传输到测试环境中的新终结点,以确保流量正常运行,然后再传输到生产环境中的新终结点。 在转换期间,需要保留旧终结点。 如果在转换期间新终结点存在一些问题,则可以切换回旧终结点。 如果在新终结点上正常运行流量约 24 小时(建议的值),则可以删除旧终结点。

注意

如果语音名称已更改,而你使用的是语音合成标记语言 (SSML),请确保在 SSML 中使用新的语音名称。

暂停和恢复终结点

可以暂停或恢复终结点,以限制支出和节省不使用的资源。 终结点暂停时,不会产生费用。 恢复终结点时,可以在应用程序中继续使用同一终结点 URL 来合成语音。

注意

暂停操作几乎会立即完成。 恢复操作完成的时间与新部署的时间大约相同。

本部分介绍如何在 Speech Studio 门户中暂停或恢复神经网络定制声音终结点。

暂停终结点

  1. 若要暂停和停用终结点,请从 Speech Studio 中的“部署模型”选项卡中选择“暂停”。

    Screenshot of the select suspend endpoint option.

  2. 在显示的对话框中,选择“提交”。 终结点暂停后,Speech Studio 将显示“已成功暂停终结点”通知。

恢复终结点

  1. 若要恢复和激活终结点,请从 Speech Studio 中的“部署模型”选项卡中选择“恢复”。

    Screenshot of the select resume endpoint option.

  2. 在显示的对话框中,选择“提交”。 成功重新激活终结点后,状态会从“暂停”更改为“已成功”。

后续步骤

  • 有关神经网络定制声音的详细信息,请参阅概述
  • 有关 Speech Studio 的详细信息,请参阅概述

成功创建并训练语音模型以后,即可将其部署到自定义神经语音终结点。

注意

使用标准 (S0) 语音资源最多可以创建 50 个终结点,每个终结点具有自身的自定义神经网络语音。

添加部署终结点

若要创建终结点,请使用定制声音 API 的 Endpoints_Create 操作。 根据以下说明构造请求正文:

  • 设置所需的 projectId 属性。 请参阅创建项目
  • 设置所需的 modelId 属性。 请参阅训练声音模型
  • 设置所需的 description 属性。 此说明之后可以更改。

使用 URI 发出 HTTP PUT 请求,如以下 Endpoints_Create 示例所示。

  • YourResourceKey 替换为语音资源密钥。
  • YourResourceRegion 替换为语音资源区域。
  • EndpointId 替换为所选的终结点 ID。 该 ID 必须是 GUID,并且在语音资源中必须是唯一的。 该 ID 将在项目的 URI 中使用,并且以后无法更改。
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "Content-Type: application/json" -d '{
  "description": "Endpoint for Jessica voice",
  "projectId": "ProjectId",
  "modelId": "JessicaModelId",
} '  "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/endpoints/EndpointId?api-version=2023-12-01-preview"

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

{
  "id": "9f50c644-2121-40e9-9ea7-544e48bfe3cb",
  "description": "Endpoint for Jessica voice",
  "projectId": "ProjectId",
  "modelId": "JessicaModelId",
  "properties": {
    "kind": "HighPerformance"
  },
  "status": "NotStarted",
  "createdDateTime": "2023-04-01T05:30:00.000Z",
  "lastActionDateTime": "2023-04-02T10:15:30.000Z"
}

响应头包含 Operation-Location 属性。 使用此 URI 获取有关 Endpoints_Create 操作的详细信息。 下面是响应头的示例:

Operation-Location: https://eastus.api.cognitive.microsoft.com/customvoice/operations/284b7e37-f42d-4054-8fa9-08523c3de345?api-version=2023-12-01-preview
Operation-Id: 284b7e37-f42d-4054-8fa9-08523c3de345

在后续 API 请求中使用终结点 Operation-Location暂停和恢复终结点,以及删除终结点

使用定制声音

若要使用自定义神经网络语音,必须指定语音模型名称,直接在 HTTP 请求中使用自定义 URI,并使用同一语音资源通过文本转语音服务的身份验证。

从功能上说,自定义终结点与用于文本转语音请求的标准终结点相同。

区别在于,必须指定 EndpointId 才能通过语音 SDK 使用自定义语音。 可以从文本转语音快速入门开始,然后使用 EndpointIdSpeechSynthesisVoiceName 更新代码。 有关详细信息,请参阅使用自定义终结点

若要通过语音合成标记语言 (SSML) 使用定制声音,请将模型名称指定为语音名称。 本示例使用 YourCustomVoiceName 语音。

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="YourCustomVoiceName">
        This is the text that is spoken. 
    </voice>
</speak>

暂停终结点

可以暂停或恢复终结点,以限制支出和节省不使用的资源。 终结点暂停时,不会产生费用。 恢复终结点时,可以在应用程序中继续使用同一终结点 URL 来合成语音。

若要暂停终结点,请使用定制声音 API 的 Endpoints_Suspend 操作。

使用 URI 发出 HTTP POST 请求,如以下 Endpoints_Suspend 示例所示。

  • YourResourceKey 替换为语音资源密钥。
  • YourResourceRegion 替换为语音资源区域。
  • YourEndpointId 替换为创建终结点时收到的终结点 ID。
curl -v -X POST "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/endpoints/YourEndpointId:suspend?api-version=2023-12-01-preview" -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "content-type: application/json" -H "content-length: 0"

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

{
  "id": "9f50c644-2121-40e9-9ea7-544e48bfe3cb",
  "description": "Endpoint for Jessica voice",
  "projectId": "ProjectId",
  "modelId": "JessicaModelId",
  "properties": {
    "kind": "HighPerformance"
  },
  "status": "Disabling",
  "createdDateTime": "2023-04-01T05:30:00.000Z",
  "lastActionDateTime": "2023-04-02T10:15:30.000Z"
}

恢复终结点

若要暂停终结点,请使用定制声音 API 的 Endpoints_Resume 操作。

使用 URI 发出 HTTP POST 请求,如以下 Endpoints_Resume 示例所示。

  • YourResourceKey 替换为语音资源密钥。
  • YourResourceRegion 替换为语音资源区域。
  • YourEndpointId 替换为创建终结点时收到的终结点 ID。
curl -v -X POST "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/endpoints/YourEndpointId:resume?api-version=2023-12-01-preview" -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "content-type: application/json" -H "content-length: 0"

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

{
  "id": "9f50c644-2121-40e9-9ea7-544e48bfe3cb",
  "description": "Endpoint for Jessica voice",
  "projectId": "ProjectId",
  "modelId": "JessicaModelId",
  "properties": {
    "kind": "HighPerformance"
  },
  "status": "Running",
  "createdDateTime": "2023-04-01T05:30:00.000Z",
  "lastActionDateTime": "2023-04-02T10:15:30.000Z"
}

删除终结点

若要删除终结点,请使用定制声音 API 的 Endpoints_Delete 操作。

使用 URI 发出 HTTP DELETE 请求,如以下 Endpoints_Delete 示例所示。

  • YourResourceKey 替换为语音资源密钥。
  • YourResourceRegion 替换为语音资源区域。
  • YourEndpointId 替换为创建终结点时收到的终结点 ID。
curl -v -X DELETE "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/endpoints/YourEndpointId?api-version=2023-12-01-preview" -H "Ocp-Apim-Subscription-Key: YourResourceKey"

你应该会收到状态代码为 204 的响应头。

切换到产品中的新声音模型

如果已将声音模型更新到最新的引擎版本,或者你想要切换到产品中的新语音,则需要将新的声音模型重新部署到新终结点。 不支持在现有终结点上重新部署新的声音模型。 部署后,将流量切换到新创建的终结点。 建议先将流量传输到测试环境中的新终结点,以确保流量正常运行,然后再传输到生产环境中的新终结点。 在转换期间,需要保留旧终结点。 如果在转换期间新终结点存在一些问题,则可以切换回旧终结点。 如果在新终结点上正常运行流量约 24 小时(建议的值),则可以删除旧终结点。

注意

如果语音名称已更改,而你使用的是语音合成标记语言 (SSML),请确保在 SSML 中使用新的语音名称。

后续步骤

  • 有关神经网络定制声音的详细信息,请参阅概述
  • 有关 Speech Studio 的详细信息,请参阅概述