Проверьте статус задания транскрипции
Я сталкиваюсь с исключением в 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'
Здесь я обнаружил, что ошибка вызвана слишком большим количеством запросов к API AWS.
Итак, мой вопрос:
Можно ли получить уведомление о наличии результата транскрипции? Или, если нет, какова максимальная скорость звонка в API AWS?
1 ответ
Уведомление от 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 в секунду. Это и другие ограничения скорости задокументированы здесь: