如何从 Azure 认知服务访问 Azure 存储容器

How do I access Azure Storage container from Azure Cognitive services

我在从认知服务转录(语音转文本)托管在 Azure 存储容器上的音频文件时遇到问题 API。

服务属于同一资源(我创建了一个 VNet,它们属于同一子网)。

在我从那里获取响应后,contentUrl:

我得到的错误是:

    {
      "successfulTranscriptionsCount": 0,
      "failedTranscriptionsCount": 1,
      "details": [
        {
        "source":"https://{service-name}.blob.core.windows.net/meetingnotes/Meeting82035.wav",
        "status": "Failed",
        "errorMessage": "Error when downloading the recording URI. StatusCode: Conflict.",
        "errorKind": "DownloadRecordingsUrisUnknownError"
        }
      ]
     }

我在我的环境中进行了测试,遇到了与您相同的错误。

要解决此问题,您需要在 contentUrls 字段中附加 SAS TokenbloUrl

生成 SAS 令牌允许所有权限,如下图所示。

生成成绩单报告

最终 OutPut 点击后 ContentUrl

我联系了 Azure 支持,他们提供了正确的解决方案,即向语音服务资源添加角色“Storage Blob Data Contributor”。

转到存储帐户的 IAM

转到角色分配

单击“添加”,然后在托管身份中添加您的语音服务。 这应该可以解决它。