INVALID_ARGUMENT:请求有效负载大小超出限制:10485760字节

CIR*_*CLE 6 speech-recognition speech-to-text google-speech-api

我第一次将GCS Speech API用于一个项目,将一系列音频文件转换为文本。每个档案大约有60分钟,并且是一个人在整个时间内不断讲话的过程。我已经安装了GC SDK,并使用它来执行如下所示的请求:

gcloud ml speech recognize-long-running \
"/path/to/file/audio.flac" \
--language-code="pt-PT" --async
Run Code Online (Sandbox Code Playgroud)

每次在其中一个录音上运行此命令时,都会显示以下错误消息:

ERROR: (gcloud.ml.speech.recognize-long-running) INVALID_ARGUMENT: 
Request payload size exceeds the limit: 10485760 bytes.
Run Code Online (Sandbox Code Playgroud)

这似乎是一个非常困难的限制,因为如果API能够处理长达180分钟的文件,则不可能输出最多10,000个字符的语音。
我试图将音频文件分成较小的部分,并进行了多达四个15分钟的采样,即使如此,我也遇到了同样的错误。此外,即使有效,将我制作的每张新唱片从现在开始拆分也是一件非常繁琐且不切实际的任务。

我一直在搜索,到目前为止,关于如何增加或规避此限制我还没有得出任何结论。我正在使用免费试用帐户,但很高兴升级到付费订阅以增加此限制。据我了解,即使我使用付费订阅,该限制也会持续存在。

有没有人找到这个问题的解决方案?

CIR*_*CLE 8

在与 Google Cloud 支持人员交谈后,我得出的结论是,这是由于我的免费试用订阅和文件大小(约 60 分钟)的限制所致。

升级到付费订阅并将我的文件上传到 Google Cloud Storage 后,我能够从转录中接收有效负载。

$ gcloud ml speech recognize-long-running "gs://test-bucket/my_audio_file.flac" --language-code="pt-PT" --async
Check operation [7456984365978465938] for status.
{
  "name": "7456984365978465938"
}

$ gcloud ml speech operations describe 7456984365978465938
{
  ... payload ...
}
Run Code Online (Sandbox Code Playgroud)

  • 对于本地文件,我认为 1 或 10 分钟的音频文件有限制。您必须在 Google Cloud Storage 中创建一个存储桶并在那里上传您的文件。使用我在回答中显示的 gs:// 地址 (3认同)
  • 我很惊讶他们的 CLI 工具在继续之前没有对文件大小进行完整性检查。 (3认同)