1

当我尝试获取转录结果时,我遇到了Amazon Transcribe异常。我还没有找到在转录完成时传递回调或接收通知的方法。所以我会定期检查结果是否可用。

这是我的代码:

var getTranscriptionJobRequest = new GetTranscriptionJobRequest()
{
    TranscriptionJobName = fileName
};

// Regularly check the request status
GetTranscriptionJobResponse getTranscriptionJobResponse;
do
{
  Thread.Sleep(250); // Wait 250 ms
  getTranscriptionJobResponse = amazonTSClient.GetTranscriptionJob(getTranscriptionJobRequest);
}
while (getTranscriptionJobResponse.TranscriptionJob.TranscriptionJobStatus != TranscriptionJobStatus.COMPLETED);

这是一个例外:

Amazon.TranscribeService.AmazonTranscribeServiceException: 'Rate exceeded'

我在这里发现错误是由于对 AWS API 的请求过多。

所以,我的问题是:

当转录结果可用时是否可以得到通知? 或者如果不是,AWS API 的最大调用率是多少?

4

1 回答 1

0

来自 AWS Transcribe 的通知依赖于其与 AWS CloudWatch 的集成。云观察规则示例:

{
  "source": [
    "aws.transcribe"
  ],
  "detail-type": [
    "Transcribe Job State Change"
  ],
  "detail": {
    "TranscriptionJobStatus": [
      "COMPLETED",
      "FAILED"
    ]
  }
}

CloudWatch 中的结果事件:

 {
   "version": "0",
   "id": "event ID",
   "detail-type":"Transcribe Job State Change",
   "source": "aws.transcribe",
   "account": "account ID",
   "time": "timestamp",
   "region": "region",
   "resources": [],
   "detail": {
     "TranscriptionJobName": "unique job name",
     "TranscriptionJobStatus": "status"
   }
 }

更多信息:

如果改为轮询,则 GetTranscriptionJob 的最大调用速率约为每秒 3 次。此处记录了该速率限制和其他速率限制:

于 2018-10-23T13:53:36.657 回答