通过专用终结点使用语音服务

使用 Azure 专用链接,可以通过专用终结点连接到 Azure 中的服务。 专用终结点是只能在特定虚拟网络和子网中访问的专用 IP 地址。

本文说明如何通过语音服务设置和使用专用链接和专用终结点。 本文还介绍了如何在以后删除专用终结点,但仍使用语音资源。

注意

在继续之前,请查看如何将虚拟网络与 Azure AI 服务结合使用

为专用终结点方案设置语音资源需要执行以下任务:

  1. 创建自定义域名
  2. 启用专用终结点
  3. 调整现有应用程序和解决方案

专用终结点和虚拟网络服务终结点

Azure 提供专用终结点和虚拟网络服务终结点,用于通过专用 Azure 主干网络建立流量隧道。 这些终结点类型的用途和基础技术类似。 但这两种技术之间存在差异。 建议在设计网络之前了解这两种方法的优缺点。

确定要使用的技术时,需要考虑以下事项:

  • 这两种技术都可确保虚拟网络和语音资源之间的流量不会通过公共 Internet 传输。
  • 专用终结点为语音资源提供专门的专用 IP 地址。 只有在特定的虚拟网络和子网中可以访问此 IP 地址。 你可以完全控制你的网络基础结构中对此 IP 地址的访问权限。
  • 虚拟网络服务终结点不为语音资源提供专门的专用 IP 地址。 相反,它们会封装发送到语音资源的所有数据包,并直接通过 Azure 主干网络传送这些数据包。
  • 这两种技术都支持本地方案。 默认情况下,当使用虚拟网络服务终结点时,无法从本地网络访问在虚拟网络中受到保护的 Azure 服务资源。 但你可以更改此行为
  • 虚拟网络服务终结点常用于根据流量源自的虚拟网络限制对语音资源的访问。
  • 对于 Azure AI 服务,启用虚拟网络服务终结点会强制所有 Azure AI 服务资源的流量通过专用主干网络。 这需要显式网络访问配置。 (有关详细信息,请参阅配置虚拟网络和语音资源网络设置。)专用终结点没有此限制,可为你的网络配置提供更大的灵活性。 通过使用同一虚拟网络的同一子网,可以实现通过专用主干访问一项资源,同时可以通过公共 Internet 访问另一项资源。
  • 专用终结点会产生额外的费用。 虚拟网络服务终结点是免费的。
  • 专用终结点需要额外的 DNS 配置
  • 一个语音资源可以同时用于专用终结点和虚拟网络服务终结点。

建议先试用这两种终结点类型,再决定生产设计。

有关详细信息,请参阅以下资源:

本文介绍如何将专用终结点与语音服务一起使用。 此处说明了 VNet 服务终结点的用法。

创建自定义域名

注意

启用了自定义域名的语音资源使用不同的方法与语音服务交互。 可能必须为以下两种方案调整应用程序代码:使用专用终结点以及不使用专用终结点

按照以下步骤为语音资源的 Azure AI 创建自定义子域名称

注意

启用自定义域名时,此操作不可逆。 恢复为区域名称的唯一方法是创建新语音资源。

如果语音资源具有大量通过 Speech Studio 创建的关联自定义模型和项目,则强烈建议在修改生产中使用的资源之前,使用测试资源尝试配置。

若要使用 Azure 门户创建自定义域名,请遵循以下步骤:

  1. 转到 Azure 门户并登录 Azure 帐户。

  2. 选择所需语音资源。

  3. 在左窗格的“资源管理”组中,选择“网络” 。

  4. 在“防火墙和虚拟网络”选项卡上,选择“生成自定义域名” 。 一个新的右面板随即出现,其中包含有关为资源创建唯一自定义子域的说明。

  5. 在“生成自定义域名”面板中,输入自定义域名。 完整自定义域会如下所示:https://{your custom name}.cognitiveservices.azure.cn

    请记住,创建自定义域名后,无法更改域名。

    输入自定义域名后,请选择“保存”。

  6. 操作完成后,在“资源管理”组中,选择“密钥和终结点” 。 确认资源的新终结点名称以这种方式启动:https://{your custom name}.cognitiveservices.azure.cn

启用专用终结点

建议使用附加到虚拟网络的专用 DNS 区域,并带有专用终结点的必要更新。 你可以在预配过程中创建专用 DNS 区域。 如果使用自己的 DNS 服务器,则可能还需要更改 DNS 配置。

在为生产语音资源预配专用终结点之前,决定 DNS 策略。 并测试 DNS 更改,尤其是在使用自己的 DNS 服务器时。

按照以下文章之一来创建专用终结点。 这些文章使用 Web 应用作为示例资源(通过专用终结点提供)。

使用以下这些参数,而不是所选文章中的参数:

设置
资源类型 Microsoft.CognitiveServices/accounts
资源 <your-speech-resource-name>
目标子资源 帐户

专用终结点的 DNS:查看Azure AI 服务资源中专用终结点的 DNS 的一般原则。 然后通过执行以下各节中所述的检查,来确认 DNS 配置是否正常工作。

解析来自虚拟网络的 DNS

此检查是必需的。

按照以下步骤测试来自虚拟网络的自定义 DNS 条目:

  1. 登录到位于已附加专用终结点的虚拟网络中的虚拟机。

  2. 打开 Windows 命令提示符或 Bash shell,运行 nslookup 并确认它已成功解析资源的自定义域名。

    C:\>nslookup my-private-link-speech.cognitiveservices.azure.cn
    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    my-private-link-speech.privatelink.cognitiveservices.azure.cn
    Address:  172.28.0.10
    Aliases:  my-private-link-speech.cognitiveservices.azure.cn
    
  3. 确认 IP 地址与专用终结点的 IP 地址匹配。

解析来自其他网络的 DNS

仅当在资源的“网络”部分启用了“所有网络”选项或“所选网络和专用终结点”访问选项时,才执行此检查 。

如果计划仅使用专用终结点访问资源,则可以跳过此部分。

  1. 登录附加到允许访问资源的网络的计算机。

  2. 打开 Windows 命令提示符或 Bash shell,运行 nslookup 并确认它已成功解析资源的自定义域名。

    C:\>nslookup my-private-link-speech.cognitiveservices.azure.cn
    Server:  UnKnown
    Address:  fe80::1
    
    Non-authoritative answer:
    Name:    vnetproxyv1-weu-prod.chinaeast2.chinacloudapp.cn
    Address:  13.69.67.71
    Aliases:  my-private-link-speech.cognitiveservices.azure.cn
              my-private-link-speech.privatelink.cognitiveservices.azure.cn
              chinaeast2.prod.vnet.cog.trafficmanager.cn
    

注意

解析的 IP 地址指向虚拟网络代理终结点,该终结点会将网络流量分配给语音资源的专用终结点。 对于具有自定义域名但没有专用终结点的资源,行为会有所不同。 有关详细信息,请参阅此节

调整应用程序以使用具有专用终结点的语音资源

具有自定义域的语音资源以不同的方式与语音服务进行交互。 对于具有和没有专用终结点的启用了自定义域的语音资源,情况都是如此。 此节中的信息适用于这两种方案。

按照本部分的说明调整现有的应用程序和解决方案,以便使用启用了自定义域名和专用终结点的语音资源。

启用了自定义域名和专用终结点的语音资源使用不同的方法与语音服务交互。 本部分介绍如何将此类资源与语音服务 REST API 和语音 SDK 结合使用。

注意

无专用终结点但使用自定义域名的语音资源也以特殊方式与语音服务进行交互。 此方法不同于使用专用终结点的语音资源的方案。 必须考虑这一点,因为你以后可能会决定删除专用终结点。 请参阅本文后面的“调整应用程序以使用无专用终结点的语音资源”。

具有自定义域名和专用终结点的语音资源:与 REST API 结合使用

对于此部分,我们会使用 my-private-link-speech.cognitiveservices.azure.cn 作为示例语音资源 DNS 名称(自定义域)。

语音服务具有用于语音转文本文本转语音的 REST API。 对于启用了专用终结点的方案,请考虑以下信息。

语音转文本具有两个 REST API。 每个 API 都有不同的用途,使用不同的终结点,当你在启用了专用终结点的方案中使用时需要不同的方法。

语音转文本 REST API 包括:

适用于短音频的语音转文本 REST API 和文本转语音 REST API 在专用终结点方案中的用法是相同的。 它相当于本文后面所述的语音 SDK 情况

语音转文本 REST API 使用一组不同的终结点,因此它要求对启用专用终结点的方案采用不同的方法。

下一小节会介绍这两种情况。

语音转文本 REST API

通常,语音资源使用Azure AI 服务区域终结点语音转文本 REST API 通信。 这些资源的命名格式如下:

{region}.api.cognitive.azure.cn

下面是一个示例请求 URL:

https://api.cognitive.azure.cn/speechtotext/v3.1/transcriptions

注意

对于由世纪互联终结点运营的 Microsoft Azure,请参阅这篇文章

为语音资源启用自定义域(这对专用终结点来说是必需的)后,该资源会对基本 REST API 终结点使用以下 DNS 名称模式:

{your custom name}.cognitiveservices.azure.cn

这意味着在我们的示例中,REST API 终结点名称为:

my-private-link-speech.cognitiveservices.azure.cn

示例请求 URL 需要转换为:

https://my-private-link-speech.cognitiveservices.azure.cn/speechtotext/v3.1/transcriptions

此 URL 应可从连接了专用终结点的虚拟网络访问(提供了正确的 DNS 解析)。

为语音资源启用自定义域名后,通常会将所有请求 URL 中的主机名替换为新的自定义域主机名。 请求的所有其他部分(如前面示例中的路径 /speechtotext/v3.1/transcriptions)会保持不变。

提示

一些客户会开发使用区域终结点 DNS 名称的区域部分的应用程序(例如,用于将请求发送到特定 Azure 区域中部署的语音资源)。

语音资源的自定义域不包含有关部署资源的区域的信息。 因此,前面所述的应用程序逻辑会不起作用,需要更改。

适用于短音频的语音转文本 REST API 和文本转语音 REST API

适用于短音频的语音转文本 REST API文本转语音 REST API 使用两种类型的终结点:

注意

对于由世纪互联终结点运营的 Microsoft Azure,请参阅这篇文章

有关与语音 SDK 结合使用的此小节提供了有关特殊终结点以及如何为启用了专用终结点的语音资源转换其 URL 的详细说明。 针对 SDK 介绍的相同原则适用于短音频的语音转文本 REST API 和文本转语音 REST API。

熟悉上一段落中提到的小节中的材料,并查看以下示例。 该示例说明文本转语音 REST API。 适用于短音频的语音转文本 REST API 的用法完全等效。

注意

在专用终结点方案中使用适用于短音频的语音转文本 REST API 和文本转语音 REST API 时,请使用通过 Ocp-Apim-Subscription-Key 标头传递的资源密钥。 (请参阅适用于短音频的语音转文本 REST API文本转语音 REST API 的详细信息)

仅当在语音资源的“网络”部分启用了“所有网络”访问选项后,才能使用授权令牌并通过 Authorization 标头将它传递到特殊终结点 。 在其他情况下,在尝试获取授权令牌时会收到 ForbiddenBadRequest 错误。

文本转语音 REST API 使用示例

我们将中国北部用作示例 Azure 区域,并将 my-private-link-speech.cognitiveservices.azure.cn 用作示例语音资源 DNS 名称(自定义域)。 我们示例中的自定义域名 my-private-link-speech.cognitiveservices.azure.cn 属于在中国北部区域中创建的语音资源。

若要获取区域中支持的语音列表,请执行以下请求:

https://chinaeast2.tts.speech.azure.cn/cognitiveservices/voices/list

请参阅文本转语音 REST API 文档中的更多详细信息。

对于启用了专用终结点的语音资源,需要修改相同操作的终结点 URL。 示例请求如下所示:

https://my-private-link-speech.cognitiveservices.azure.cn/tts/cognitiveservices/voices/list

请参阅语音 SDK 的构造终结点 URL 小节中的详细说明。

具有自定义域名和专用终结点的语音资源:与语音 SDK 结合使用

将语音 SDK 与启用了自定义域名和专用终结点的语音资源结合使用需要查看并可能会更改应用程序代码。

对于此部分,我们会使用 my-private-link-speech.cognitiveservices.azure.cn 作为示例语音资源 DNS 名称(自定义域)。

构造终结点 URL

通常在 SDK 方案中(以及在适用于短音频的语音转文本 REST API 和文本转语音 REST API 方案中),语音资源会将专用区域终结点用于不同的服务产品。 这些终结点的 DNS 名称格式为:

