共用方式為

找到批量听录的音频文件

批量听录用于听录存储中的大量音频。 批量听录可以从 Azure 内部或外部访问音频文件。

将源音频文件存储在 Azure 外部时,可以通过公共 URI(例如 https://crbn.us/hello.wav")访问它们。 文件应可直接访问;不支持需要身份验证或调用交互式脚本才能访问文件的 URI。

可以通过以下两种方法之一访问存储在 Azure Blob 存储中的音频文件:

创建听录时,可以指定一个或多个音频文件。 建议为每个请求提供多个文件,或指向包含要听录的音频文件的 Azure Blob 存储容器。 批量听录服务可以处理大量的已提交听录内容。 该服务会以并发方式听录文件,这样可减少周转时间。

支持的音频格式和编解码器

批量听录 API快速听录 API 支持多种格式和编解码器,例如:

  • WAV(音频文件格式)
  • MP3
  • OPUS/OGG
  • FLAC
  • WMA
  • AAC
  • WAV 容器中的 ALAW
  • WAV 容器中的 MULAW
  • 抗菌素抗药性 (AMR)
  • WebM
  • SPEEX

注意

批量听录服务集成了 GStreamer ,并且可能会接受更多格式和编解码器,而不会返回错误。 建议使用无损失格式(如 WAV(PCM 编码)和 FLAC,以确保最佳的听录质量。

上传至 Azure Blob 存储

当音频文件位于 Azure Blob 存储帐户 中时,可以请求听录单个音频文件或整个 Azure Blob 存储容器。 还可以 将听录结果写入 Blob 容器。

注意

有关 Blob 和容器限制,请参阅 批量听录配额和限制

按照以下步骤创建存储帐户,并将 wav 文件从本地目录上传到新容器。

  1. 转到 Azure 门户 并登录到 Azure 帐户。
  2. 在 Azure 门户中创建存储帐户资源 。 使用与语音资源相同的订阅和资源组。
  3. 选择“存储帐户”。
  4. 在左窗格的“数据存储”组中,选择“容器”。
  5. 选择“+ 容器”。
  6. 输入新容器的名称,然后选择“创建”。
  7. 选择新容器。
  8. 选择“上传”。
  9. 选择要上传的文件,然后选择“上传”。

受信任的 Azure 服务安全机制

本部分介绍如何使用 受信任的 Azure 服务安全机制设置和限制对 Azure 存储帐户中批量听录源音频文件的访问权限。

注意

使用受信任的 Azure 服务安全机制,需要使用 Azure Blob 存储 来存储音频文件。 不支持使用 Azure 文件

如果在本部分中执行所有操作,则存储帐户的配置如下:

因此,实际上存储帐户已完全“锁定”,除了转录应用新配置时就已存在的音频文件,无法在任何情况下使用。 出于音频数据的安全考虑,应将此配置视为一个模型,并根据需求对其进行自定义。

例如,可以允许来自所选公共 IP 地址和 Azure 虚拟网络的流量。 还可以使用 专用终结点 (请参阅 本教程)设置对存储帐户的访问权限,使用存储帐户密钥重新启用访问,允许访问其他 Azure 受信任的服务,等等。

注意

使用专用终结点进行语音处理不是保护存储帐户的必要措施。 可使用专用终结点来处理批量转录 API 请求,同时从安全存储帐户单独访问源音频文件,或者反过来。

通过执行以下步骤,可以严格限制对存储帐户的访问。 然后,为语音资源托管标识分配访问存储帐户所需的最低权限。

为语音资源启用系统分配的托管标识

按照以下步骤为要用于批量听录的语音资源启用系统分配的托管标识。

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

  2. 选择语音资源。

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

  4. 在“系统分配的标识”选项卡上,将状态设为“开”。

    重要

    用户分配的托管标识不符合批量听录存储帐户方案的要求。 请确保启用系统分配的托管标识。

  5. 选择“保存”

现在,语音资源的托管标识可获得对存储帐户的访问权限。

限制对存储帐户的访问权限

按照以下步骤限制对存储帐户的访问权限。

重要

在锁定存储帐户访问权限之前,上传 Blob 容器中的音频文件。

  1. 转到 Azure 门户 并登录到 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左窗格的“设置”组中,选择“配置”。
  4. 选择“已禁用”以允许 Blob 匿名访问
  5. 对“允许存储帐户密钥访问”选择“禁用”。
  6. 选择“保存” 。

有关详细信息,请参阅“防止匿名公共读取访问容器和 Blob”,以及“阻止 Azure 存储帐户的共享密钥授权”。

配置 Azure 存储防火墙

如果存储帐户的访问受到限制,则需要授予对特定托管标识的访问权限。 按照以下步骤添加对语音资源的访问权限。

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

  2. 选择“存储帐户”。

  3. 在左窗格的“安全性 + 网络”组中,选择“网络”。

  4. 在“防火墙和虚拟网络”选项卡中,选择“从所选虚拟网络和 IP 地址启用”。

  5. 取消选中所有复选框。

  6. 确保选中“Microsoft 网络路由”。

  7. 在“资源实例”部分下,选择 Microsoft.CognitiveServices/accounts 作为资源类型,并选择语音资源作为实例名称。

  8. 选择“保存” 。

    注意

    网络更改最多可能需要 5 分钟才能完成传播。

虽然现在允许网络访问,但语音资源尚无法访问存储帐户中的数据。 需要为语音资源托管标识分配特定的访问角色。

分配资源访问角色

按照以下步骤将“存储 Blob 数据读者”角色分配给语音资源托管标识。

重要

需要获得存储帐户或更高范围(如订阅)的“所有者”角色”分配才能在后续步骤中执行操作。 这是因为只有“所有者”角色才能将角色分配给其他人。 请参阅 此处的详细信息。

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

  2. 选择“存储帐户”。

  3. 在左侧窗格中选择“访问控制(IAM)”菜单。

  4. 在“授予对此资源的访问权限”磁贴中选择“添加角色分配”。

  5. 在“角色”下选择“存储 Blob 数据读者”,然后选择“下一步”。

  6. 在“成员”“将访问权限分配到”下选择“托管标识”。

  7. 分配语音资源托管标识,然后选择“查看 + 分配”。

    托管角色分配评审的屏幕截图。

  8. 确认设置后,选择“查看 + 分配”

现在,语音资源托管标识有权访问存储帐户,还可访问用于批量听录的音频文件。

使用系统分配的托管标识时,在创建批量听录请求时,将使用纯存储帐户 URL(无 SAS 或其他添加)。 例如:

{
    "contentContainerUrl": "https://<storage_account_name>.blob.core.chinacloudapi.cn/<container_name>"
}

否则可以在容器中指定单个文件。 例如:

{
    "contentUrls": [
        "https://<storage_account_name>.blob.core.chinacloudapi.cn/<container_name>/<file_name_1>",
        "https://<storage_account_name>.blob.core.chinacloudapi.cn/<container_name>/<file_name_2>"
    ]
}

批量听录 SAS URL:

共享访问签名 (SAS) 是一种 URI,可授予对 Azure 存储容器的受限访问权限。 如果希望在特定时间范围内授予对批听录文件的访问权限,而无需共享存储帐户密钥,请使用它。

提示

如果只能由语音资源访问包含批量听录源文件的容器,请改用 受信任的 Azure 服务安全机制

按照以下步骤生成可用于批量听录的 SAS URL。

  1. 完成 Azure Blob 存储上传 中的步骤以创建存储帐户并将音频文件上传到新容器。

  2. 选择新容器。

  3. 在左窗格的“设置”组中,选择“共享访问令牌”。

  4. 选择“+ 容器”。

  5. 对“权限”选择“读取”和“列出”。

    容器 SAS URI 权限的屏幕截图。

  6. 输入 SAS URI 的开始和到期时间,或保留默认值。

  7. 选择“生成 SAS 令牌和 URL”。

创建批量听录请求时,你将使用 SAS URL。 例如:

{
    "contentContainerUrl": "https://<storage_account_name>.blob.core.chinacloudapi.cn/<container_name>?SAS_TOKEN"
}

否则可以在容器中指定单个文件。 必须为每个文件生成并使用具有读取 (r) 权限的其他 SAS URL。 例如:

{
    "contentUrls": [
        "https://<storage_account_name>.blob.core.chinacloudapi.cn/<container_name>/<file_name_1>?SAS_TOKEN_1",
        "https://<storage_account_name>.blob.core.chinacloudapi.cn/<container_name>/<file_name_2>?SAS_TOKEN_2"
    ]
}