当我尝试转录一些视频时,我确实收到以下错误消息:
java.util.concurrent.ExecutionException:com.google.api.gax.rpc.InvalidArgumentException:io.grpc.StatusRuntimeException:INVALID_ARGUMENT:请求包含无效参数。在 com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:553) ~[guava-28.2-android.jar!/:na] 在 com.google.common.util.concurrent.AbstractFuture.get( AbstractFuture.java:432) ~[guava-28.2-android.jar!/:na] at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:93) ~[guava-28.2-android .jar!/:na] at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:68) ~[guava-28.2-android.jar!/:na] at com.google.api.gax .longrunning.OperationFutureImpl.get(OperationFutureImpl.java:133) ~[gax-1.53.0.jar!/:1.53.0]
在此过程中 MP4 视频被转换为 WEBM,因此我们能够在我们的前端正确地流式传输视频。我们传给请求的WEBM文件的ByteArray好像有问题,所以我尝试直接传MP4文件的ByteArray。不幸的是,我确实在多个 MP4 文件中遇到了同样的错误。还有一些成功转录的 MP4 文件。所以我不知道 ByteArray 有什么问题以及如何解决这个问题。
我们的 AnnotateVideoRequest 是这样构建的:
private fun buildRequest(
videoBytes: ByteString,
transcriptionLanguage: String
): AnnotateVideoRequest {
val config: SpeechTranscriptionConfig = SpeechTranscriptionConfig
.newBuilder()
.setLanguageCode(transcriptionLanguage)
.setEnableAutomaticPunctuation(this.enableAutomaticPunctuation)
.setMaxAlternatives(this.maxAlternatives)
.build()
val context: VideoContext = VideoContext
.newBuilder()
.setSpeechTranscriptionConfig(config)
.build()
return AnnotateVideoRequest
.newBuilder()
.setInputContent(videoBytes)
.addFeatures(Feature.SPEECH_TRANSCRIPTION)
.setVideoContext(context)
.build()
}
我们使用以下版本的客户端库:com.google.cloud:google-cloud-video-intelligence:1.2.1
在使用我们的某些 MP4 文件执行此请求时,有哪些可能的方法来确定实际出了什么问题?