我有一个用 Java 编写的 AWS Lambda 函数。该函数启动一个 TranscriptionJob,然后等待响应,如下所示:
while( true ){
transcriptionJob = awsClient.getTranscriptionJob(getJobRequest).getTranscriptionJob();
if( transcriptionJob.getTranscriptionJobStatus().equals(TranscriptionJobStatus.COMPLETED.name()) ){
System.out.println("AWS transcribe completed with " + transcriptionJob.getMedia().getMediaFileUri());
Date comleption = transcriptionJob.getCompletionTime();
// duration until response in seconds
long duration = (comleption.getTime()-awsTranscribeStart.getTime())/1000;
logger.log("AWS transcribe took " + duration + " seconds\n");
break;
}else if( transcriptionJob.getTranscriptionJobStatus().equals(TranscriptionJobStatus.FAILED.name()) ){
System.out.println("AWS transcribe failed: " + transcriptionJob.getFailureReason());
break;
}
System.out.println("Waiting for response...");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
对于较长的音频文件,转录作业最多需要 10 分钟才能完成,但 Lambda 函数的时间限制为 5 分钟。 目前还没有“转录作业完成事件”或类似的事件。
这个问题有解决方法吗?还是我必须从 AWS Lambda 切换到其他东西?
最佳答案
关于java - 在 Lambda 函数超时之前获取 aws 转录响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177653/