语音服务可在各个区域中均可使用。 语音资源密钥将绑定到单个区域。 获取密钥时,请选择数据、模型和部署所在的特定区域。
数据集(包含客户创建的数据资产,如自定义语音模型)也仅在部署服务的区域中可用。 此类资产包括:
自定义语音
- 训练音频/文本数据
- 测试音频/文本数据
- 自定义语音模型
- 日志数据
有些客户会使用默认终结点听录音频或标准语音用于语音合成,另一些客户则会创建用于自定义的资产。
这些资产由存储库本身定期自动备份,因此当某个区域不可用时,也不会发生数据丢失。 但是,如果发生区域中断,你必须采取措施来确保服务连续性。
如果使用默认终结点,则应配置客户端代码以监视错误。 如果错误仍然存在,请准备好重定向到另一个具有语音资源的区域。
请按照以下步骤将客户端配置为监视错误:
在文档中查找各区域的可用终结点列表。
从列表中选择一个主要区域以及一个或多个次要/备份区域。
从 Azure 门户为每个区域创建语音服务资源。
- 如果已设置特定配额,还可以考虑在备份区域中设置相同的配额。 请参阅语音服务配额和限制,了解详细信息。
每个区域都有自己的 STS 令牌服务。 对于主要区域以及任何备份区域,客户端配置文件需要知道以下内容:
- 区域语音服务终结点
- 区域密钥和区域代码
配置代码用于监视连接错误(常见错误为连接超时和服务不可用)。 以下是 C# 中的示例代码:GitHub:添加示例以显示切换区域的可能候选项。
- 由于网络遇到暂时性错误,因此对于出现的个别连接问题,建议重试。
- 对于持久性,请将流量重定向到新的 STS 令牌服务和语音服务终结点。 对于文本转语音,请参考示例代码:GitHub:TTS 公共语音切换区域。
对于此使用类型,从区域性故障中恢复可以即时进行,而且成本很低。 所需的全部操作是在客户端上开发此功能。 假定没有备份音频流,会导致的最小数据丢失。
某一区域的数据资产、模型或部署在任何其他区域中不能设为可见或可访问。
应按照用于默认终结点的相同步骤,同时在主要和次要区域中创建语音服务资源。
自定义语音服务不支持自动故障转移。 建议执行以下步骤,为在客户端代码中实现手动或自动故障转移做好准备。 在这些步骤中会将自定义模型复制到次要区域中。 做好以下准备后,当主要区域发生故障时,客户端代码即可切换到次要区域。
- 在某一主要区域中创建自定义模型。
- 运行 Models_CopyTo 操作,将自定义模型复制到所有备用(次要)区域。
- 转到 Speech Studio 以加载复制的模型,然后在次要区域中创建新的终结点。 若要了解如何部署新模型,请参阅部署自定义语音模型。
- 如果已设置特定配额,还可以考虑在备份区域中设置相同的配额。 请参阅语音服务配额和限制,了解详细信息。
- 应按照用于默认终结点的相同步骤,将客户端配置为对持续性错误进行故障转移。
客户端代码可以监视主要区域中已部署模型的可用性,并在主要区域发生故障时将其音频流量重定向到次要区域。 如果不需要实时故障转移,仍可按照以下步骤为手动故障转移做好准备。
如果不需要实时故障转移,可以决定导入数据,稍后在次要区域中创建和部署模型,同时请了解这些任务需要一些时间才能完成。
本部分提供有关用时的一般指导。 以下是使用代表性测试数据集估计脱机故障转移用时的记录。
- 数据上传到新区域:15 分钟
- 声学/语言模型创建:6 小时(具体用时取决于数据量)
- 模型评估:30 分钟
- 终结点部署:10 分钟
- 模型复制 API 调用:10 分钟
- 客户端代码的重新配置和部署:具体用时取决于客户端系统
尽管如此,仍建议为具有实时要求的生产模型创建主要和次要区域的密钥。