{region}.{speech service offering}.speech.azure.cn

示例 DNS 名称为:

chinaeast2.stt.speech.azure.cn

区域(DNS 名称的第一个元素)的所有可能值都在语音服务支持的区域中列出。 (对于由世纪互联终结点运营的 Microsoft Azure,请参阅这篇文章。)下表提供语音服务产品(DNS 名称的第二个元素)的可能值:

DNS 名称值 语音服务产品
commands 自定义命令
convai 会议听录
s2s 语音翻译
stt 语音转文本
tts 文本转语音
voice 自定义语音

因此,前面的示例 (chinaeast2.stt.speech.azure.cn) 代表中国北部的语音转文本终结点。

启用了专用终结点的终结点通过特殊代理与语音服务通信。 因此,必须更改终结点连接 URL。

“标准”终结点 URL 如下所示:

{region}.{speech service offering}.speech.azure.cn/{URL path}

专用终结点 URL 如下所示:

{your custom name}.cognitiveservices.azure.cn/{speech service offering}/{URL path}

示例 1。 一个应用程序使用以下 URL 进行通信(使用中国北部美国英语的基础模型的语音识别):

wss://chinaeast2.stt.speech.azure.cn/speech/recognition/conversation/cognitiveservices/v1?language=en-US

若要在语音资源的自定义域名为 my-private-link-speech.cognitiveservices.azure.cn 时在启用了专用终结点的方案中使用它,必须按如下所示修改 URL:

wss://my-private-link-speech.cognitiveservices.azure.cn/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US

请注意详细信息:

  • 主机名 chinaeast2.stt.speech.azure.cn 会替换为自定义域主机名 my-private-link-speech.cognitiveservices.azure.cn
  • 原始 DNS 名称的第二个元素 (stt) 成为 URL 路径的第一个元素,位于原始路径之前。 因此原始 URL /speech/recognition/conversation/cognitiveservices/v1?language=en-US 变为 /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US

示例 2。 应用程序使用以下 URL 在“中国东部 2”合成语音:

wss://chinaeast2.tts.speech.azure.cn/cognitiveservices/websocket/v1

以下等效 URL 使用专用终结点,其中,语音资源的自定义域名为 my-private-link-speech.cognitiveservices.azure.cn

wss://my-private-link-speech.cognitiveservices.azure.cn/tts/cognitiveservices/websocket/v1

示例 1 中的相同原则会适用,但这次的关键元素是 tts

修改应用程序

请按照以下步骤修改代码:

  1. 确定应用程序终结点 URL:

    • 为应用程序启用日志记录,并运行它来记录活动。
    • 在日志文件中,搜索 SPEECH-ConnectionUrl。 在匹配行中,value 参数包含应用程序用于访问语音服务的完整 URL。

    示例:

    (114917): 41ms SPX_DBG_TRACE_VERBOSE:  property_bag_impl.cpp:138 ISpxPropertyBagImpl::LogPropertyAndValue: this=0x0000028FE4809D78; name='SPEECH-ConnectionUrl'; value='wss://chinaeast2.stt.speech.azure.cn/speech/recognition/conversation/cognitiveservices/v1?traffictype=spx&language=en-US'
    

    因此,该应用程序在此示例中使用的 URL 是:

    wss://chinaeast2.stt.speech.azure.cn/speech/recognition/conversation/cognitiveservices/v1?language=en-US
    
  2. 使用完整终结点 URL 创建 SpeechConfig 实例:

    1. 修改已确定的终结点,如前面构造终结点 URL 部分中所述。

    2. 修改创建 SpeechConfig 实例的方式。 应用程序很可能会使用如下所示的内容:

      var config = SpeechConfig.FromSubscription(speechKey, azureRegion);
      

      由于前面部分中所述的主机名和 URL 更改,此示例不适用于已启用专用终结点的语音资源。 如果尝试使用已启用专用终结点的资源的密钥来运行现有应用程序而不进行任何修改,则会收到身份验证错误 (401)。

      若要使它正常工作,请修改实例化 SpeechConfig 类的方式并使用“从终结点”/“使用终结点”初始化。 假设我们定义了以下两个变量:

      • speechKey 包含启用了专用终结点的语音资源的密钥。
      • endPoint 包含完整的修改后终结点 URL(使用相应编程语言所需的类型)。 在我们的示例中,此变量应包含:
        wss://my-private-link-speech.cognitiveservices.azure.cn/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US
        

      创建一个 SpeechConfig 实例:

      var config = SpeechConfig.FromEndpoint(endPoint, speechKey);
      
      auto config = SpeechConfig::FromEndpoint(endPoint, speechKey);
      
      SpeechConfig config = SpeechConfig.fromEndpoint(endPoint, speechKey);
      
      import azure.cognitiveservices.speech as speechsdk
      config = speechsdk.SpeechConfig(endpoint=endPoint, subscription=speechKey)
      
      SPXSpeechConfiguration *config = [[SPXSpeechConfiguration alloc] initWithEndpoint:endPoint subscription:speechKey];
      
      import * as sdk from "microsoft.cognitiveservices.speech.sdk";
      config: sdk.SpeechConfig = sdk.SpeechConfig.fromEndpoint(new URL(endPoint), speechKey);
      

