【问题标题】:AWS Translate code is throwing an unable to unmarshall errorAWS Translate 代码引发无法解组错误
【发布时间】:2020-01-09 16:24:06
【问题描述】:

我正在尝试使用 AWS-translate 翻译 s3 存储桶中的 mp3 文件。目前,我抛出了以下错误。我的代码是:

public class ProviderTranscribeController {

private static final Logger LOGGER = Logger.getLogger(ProviderTranscribeController.class);

private AmazonTranscribe client = AmazonTranscribeClient.builder().withRegion(Regions.EU_WEST_2).build();
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.EU_WEST_2).build();


public TranscriptionJob transcribeMp3(){
    StartTranscriptionJobRequest request = new StartTranscriptionJobRequest();
    request.withLanguageCode(LanguageCode.EsUS);
    Media media = new Media();

    media.setMediaFileUri(Uri);

    request.withMedia(media).withMediaSampleRateHertz(8000);
    String transcriptionJobName = "myJob";
    request.setTranscriptionJobName(transcriptionJobName);
    request.withMediaFormat("mp3");
    LOGGER.info(request.getLanguageCode());
    LOGGER.info(request.getMedia().getMediaFileUri());
    LOGGER.info(request.getMediaFormat());
    LOGGER.info(request.getMediaSampleRateHertz());
    LOGGER.info(request.getTranscriptionJobName());

    client.startTranscriptionJob(request);

    GetTranscriptionJobRequest jobRequest = new GetTranscriptionJobRequest();
    jobRequest.setTranscriptionJobName(transcriptionJobName);
    TranscriptionJob transcriptionJob;
    transcriptionJob = client.getTranscriptionJob(jobRequest).getTranscriptionJob();

    return transcriptionJob;
}
}

我得到的错误是:

Unable to unmarshall error response (null). Response Code: 400, Response Text: Bad Request:   
com.amazonaws.SdkClientException
com.amazonaws.SdkClientException: Unable to unmarshall error response (null). Response Code:   
400, Response Text: Bad Request
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1708)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1367)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1113)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
at com.amazonaws.services.transcribe.AmazonTranscribeClient.doInvoke(AmazonTranscribeClient.java:349)
at com.amazonaws.services.transcribe.AmazonTranscribeClient.invoke(AmazonTranscribeClient.java:325)
at com.amazonaws.services.transcribe.AmazonTranscribeClient.executeStartTranscriptionJob(AmazonTranscribeClient.java:289)
at com.amazonaws.services.transcribe.AmazonTranscribeClient.startTranscriptionJob(AmazonTranscribeClient.java:264)
at transcribe.back.providers.ProviderTranscribeController.transcribeMp3(ProviderTranscribeController.java:37)
at transcribe.back.services.ServiceCollectHttp.createTranscription(ServiceCollectHttp.java:27)
at transcribe.back.ApplicationHandler.handleRequest(ApplicationHandler.java:22)
at transcribe.back.ApplicationHandler.handleRequest(ApplicationHandler.java:13)
Caused by: java.lang.NullPointerException
at com.amazonaws.http.JsonErrorResponseHandler.unmarshallException(JsonErrorResponseHandler.java:134)
at com.amazonaws.http.JsonErrorResponseHandler.createException(JsonErrorResponseHandler.java:124)
at com.amazonaws.http.JsonErrorResponseHandler.handle(JsonErrorResponseHandler.java:91)
at com.amazonaws.http.JsonErrorResponseHandler.handle(JsonErrorResponseHandler.java:37)
at com.amazonaws.http.AwsErrorResponseHandler.handleAse(AwsErrorResponseHandler.java:53)
at com.amazonaws.http.AwsErrorResponseHandler.handle(AwsErrorResponseHandler.java:41)
at com.amazonaws.http.AwsErrorResponseHandler.handle(AwsErrorResponseHandler.java:26)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1694)
... 17 more

我正在寻找导致此错误的原因,或者至少了解此特定错误是如何引发的。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • Uri 中的setMediaFileUri(Uri) 是什么?
  • 它是bucket中文件的uri,格式为“s3.eu-west-2.amazonaws.com/<bucketname>/.mp3”@Boris
  • 我现在已将 Uri 的格式更改为“s3:///.mp3”,但无济于事......
  • 您使用的aws-sdk-java 是什么版本?然后我们可以查看JsonErrorResponseHandler.java 的来源,看看哪个变量为空。
  • 谢谢鲍里斯 - 我的 s3 和 transcribe 是不同的版本,所以我把它们做成了相同的,我似乎有了进步!它现在只是抱怨授权......@Boris

标签: java aws-lambda aws-transcribe


【解决方案1】:

在 Boris 的想法的帮助下,我发现我正在为 s3 和转录使用不同的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多