提示

不更改终结点 URI 中指定的查询参数,即使它们是由其他 API 所设置。 例如,如果识别语言在 URI 中定义为查询参数 language=en-US,并且还通过相应属性设置为 ru-RU,则使用 URI 中的语言设置。 因而有效语言是 en-US

终结点 URI 中设置的参数始终优先。 其他 API 只能替代终结点 URI 中未指定的参数。

进行此修改后,应用程序应使用启用了专用终结点的语音资源。 我们在致力于更加无缝地支持专用终结点方案。

使用 Speech Studio

Speech Studio 是一个 Web 门户,其中包含用于在应用程序中构建和集成 Azure AI 语音服务的工具。 当你在 Speech Studio 项目中工作时,将代表你进行对相应语音资源的网络连接和 API 调用。 使用专用终结点虚拟网络服务终结点和其他网络安全选项可能会限制 Speech Studio 功能的可用性。 在使用自定义语音识别有声内容创作等功能时,通常会使用 Speech Studio。

从虚拟网络访问 Speech Studio Web 门户

若要从 Azure 虚拟网络中的虚拟机使用 Speech Studio,你必须允许与此虚拟网络所需的服务标记集进行传出连接。 请参阅此处的详细信息。

访问语音资源终结点等于访问 Speech Studio Web 门户。 不支持通过专用或虚拟网络服务终结点访问 Speech Studio Web 门户。

使用 Speech Studio 项目

本部分介绍如何针对语音资源的不同网络安全选项使用不同类型的 Speech Studio 项目。 应已建立 Web 浏览器与 Speech Studio 的连接。 语音资源网络安全设置在 Azure 门户中设置。

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择语音资源。
  3. 在左侧窗格的“资源管理”组中,选择“网络”>“防火墙和虚拟网络”。
  4. 从“所有网络”、“选定的网络和专用终结点”或“禁用”中选择一个选项。

自定义语音识别和有声内容创作

下表介绍了每个语音资源的“网络”>“防火墙和虚拟网络”安全设置的自定义语音识别/有声内容创作辅助功能。

注意

如果通过“网络”>“专用终结点连接”选项卡只允许专用终结点,则不能将 Speech Studio 与语音资源一起使用。 仍可以在 Speech Studio 外部使用语音资源。

语音资源网络安全设置 Speech Studio 项目可访问性
所有网络 无限制
所选网络和专用终结点 可从允许的公共 IP 地址访问
已禁用 不可访问

如果选择“选定的网络和专用终结点”,则将看到一个带有“虚拟网络”和“防火墙”访问配置选项的选项卡。 在“防火墙”部分,必须允许至少一个公共 IP 地址,并将该地址用于浏览器与 Speech Studio 的连接。

如果只允许通过“虚拟网络”进行访问,则实际上不允许通过 Speech Studio 访问语音资源。 仍可以在 Speech Studio 外部使用语音资源。

若要使用自定义语音而不放宽对生产语音资源的网络访问限制,请考虑以下解决方法之一。

  • 为开发创建另一个可在公共网络上使用的语音资源。 在开发资源上的 Speech Studio 中准备自定义模型,然后将该模型复制到你的生产资源。 请参阅使用语音转文本 REST APIModels_CopyTo REST 请求。
  • 可以选择不使用 Speech Studio 实现自定义语音。 对于所有自定义语音操作,使用语音转文本 REST API

调整应用程序以使用无专用终结点的语音资源

在本文中,我们已多次指出,为语音资源启用自定义域是不可逆的。 与使用区域终结点名称的方法相比,此类资源会使用不同方式与语音服务通信。

本部分说明了如何将具有自定义域名但没有任何专用终结点的语音资源与语音服务 REST API 和语音 SDK 结合使用。 这可能是在专用终结点方案中曾经使用过,但已删除了其专用终结点的资源。

DNS 配置

请记住启用了专用终结点的语音资源的自定义域 DNS 名称如何从公用网络进行解析。 在这种情况下,解析的 IP 地址指向虚拟网络的代理终结点。 该终结点用于将网络流量分派给启用了专用终结点的 Azure AI 服务资源。

但是,删除所有资源专用终结点后(或就在启用自定义域名后),语音资源的 CNAME 记录会重新预配。 它现在指向相应Azure AI 服务区域终结点的 IP 地址。

因此,nslookup 命令的输出将如下所示:

C:\>nslookup my-private-link-speech.cognitiveservices.azure.cn
Server:  UnKnown
Address:  fe80::1

Non-authoritative answer:
Name:    apimgmthskquihpkz6d90kmhvnabrx3ms3pdubscpdfk1tsx3a.chinacloudapp.cn
Address:  13.93.122.1
Aliases:  my-private-link-speech.cognitiveservices.azure.cn
          api.cognitive.azure.cn
          cognitiveweprod.trafficmanager.cn
          cognitiveweprod.azure-api.net
          apimgmttmdjylckcx6clmh2isu2wr38uqzm63s8n4ub2y3e6xs.trafficmanager.cn
          cognitiveweprod-chinaeast2-01.regional.azure-api.net

将它与来自此节的输出进行比较。

具有自定义域名但没有专用终结点的语音资源:与 REST API 结合使用

语音转文本 REST API

语音转文本 REST API 用法完全等同于启用了专用终结点的语音资源的情况。

适用于短音频的语音转文本 REST API 和文本转语音 REST API

在这种情况下,适用于短音频的语音转文本 REST API 的用法和文本转语音 REST API 的用法与常规情况没有区别,但有一个例外。 (请参阅下面的注释。)应使用在适用于短音频的语音转文本 REST API文本转语音 REST API 文档中介绍的两个 API。

注意

在自定义域方案中使用适用于短音频的语音转文本 REST API 和文本转语音 REST API 时,请使用通过 Ocp-Apim-Subscription-Key 标头传递的语音资源密钥。 (请参阅适用于短音频的语音转文本 REST API文本转语音 REST API 的详细信息)

仅当在语音资源的“网络”部分启用了“所有网络”访问选项后,才能使用授权令牌并通过 Authorization 标头将它传递到特殊终结点 。 在其他情况下,在尝试获取授权令牌时会收到 ForbiddenBadRequest 错误。

具有自定义域名但没有专用终结点的语音资源:与语音 SDK 结合使用

将语音 SDK 与启用了自定义域但没有专用终结点的语音资源结合使用等效于在语音 SDK 文档中所述的常规情况。

如果修改了代码以便与启用了专用终结点的语音资源结合使用,请考虑以下事项。

在有关启用了专用终结点的语音资源的一节中,我们说明了如何确定终结点 URL、对它进行修改以及通过 SpeechConfig 类实例的“从终结点”/“使用终结点”初始化使它正常工作。

但是,如果在删除所有专用终结点之后(让相应 DNS 记录有时间进行重新预配)尝试运行相同应用程序,则会收到内部服务错误 (404)。 原因是 DNS 记录现在指向区域 Azure AI 服务终结点,而不是虚拟网络代理,并且在此处找不到类似于 /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US 的 URL 路径。

需要按照以下代码的样式将应用程序回滚到 SpeechConfig 的标准实例化:

var config = SpeechConfig.FromSubscription(speechKey, azureRegion);

同时使用专用终结点和虚拟网络服务终结点

可使用专用终结点网络服务终结点同时访问同一语音资源。 若要结合使用这两者,需要使用 Azure 门户中语音资源的网络设置中的“选定网络和专用终结点”选项。 此方案不支持其他选项。

定价

有关定价详细信息,请参阅 Azure 专用链接定价

了解更多信息